[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Implementing ext3



> I'm starting to gather together patches for a new 2.2 release, though,
> so expect to see a clean 2.2.19 patch soon.

Could you please elaborate ?  I've had a strange oops yesterday in
do_get_write_access while stress-testing the filesystem (see below
for details) ; I couldn't reproduce it, and it is surprising as IIRC
I had given similar testing to ext3-0.0.5e without any problems.

If there has been related fixes since 0.0.6b, I'd be interested.

						Thank you,
						Cedric Ware.

Oops details:

The hardware is a standard workstation (Dell Optiplex GX1, PIII-550,
128M RAM, EIDE HDD, also SCSI card but no peripherals attached at
the moment, aic7xxx module not loaded), running Debian Potato with
several packages upgraded, including:

- Kernel 2.2.19 patched with ext3-0.0.6b and latest NFSv3 fixes
- e2fsprogs 1.20-WIP-0514 (release candidate 2)
- mount 2.11b (patched for NFSv3)
- nfs-utils 0.3.2

All filesystems are ext3, data=ordered, except that / is mounted sync
and /usr usually read-only.  A hardware glitch can't be ruled out,
but the system is usually very stable, uptime before I started those
tests was 230 days or so.  The machine runs INN for testing purposes.

The oops happened while two "tar zxf linux-2.2.19.tar.gz" were running
in parallel (in different directories) as well as a "rm -rf" of another
large directory.  There was an "assertion failure" message on console
(see syslog, first line), and afterwards, while my window manager and
xterms would still respond to mouse and keyboard input, the shells
wouldn't, nor would Ctrl-Alt-(F.|Backspace|Delete).  Xload showed a
skyrocketing load average, the hard disk was still working.

I had to do a hard reset.  Then I tried this again several times, but
it did not happen again...

Syslog excerpt:

May 15 18:23:00 olympe kernel: Assertion failure in do_get_write_access() at transaction.c line 487: "bh->b_transaction == journal->j_committing_transaction"
May 15 18:23:00 olympe kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000000
May 15 18:23:00 olympe kernel: current->tss.cr3 = 021d1000, %%cr3 = 021d1000
May 15 18:23:00 olympe kernel: *pde = 00000000
May 15 18:23:00 olympe kernel: Oops: 0002
May 15 18:23:00 olympe kernel: CPU:    0
May 15 18:23:00 olympe kernel: EIP:    0010:[do_get_write_access+445/1068]
May 15 18:23:00 olympe kernel: EFLAGS: 00010296
May 15 18:23:00 olympe kernel: eax: 00000082   ebx: c767cca0   ecx: 00000008   edx: 00000033
May 15 18:23:00 olympe kernel: esi: c7ad3d80   edi: 00000000   ebp: c7bf6020   esp: c6bdfb6c
May 15 18:23:00 olympe kernel: ds: 0018   es: 0018   ss: 0018
May 15 18:23:00 olympe kernel: Process tar (pid: 13962, process nr: 95, stackpage=c6bdf000)
May 15 18:23:00 olympe kernel: Stack: c01ac156 000001e7 c01ac540 c62942c0 c7ad3d80 c14ecb20 c767cca0 c62942c0 
May 15 18:23:00 olympe kernel:        c7ad3d80 c14ecb20 00000000 c62942c0 00000000 00000000 c767cca0 c62942c0 
May 15 18:23:00 olympe kernel:        00000000 c014da00 c62942c0 c767cca0 00000000 c014d9f4 c767cca0 c7ad3d80 
May 15 18:23:00 olympe kernel: Call Trace: [cprt+23542/37317] [cprt+24544/37317] [journal_get_write_access+40/124] [journal_get_write_access+28/124] [journal_get_undo_access+269/340] [ext3_free_blocks+512/824] [ext3_free_blocks+532/824] 
May 15 18:23:00 olympe kernel:        [ext3_forget+179/272] [trunc_direct+451/660] [ext3_truncate+239/1088] [ip_rcv+588/636] [ext3_truncate+322/1088] [ext3_delete_inode+130/364] [do_IRQ+65/72] [do_IRQ+65/72] 
May 15 18:23:00 olympe kernel:        [iput+139/552] [common_interrupt+24/32] [ext3_put_inode+16/24] [stext+24/285] [dput+177/352] [prune_dcache+311/360] [__free_inodes+31/104] [try_to_free_inodes+190/260] 
May 15 18:23:00 olympe kernel:        [ext3_find_entry+134/792] [grow_inodes+32/428] [do_get_write_access+1027/1068] [get_empty_inode+145/160] [start_this_handle+938/948] [ext3_new_inode+49/1704] [journal_start+136/188] [ext3_create+94/660] 
May 15 18:23:00 olympe kernel:        [ext3_notify_change+589/664] [permission+32/56] [open_namei+338/776] [filp_open+74/264] [filp_open+17/264] [sys_open+63/160] [sys_open+38/160] [sys_write+0/260] 
May 15 18:23:00 olympe kernel:        [system_call+52/56] 
May 15 18:23:00 olympe kernel: Code: c6 05 00 00 00 00 00 83 c4 20 90 80 7b 28 04 74 2e 83 c4 f4 

Ksymoops output from the former :

ksymoops 2.3.4 on i686 2.2.19ext3nfsv3.  Options used
     -V (default)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.2.19ext3nfsv3/ (default)
     -m /boot/System.map-2.2.19ext3nfsv3 (default)

Warning: You did not tell me where to find symbol information.  I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc.  ksymoops -h explains the options.

May 15 18:23:00 olympe kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000000
May 15 18:23:00 olympe kernel: current->tss.cr3 = 021d1000, %%cr3 = 021d1000
May 15 18:23:00 olympe kernel: *pde = 00000000
May 15 18:23:00 olympe kernel: Oops: 0002
May 15 18:23:00 olympe kernel: CPU:    0
May 15 18:23:00 olympe kernel: EIP:    0010:[do_get_write_access+445/1068]
May 15 18:23:00 olympe kernel: EFLAGS: 00010296
May 15 18:23:00 olympe kernel: eax: 00000082   ebx: c767cca0   ecx: 00000008   edx: 00000033
May 15 18:23:00 olympe kernel: esi: c7ad3d80   edi: 00000000   ebp: c7bf6020   esp: c6bdfb6c
May 15 18:23:00 olympe kernel: ds: 0018   es: 0018   ss: 0018
May 15 18:23:00 olympe kernel: Process tar (pid: 13962, process nr: 95, stackpage=c6bdf000)
May 15 18:23:00 olympe kernel: Stack: c01ac156 000001e7 c01ac540 c62942c0 c7ad3d80 c14ecb20 c767cca0 c62942c0 
May 15 18:23:00 olympe kernel:        c7ad3d80 c14ecb20 00000000 c62942c0 00000000 00000000 c767cca0 c62942c0 
May 15 18:23:00 olympe kernel:        00000000 c014da00 c62942c0 c767cca0 00000000 c014d9f4 c767cca0 c7ad3d80 
May 15 18:23:00 olympe kernel: Call Trace: [cprt+23542/37317] [cprt+24544/37317] [journal_get_write_access+40/124] [journal_get_write_access+28/124] [journal_get_undo_access+269/340] [ext3_free_blocks+512/824] [ext3_free_blocks+532/824] 
May 15 18:23:00 olympe kernel: Code: c6 05 00 00 00 00 00 83 c4 20 90 80 7b 28 04 74 2e 83 c4 f4 
Using defaults from ksymoops -t elf32-i386 -a i386

Code;  00000000 Before first symbol
00000000 <_EIP>:
Code;  00000000 Before first symbol
   0:   c6 05 00 00 00 00 00      movb   $0x0,0x0
Code;  00000007 Before first symbol
   7:   83 c4 20                  add    $0x20,%esp
Code;  0000000a Before first symbol
   a:   90                        nop    
Code;  0000000b Before first symbol
   b:   80 7b 28 04               cmpb   $0x4,0x28(%ebx)
Code;  0000000f Before first symbol
   f:   74 2e                     je     3f <_EIP+0x3f> 0000003f Before first symbol
Code;  00000011 Before first symbol
  11:   83 c4 f4                  add    $0xfffffff4,%esp


1 warning issued.  Results may not be reliable.





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]