Bug 120286 - sysutils/fusefs-ntfs makes fatal trap/page fault in FreeBSD-7.0
Summary: sysutils/fusefs-ntfs makes fatal trap/page fault in FreeBSD-7.0
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Alejandro Pulver
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-02-05 08:00 UTC by Ganbold
Modified: 2008-02-21 07:55 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ganbold 2008-02-05 08:00:00 UTC
I'm having trouble mounting external NTFS hard drive using fusefs-ntfs
port on Dell Latitude D620.

devil# uname -an
FreeBSD devil.micom.mng.net 7.0-PRERELEASE FreeBSD 7.0-PRERELEASE #3: Tue Feb  5 10:29:24 ULAT 2008     tsgan@devil.micom.mng.net:/usr/obj/usr/src/sys/DEVIL  i386

devil# pkg_info | grep fuse
fusefs-kmod-0.3.9.p1_3 Kernel module for fuse
fusefs-libs-2.7.2   FUSE allows filesystem implementation in userspace
fusefs-ntfs-1.1120  Mount NTFS partitions (read/write) and disk images
devil# kldload /usr/local/modules/fuse.ko
devil# kldstat
Id Refs Address    Size     Name
1   23 0xc0400000 6df8b4   kernel
2    1 0xc0ae0000 14324    snd_hda.ko
3    2 0xc0af5000 52a08    sound.ko
4    2 0xc0b48000 10ebc    drm.ko
5    1 0xc0b59000 7184     i915.ko
6    1 0xc0b61000 6b314    acpi.ko
7    2 0xc4005000 c000     ipfw.ko
8    1 0xc4035000 4000     ipdivert.ko
9    1 0xc406d000 22000    linux.ko
11    3 0xc43dd000 3000     ucom.ko
12    1 0xc43e0000 3000     uftdi.ko
13    1 0xc43e5000 4000     uplcom.ko
14    1 0xc59aa000 e000     fuse.ko


When I try to mount it, on serial console I see:
.
umass0: <Seagate FreeAgent Go, class 0/0, rev 2.00/0.00, addr 2> on uhub4
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <Seagate FreeAgent Go 100F> Fixed Direct Access SCSI-4 device
da0: 40.000MB/s transfers
da0: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C)
(da0:umass-sim0:0:0:0): READ(10). CDB: 28 0 0 0 0 3f 0 0 1 0
(da0:umass-sim0:0:0:0): CAM Status: SCSI Status Error
(da0:umass-sim0:0:0:0): SCSI Status: Check Condition
(da0:umass-sim0:0:0:0): ABORTED COMMAND asc:0,0
(da0:umass-sim0:0:0:0): No additional sense information
(da0:umass-sim0:0:0:0): Retrying Command (per Sense Data)
(da0:umass-sim0:0:0:0): READ(10). CDB: 28 0 0 0 0 3f 0 0 1 0
(da0:umass-sim0:0:0:0): CAM Status: SCSI Status Error
(da0:umass-sim0:0:0:0): SCSI Status: Check Condition
(da0:umass-sim0:0:0:0): ABORTED COMMAND asc:0,0
(da0:umass-sim0:0:0:0): No additional sense information
(da0:umass-sim0:0:0:0): Retrying Command (per Sense Data)
GEOM_LABEL: Label for provider da0s1 is ntfs/FreeAgent Drive.
GEOM_LABEL: Label ntfs/FreeAgent Drive removed.


Fatal trap 12: page fault while in kernel mode
cpuid = 1; apic id = 01
fault virtual address    = 0x746e756f
fault code        = supervisor read, page not present
instruction pointer    = 0x20:0xc06d8f36
stack pointer            = 0x28:0xe63d09b0
frame pointer            = 0x28:0xe63d09b4
code segment        = base rx0, limit 0xfffff, type 0x1b
           = DPL 0, pres 1, def32 1, gran 1
processor eflags    = interrupt enabled, resume, IOPL = 0
current process        = 19197 (mount_fusefs)
[thread pid 19197 tid 100099 ]
Stopped at      strcmp+0x26:    movzbl  0(%ecx),%eax
db> bt
Tracing pid 19197 tid 100099 td 0xc4312210
strcmp(c59b644f,746e756f,c3e43934,2d,e63d0a8c,...) at strcmp+0x26
vfs_getopt(c09bb6c0,c59b644f,0,0,c4312210,...) at vfs_getopt+0x35
fuse_mount(c3e438b8,c4312210,c08d0185,3e9,0,...) at fuse_mount+0x70
vfs_donmount(48217080,c,e63d0c70,c48e4000,bfbfebb4,...) at vfs_donmount+0x13ad
nmount(c4312210,e63d0cfc,c,e63d0d38,c095e6d0,...) at nmount+0xb2
syscall(e63d0d38) at syscall+0x2b3
Xint0x80_syscall() at Xint0x80_syscall+0x20
--- syscall (378, FreeBSD ELF32, nmount), eip = 0x480ccb4b, esp = 0xbfbfe64c, ebp = 0xbfbfebc8 ---
db> trace
Tracing pid 19197 tid 100099 td 0xc4312210
strcmp(c59b644f,746e756f,c3e43934,2d,e63d0a8c,...) at strcmp+0x26
vfs_getopt(c09bb6c0,c59b644f,0,0,c4312210,...) at vfs_getopt+0x35
fuse_mount(c3e438b8,c4312210,c08d0185,3e9,0,...) at fuse_mount+0x70
vfs_donmount(48217080,c,e63d0c70,c48e4000,bfbfebb4,...) at vfs_donmount+0x13ad
nmount(c4312210,e63d0cfc,c,e63d0d38,c095e6d0,...) at nmount+0xb2
syscall(e63d0d38) at syscall+0x2b3
Xint0x80_syscall() at Xint0x80_syscall+0x20
--- syscall (378, FreeBSD ELF32, nmount), eip = 0x480ccb4b, esp = 0xbfbfe64c, ebp = 0xbfbfebc8 ---
db>

How-To-Repeat: Try to mount ntfs drive with rw option using fusefs-ntfs.
Comment 1 Mark Linimon freebsd_committer freebsd_triage 2008-02-05 10:35:07 UTC
Responsible Changed
From-To: freebsd-bugs->alepulver

Reclassify and assign.  This is kind of a strange case; you could argue 
that VFS shouldn't panic no matter what its inputs, but since fusefs 
could be the source of the problem, and lives in ports, I'm going to 
assign it that way. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=120286 

Manually adding to audit trail from PR caught in email problem:
 
Date: Tue, 5 Feb 2008 09:31:36 +0100 (CET)
Comment 2 Ganbold 2008-02-06 01:47:13 UTC
More information:

Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address    = 0x746e756f
fault code        = supervisor read, page not present
instruction pointer    = 0x20:0xc06d8f46
stack pointer            = 0x28:0xe64189b0
frame pointer            = 0x28:0xe64189b4
code segment        = base rx0, limit 0xfffff, type 0x1b
            = DPL 0, pres 1, def32 1, gran 1
processor eflags    = interrupt enabled, resume, IOPL = 0
current process        = 843 (mount_fusefs)
panic: from debugger
cpuid = 0
KDB: stack backtrace:
Uptime: 1m34s
Physical memory: 1006 MB
Dumping 56 MB: 41 25 9

#0  doadump () at pcpu.h:195
195    pcpu.h: No such file or directory.
    in pcpu.h
(kgdb) where
#0  doadump () at pcpu.h:195
#1  0xc064f4fe in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:409
#2  0xc064f7bb in panic (fmt=Variable "fmt" is not available.
) at /usr/src/sys/kern/kern_shutdown.c:563
#3  0xc0465d47 in db_panic (addr=Could not find the frame base for
"db_panic".
) at /usr/src/sys/ddb/db_command.c:433
#4  0xc0466735 in db_command_loop () at /usr/src/sys/ddb/db_command.c:401
#5  0xc0467ea5 in db_trap (type=12, code=0) at
/usr/src/sys/ddb/db_main.c:222
#6  0xc0676b06 in kdb_trap (type=12, code=0, tf=0xe6418970) at
/usr/src/sys/kern/subr_kdb.c:502
#7  0xc085528f in trap_fatal (frame=0xe6418970, eva=1953396079) at
/usr/src/sys/i386/i386/trap.c:890
#8  0xc08554b0 in trap_pfault (frame=0xe6418970, usermode=0,
eva=1953396079) at /usr/src/sys/i386/i386/trap.c:812
#9  0xc0855e52 in trap (frame=0xe6418970) at
/usr/src/sys/i386/i386/trap.c:490
#10 0xc083c36b in calltrap () at /usr/src/sys/i386/i386/exception.s:139
#11 0xc06d8f46 in strcmp (s1=0xc432044f "fspath", s2=0x746e756f <Address
0x746e756f out of bounds>) at /usr/src/sys/libkern/strcmp.c:45
#12 0xc06c0865 in vfs_getopt (opts=0xc09bb700, name=0xc432044f "fspath",
buf=0x0, len=0x0) at /usr/src/sys/kern/vfs_mount.c:1869
#13 0xc4319380 in ?? ()
#14 0xc09bb700 in w_data ()
#15 0xc432044f in ?? ()
#16 0x00000000 in ?? ()
#17 0x00000000 in ?? ()
#18 0xc43df210 in ?? ()
#19 0xc43df210 in ?? ()
#20 0xc09b1db0 in w_lock_list_free ()
#21 0xc43df210 in ?? ()
#22 0xe6418a00 in ?? ()
#23 0x00000246 in ?? ()
#24 0xc09b1db0 in w_lock_list_free ()
#25 0xe6418a1c in ?? ()
#26 0xc064279d in _mtx_unlock_spin_flags (m=0xc3e5707c,
opts=-1002573296, file=0xc08d01ce "/usr/src/sys/kern/vfs_mount.c",
line=1001)
    at /usr/src/sys/kern/kern_mutex.c:246
#27 0xc06c34ad in vfs_donmount (td=0xc43df210, fsflags=0,
fsoptions=0xc439c900) at /usr/src/sys/kern/vfs_mount.c:1007
#28 0xc06c47a2 in nmount (td=0xc43df210, uap=0xe6418cfc) at
/usr/src/sys/kern/vfs_mount.c:416
#29 0xc0855783 in syscall (frame=0xe6418d38) at
/usr/src/sys/i386/i386/trap.c:1035
#30 0xc083c3d0 in Xint0x80_syscall () at
/usr/src/sys/i386/i386/exception.s:196
#31 0x00000033 in ?? ()
Previous frame inner to this frame (corrupt stack?)
(kgdb)

-- 
To our sweethearts and wives.  May they never meet.
		-- 19th century toast
Comment 3 Alejandro Pulver freebsd_committer freebsd_triage 2008-02-20 14:31:07 UTC
State Changed
From-To: open->feedback
Comment 4 Ganbold 2008-02-21 07:03:40 UTC
Kris Kennaway wrote:
> Ganbold wrote:
>
>> options         DEBUG_LOCKS
>> options         DEBUG_VFS_LOCKS
>
> It is one of those two.  It breaks the kernel ABI so modules that are 
> not compiled with the same option (pass it in via CFLAGS=-DDEBUG_LOCKS 
> etc) will crash.

As Kris suggested I removed above options from kernel and now it works fine.
I think this PR can be closed now.

thanks,

Ganbold


>
> Kris
>
> _______________________________________________
> freebsd-bugs@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
> To unsubscribe, send any mail to "freebsd-bugs-unsubscribe@freebsd.org"
>
>
>


-- 
Do not underestimate the power of the Farce.
Comment 5 Remko Lodder freebsd_committer freebsd_triage 2008-02-21 07:55:18 UTC
State Changed
From-To: feedback->closed

Submitter reports this can be closed