2009/6/24 Bart van der Meulen <[email protected]>: > The following stack trace occurs when using the vacuum command on a > database within sqlite 3.6.15 > > Kernel is an 2.6.24.7-rt27 build with unionfs 2.5.2 applied > > Does somebody recognized this or known how to solve it? > > > BUG: unable to handle kernel NULL pointer dereference at virtual > address 000000dc > printing eip: c02062a9 *pde = 00000000 > Oops: 0000 [#1] PREEMPT SMP > Modules linked in: fschmd i2c_i801 i2c_core usb_storage ehci_hcd uhci_hcd > > Pid: 2923, comm: sqlite.bin Not tainted (2.6.24-RGL_1.2.1 #1) > EIP: 0060:[<c02062a9>] EFLAGS: 00010202 CPU: 0 > EIP is at unionfs_setattr+0x199/0x400 > EAX: 00000000 EBX: f779af28 ECX: 00000000 EDX: f6d553e0 > ESI: f779af20 EDI: f7780520 EBP: f6a4dee8 ESP: f6a4de98 > DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 preempt:00000001 > Process sqlite.bin (pid: 2923, ti=f6a4c000 task=f788edb0 task.ti=f6a4c000) > Stack: f6d6e440 f68dc0f8 00000000 00000000 00000000 00000000 f6a4df28 f77805c8 > f6a4ded8 00000000 f779ade8 f74345fc 00000000 00000000 f6a4df28 00002068 > f77804dc f6a4df28 00002068 f7780520 f6a4df20 c019f07a c01505a2 00000000 > Call Trace: > [<c01064aa>] show_trace_log_lvl+0x1a/0x30 > [<c0106576>] show_stack_log_lvl+0xb6/0xe0 > [<c0106664>] show_registers+0xc4/0x1f0 > [<c01068ab>] die+0x11b/0x230 > [<c0120b14>] do_page_fault+0x224/0x5c0 > [<c04bc302>] error_code+0x72/0x78 > [<c019f07a>] notify_change+0x2da/0x310 > [<c0188b37>] do_truncate+0x67/0x90 > [<c0188cb5>] do_sys_ftruncate+0x155/0x170 > [<c0188ceb>] sys_ftruncate64+0x1b/0x20 > [<c0105412>] sysenter_past_esp+0x5f/0x85 > ======================= > Code: 8b 55 e4 8b 46 6c 85 d2 0f 88 7c 02 00 00 8b 80 68 02 00 00 8b > 50 40 8b 45 e4 c1 e0 04 f6 44 10 08 02 0f 84 5c 01 00 00 8b 4d e0 <8b> > 81 dc 0000 00 f6 40 30 01 0f 85 49 01 00 00 8b 45 c8 f6 00 > EIP: [<c02062a9>] unionfs_setattr+0x199/0x400 SS:ESP 0068:f6a4de98 > ---[ end trace b0cab3a2f24f8544 ]--- >
I tried to trace the problem myself but I'm stuck. The null-pointer in question is returned by the call: lower_inode = unionfs_lower_inode(inode), in the function unionfs_setattr (fs/unionfs/inodec:912) I think the lower_inode is null because ibstart of the inode is -1. What I can't figure out is the reason why ibstart is -1. Can somebody give me some pointers on how to debug the problem further? _______________________________________________ unionfs mailing list: http://unionfs.filesystems.org/ [email protected] http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs
