* rpc.idmapd oops with latest NFS bits from your web site @ 2006-08-10 19:21 Chuck Lever 2006-08-10 19:35 ` Trond Myklebust 2006-08-10 19:50 ` J. Bruce Fields 0 siblings, 2 replies; 9+ messages in thread From: Chuck Lever @ 2006-08-10 19:21 UTC (permalink / raw) To: Trond Myklebust; +Cc: Linux NFS Mailing List I ran connectathon basic tests 20 times against a Linux NFSv3 server. At the end of the test I got this oops. This is repeatable, but not 100% of the time. My test client is a dual core 1.83GHz laptop running over GbE. FC5 is installed. Mount options are "rw,intr,tcp,vers=3" Aug 10 15:16:31 picasso kernel: BUG: unable to handle kernel paging request at virtual address 6b6b6bc3 Aug 10 15:16:31 picasso kernel: printing eip: Aug 10 15:16:31 picasso kernel: c015a1dc Aug 10 15:16:31 picasso kernel: *pde = 00000000 Aug 10 15:16:31 picasso kernel: Oops: 0000 [#1] Aug 10 15:16:31 picasso kernel: SMP Aug 10 15:16:31 picasso kernel: Modules linked in: nfs lockd nfs_acl sunrpc ext3 jbd dm_mirror dm_mod parport_pc parport usbhid nvram uhci_hcd ehci_hcd sr_mod snd_hda_intel snd_hda_codec snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss tg3 snd_pcm i2c_i801 snd_timer snd soundcore intel_agp snd_page_alloc i2c_core agpgart rtc usbcore xfs ata_piix libata sd_mod scsi_mod Aug 10 15:16:31 picasso kernel: CPU: 1 Aug 10 15:16:31 picasso kernel: EIP: 0060:[<c015a1dc>] Not tainted VLI Aug 10 15:16:31 picasso kernel: EFLAGS: 00010202 (2.6.18-rc4 #2) Aug 10 15:16:31 picasso kernel: EIP is at cdev_put+0x8/0x3d Aug 10 15:16:31 picasso kernel: eax: 6b6b6b6b ebx: 40000010 ecx: 00000000 edx: f6a26604 Aug 10 15:16:31 picasso kernel: esi: f6a26604 edi: f5532984 ebp: f7f5df60 esp: f7f5df5c Aug 10 15:16:31 picasso kernel: ds: 007b es: 007b ss: 0068 Aug 10 15:16:31 picasso kernel: Process rpc.idmapd (pid: 3203, ti=f7f5d000 task=f711f4d0 task.ti=f7f5d000) Aug 10 15:16:31 picasso kernel: Stack: 40000010 f7f5df80 c01538df f5302124 f6e77370 f6a26604 f5532984 f7f56ca8 Aug 10 15:16:31 picasso kernel: 00000000 f7f5df88 c015398e f7f5df9c c01512dd f7f56ca8 00000009 f7f56d28 Aug 10 15:16:31 picasso kernel: f7f5dfb4 c0152544 f5532984 00000009 80014940 80013810 f7f5d000 c01028f1 Aug 10 15:16:31 picasso kernel: Call Trace: Aug 10 15:16:31 picasso kernel: [<c01538df>] __fput+0xc5/0x15d Aug 10 15:16:31 picasso kernel: [<c015398e>] fput+0x17/0x19 Aug 10 15:16:31 picasso kernel: [<c01512dd>] filp_close+0x51/0x5b Aug 10 15:16:31 picasso kernel: [<c0152544>] sys_close+0x7b/0x8f Aug 10 15:16:31 picasso kernel: [<c01028f1>] sysenter_past_esp+0x56/0x8d Aug 10 15:16:31 picasso kernel: DWARF2 unwinder stuck at sysenter_past_esp+0x56/0x8d Aug 10 15:16:31 picasso kernel: Leftover inexact backtrace: Aug 10 15:16:31 picasso kernel: [<c0103b98>] show_stack_log_lvl+0x8c/0x97 Aug 10 15:16:31 picasso kernel: [<c0103ccf>] show_registers+0x12c/0x199 Aug 10 15:16:31 picasso kernel: [<c0103ebd>] die+0x181/0x26d Aug 10 15:16:31 picasso kernel: [<c02d55ab>] do_page_fault+0x3e5/0x4ad Aug 10 15:16:31 picasso kernel: [<c01035a9>] error_code+0x39/0x40 Aug 10 15:16:31 picasso kernel: [<c01538df>] __fput+0xc5/0x15d Aug 10 15:16:31 picasso kernel: [<c015398e>] fput+0x17/0x19 Aug 10 15:16:31 picasso kernel: [<c01512dd>] filp_close+0x51/0x5b Aug 10 15:16:31 picasso kernel: [<c0152544>] sys_close+0x7b/0x8f Aug 10 15:16:31 picasso kernel: [<c01028f1>] sysenter_past_esp+0x56/0x8d Aug 10 15:16:31 picasso kernel: Code: c3 55 89 e5 89 50 68 89 48 6c 50 68 79 a2 15 c0 68 24 a0 15 c0 6a 00 a1 20 58 61 c0 e8 69 ee 0b 00 c9 c3 55 89 e5 53 85 c0 74 32 <8b> 58 58 e8 ae f7 04 00 85 db 74 26 89 e0 25 00 f0 ff ff 8b 40 Aug 10 15:16:31 picasso kernel: EIP: [<c015a1dc>] cdev_put+0x8/0x3d SS:ESP 0068:f7f5df5c ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ NFS maillist - NFS@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: rpc.idmapd oops with latest NFS bits from your web site 2006-08-10 19:21 rpc.idmapd oops with latest NFS bits from your web site Chuck Lever @ 2006-08-10 19:35 ` Trond Myklebust 2006-08-10 19:45 ` Chuck Lever 2006-08-10 19:50 ` J. Bruce Fields 1 sibling, 1 reply; 9+ messages in thread From: Trond Myklebust @ 2006-08-10 19:35 UTC (permalink / raw) To: Chuck Lever; +Cc: Linux NFS Mailing List What is cdev_put(). Isn't that the tty layer? Cheers, Trond On Thu, 2006-08-10 at 15:21 -0400, Chuck Lever wrote: > I ran connectathon basic tests 20 times against a Linux NFSv3 server. > At the end of the test I got this oops. This is repeatable, but not > 100% of the time. > > My test client is a dual core 1.83GHz laptop running over GbE. FC5 is > installed. Mount options are "rw,intr,tcp,vers=3" > > Aug 10 15:16:31 picasso kernel: BUG: unable to handle kernel paging > request at virtual address 6b6b6bc3 > Aug 10 15:16:31 picasso kernel: printing eip: > Aug 10 15:16:31 picasso kernel: c015a1dc > Aug 10 15:16:31 picasso kernel: *pde = 00000000 > Aug 10 15:16:31 picasso kernel: Oops: 0000 [#1] > Aug 10 15:16:31 picasso kernel: SMP > Aug 10 15:16:31 picasso kernel: Modules linked in: nfs lockd nfs_acl > sunrpc ext3 jbd dm_mirror dm_mod parport_pc parport usbhid nvram > uhci_hcd ehci_hcd sr_mod snd_hda_intel snd_hda_codec snd_seq_dummy > snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss > snd_mixer_oss tg3 snd_pcm i2c_i801 snd_timer snd > soundcore intel_agp snd_page_alloc i2c_core agpgart rtc usbcore xfs > ata_piix libata sd_mod scsi_mod > Aug 10 15:16:31 picasso kernel: CPU: 1 > Aug 10 15:16:31 picasso kernel: EIP: 0060:[<c015a1dc>] Not tainted VLI > Aug 10 15:16:31 picasso kernel: EFLAGS: 00010202 (2.6.18-rc4 #2) > Aug 10 15:16:31 picasso kernel: EIP is at cdev_put+0x8/0x3d > Aug 10 15:16:31 picasso kernel: eax: 6b6b6b6b ebx: 40000010 ecx: > 00000000 edx: f6a26604 > Aug 10 15:16:31 picasso kernel: esi: f6a26604 edi: f5532984 ebp: > f7f5df60 esp: f7f5df5c > Aug 10 15:16:31 picasso kernel: ds: 007b es: 007b ss: 0068 > Aug 10 15:16:31 picasso kernel: Process rpc.idmapd (pid: 3203, > ti=f7f5d000 task=f711f4d0 task.ti=f7f5d000) > Aug 10 15:16:31 picasso kernel: Stack: 40000010 f7f5df80 c01538df > f5302124 f6e77370 f6a26604 f5532984 f7f56ca8 > Aug 10 15:16:31 picasso kernel: 00000000 f7f5df88 c015398e > f7f5df9c c01512dd f7f56ca8 00000009 f7f56d28 > Aug 10 15:16:31 picasso kernel: f7f5dfb4 c0152544 f5532984 > 00000009 80014940 80013810 f7f5d000 c01028f1 > Aug 10 15:16:31 picasso kernel: Call Trace: > Aug 10 15:16:31 picasso kernel: [<c01538df>] __fput+0xc5/0x15d > Aug 10 15:16:31 picasso kernel: [<c015398e>] fput+0x17/0x19 > Aug 10 15:16:31 picasso kernel: [<c01512dd>] filp_close+0x51/0x5b > Aug 10 15:16:31 picasso kernel: [<c0152544>] sys_close+0x7b/0x8f > Aug 10 15:16:31 picasso kernel: [<c01028f1>] sysenter_past_esp+0x56/0x8d > Aug 10 15:16:31 picasso kernel: DWARF2 unwinder stuck at > sysenter_past_esp+0x56/0x8d > Aug 10 15:16:31 picasso kernel: Leftover inexact backtrace: > Aug 10 15:16:31 picasso kernel: [<c0103b98>] show_stack_log_lvl+0x8c/0x97 > Aug 10 15:16:31 picasso kernel: [<c0103ccf>] show_registers+0x12c/0x199 > Aug 10 15:16:31 picasso kernel: [<c0103ebd>] die+0x181/0x26d > Aug 10 15:16:31 picasso kernel: [<c02d55ab>] do_page_fault+0x3e5/0x4ad > Aug 10 15:16:31 picasso kernel: [<c01035a9>] error_code+0x39/0x40 > Aug 10 15:16:31 picasso kernel: [<c01538df>] __fput+0xc5/0x15d > Aug 10 15:16:31 picasso kernel: [<c015398e>] fput+0x17/0x19 > Aug 10 15:16:31 picasso kernel: [<c01512dd>] filp_close+0x51/0x5b > Aug 10 15:16:31 picasso kernel: [<c0152544>] sys_close+0x7b/0x8f > Aug 10 15:16:31 picasso kernel: [<c01028f1>] sysenter_past_esp+0x56/0x8d > Aug 10 15:16:31 picasso kernel: Code: c3 55 89 e5 89 50 68 89 48 6c 50 > 68 79 a2 15 c0 68 24 a0 15 c0 6a 00 a1 20 58 61 c0 e8 69 ee 0b 00 c9 > c3 55 89 e5 53 85 > c0 74 32 <8b> 58 58 e8 ae f7 04 00 85 db 74 26 89 e0 25 00 f0 ff ff 8b 40 > Aug 10 15:16:31 picasso kernel: EIP: [<c015a1dc>] cdev_put+0x8/0x3d > SS:ESP 0068:f7f5df5c ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ NFS maillist - NFS@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: rpc.idmapd oops with latest NFS bits from your web site 2006-08-10 19:35 ` Trond Myklebust @ 2006-08-10 19:45 ` Chuck Lever 2006-08-10 21:44 ` Trond Myklebust 0 siblings, 1 reply; 9+ messages in thread From: Chuck Lever @ 2006-08-10 19:45 UTC (permalink / raw) To: Trond Myklebust; +Cc: Linux NFS Mailing List Yeah. I'd say something is overwriting i_cdev with garbarge. Then __fput sees that i_cdev is not NULL and tries to call cdev_put with a bogus address. On 8/10/06, Trond Myklebust <trond.myklebust@fys.uio.no> wrote: > What is cdev_put(). Isn't that the tty layer? > > Cheers, > Trond > > On Thu, 2006-08-10 at 15:21 -0400, Chuck Lever wrote: > > I ran connectathon basic tests 20 times against a Linux NFSv3 server. > > At the end of the test I got this oops. This is repeatable, but not > > 100% of the time. > > > > My test client is a dual core 1.83GHz laptop running over GbE. FC5 is > > installed. Mount options are "rw,intr,tcp,vers=3" > > > > Aug 10 15:16:31 picasso kernel: BUG: unable to handle kernel paging > > request at virtual address 6b6b6bc3 > > Aug 10 15:16:31 picasso kernel: printing eip: > > Aug 10 15:16:31 picasso kernel: c015a1dc > > Aug 10 15:16:31 picasso kernel: *pde = 00000000 > > Aug 10 15:16:31 picasso kernel: Oops: 0000 [#1] > > Aug 10 15:16:31 picasso kernel: SMP > > Aug 10 15:16:31 picasso kernel: Modules linked in: nfs lockd nfs_acl > > sunrpc ext3 jbd dm_mirror dm_mod parport_pc parport usbhid nvram > > uhci_hcd ehci_hcd sr_mod snd_hda_intel snd_hda_codec snd_seq_dummy > > snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss > > snd_mixer_oss tg3 snd_pcm i2c_i801 snd_timer snd > > soundcore intel_agp snd_page_alloc i2c_core agpgart rtc usbcore xfs > > ata_piix libata sd_mod scsi_mod > > Aug 10 15:16:31 picasso kernel: CPU: 1 > > Aug 10 15:16:31 picasso kernel: EIP: 0060:[<c015a1dc>] Not tainted VLI > > Aug 10 15:16:31 picasso kernel: EFLAGS: 00010202 (2.6.18-rc4 #2) > > Aug 10 15:16:31 picasso kernel: EIP is at cdev_put+0x8/0x3d > > Aug 10 15:16:31 picasso kernel: eax: 6b6b6b6b ebx: 40000010 ecx: > > 00000000 edx: f6a26604 > > Aug 10 15:16:31 picasso kernel: esi: f6a26604 edi: f5532984 ebp: > > f7f5df60 esp: f7f5df5c > > Aug 10 15:16:31 picasso kernel: ds: 007b es: 007b ss: 0068 > > Aug 10 15:16:31 picasso kernel: Process rpc.idmapd (pid: 3203, > > ti=f7f5d000 task=f711f4d0 task.ti=f7f5d000) > > Aug 10 15:16:31 picasso kernel: Stack: 40000010 f7f5df80 c01538df > > f5302124 f6e77370 f6a26604 f5532984 f7f56ca8 > > Aug 10 15:16:31 picasso kernel: 00000000 f7f5df88 c015398e > > f7f5df9c c01512dd f7f56ca8 00000009 f7f56d28 > > Aug 10 15:16:31 picasso kernel: f7f5dfb4 c0152544 f5532984 > > 00000009 80014940 80013810 f7f5d000 c01028f1 > > Aug 10 15:16:31 picasso kernel: Call Trace: > > Aug 10 15:16:31 picasso kernel: [<c01538df>] __fput+0xc5/0x15d > > Aug 10 15:16:31 picasso kernel: [<c015398e>] fput+0x17/0x19 > > Aug 10 15:16:31 picasso kernel: [<c01512dd>] filp_close+0x51/0x5b > > Aug 10 15:16:31 picasso kernel: [<c0152544>] sys_close+0x7b/0x8f > > Aug 10 15:16:31 picasso kernel: [<c01028f1>] sysenter_past_esp+0x56/0x8d > > Aug 10 15:16:31 picasso kernel: DWARF2 unwinder stuck at > > sysenter_past_esp+0x56/0x8d > > Aug 10 15:16:31 picasso kernel: Leftover inexact backtrace: > > Aug 10 15:16:31 picasso kernel: [<c0103b98>] show_stack_log_lvl+0x8c/0x97 > > Aug 10 15:16:31 picasso kernel: [<c0103ccf>] show_registers+0x12c/0x199 > > Aug 10 15:16:31 picasso kernel: [<c0103ebd>] die+0x181/0x26d > > Aug 10 15:16:31 picasso kernel: [<c02d55ab>] do_page_fault+0x3e5/0x4ad > > Aug 10 15:16:31 picasso kernel: [<c01035a9>] error_code+0x39/0x40 > > Aug 10 15:16:31 picasso kernel: [<c01538df>] __fput+0xc5/0x15d > > Aug 10 15:16:31 picasso kernel: [<c015398e>] fput+0x17/0x19 > > Aug 10 15:16:31 picasso kernel: [<c01512dd>] filp_close+0x51/0x5b > > Aug 10 15:16:31 picasso kernel: [<c0152544>] sys_close+0x7b/0x8f > > Aug 10 15:16:31 picasso kernel: [<c01028f1>] sysenter_past_esp+0x56/0x8d > > Aug 10 15:16:31 picasso kernel: Code: c3 55 89 e5 89 50 68 89 48 6c 50 > > 68 79 a2 15 c0 68 24 a0 15 c0 6a 00 a1 20 58 61 c0 e8 69 ee 0b 00 c9 > > c3 55 89 e5 53 85 > > c0 74 32 <8b> 58 58 e8 ae f7 04 00 85 db 74 26 89 e0 25 00 f0 ff ff 8b 40 > > Aug 10 15:16:31 picasso kernel: EIP: [<c015a1dc>] cdev_put+0x8/0x3d > > SS:ESP 0068:f7f5df5c > > -- "We who cut mere stones must always be envisioning cathedrals" -- Quarry worker's creed ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ NFS maillist - NFS@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: rpc.idmapd oops with latest NFS bits from your web site 2006-08-10 19:45 ` Chuck Lever @ 2006-08-10 21:44 ` Trond Myklebust 2006-08-11 14:34 ` Chuck Lever 0 siblings, 1 reply; 9+ messages in thread From: Trond Myklebust @ 2006-08-10 21:44 UTC (permalink / raw) To: Chuck Lever; +Cc: Linux NFS Mailing List [-- Attachment #1: Type: text/plain, Size: 430 bytes --] On Thu, 2006-08-10 at 15:45 -0400, Chuck Lever wrote: > Yeah. I'd say something is overwriting i_cdev with garbarge. Then > __fput sees that i_cdev is not NULL and tries to call cdev_put with a > bogus address. Looks like something is calling fput() on a file pointing to an inode that has already been freed. 6b6b6b6b is the mark of the poisoned slab entry. Hmm.... Does the attached patch fix it for you? Cheers, Trond [-- Attachment #2: linux-2.6.18-fix_rpc_unlink_rmdir_2.dif --] [-- Type: message/rfc822, Size: 1668 bytes --] From: Trond Myklebust <Trond.Myklebust@netapp.com> Subject: No Subject Date: Thu, 10 Aug 2006 17:44:24 -0400 Message-ID: <1155246264.5826.63.camel@localhost> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> --- net/sunrpc/rpc_pipe.c | 17 ++++++++++------- 1 files changed, 10 insertions(+), 7 deletions(-) diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c index 9c355e1..0b1a1ac 100644 --- a/net/sunrpc/rpc_pipe.c +++ b/net/sunrpc/rpc_pipe.c @@ -539,6 +539,7 @@ repeat: rpc_close_pipes(dentry->d_inode); simple_unlink(dir, dentry); } + inode_dir_notify(dir, DN_DELETE); dput(dentry); } while (n); goto repeat; @@ -610,8 +611,8 @@ __rpc_rmdir(struct inode *dir, struct de int error; shrink_dcache_parent(dentry); - if (dentry->d_inode) - rpc_close_pipes(dentry->d_inode); + if (d_unhashed(dentry)) + return 0; if ((error = simple_rmdir(dir, dentry)) != 0) return error; if (!error) { @@ -747,13 +748,15 @@ rpc_unlink(struct dentry *dentry) parent = dget_parent(dentry); dir = parent->d_inode; mutex_lock_nested(&dir->i_mutex, I_MUTEX_PARENT); - d_drop(dentry); - if (dentry->d_inode) { - rpc_close_pipes(dentry->d_inode); - error = simple_unlink(dir, dentry); + if (!d_unhashed(dentry)) { + d_drop(dentry); + if (dentry->d_inode) { + rpc_close_pipes(dentry->d_inode); + error = simple_unlink(dir, dentry); + } + inode_dir_notify(dir, DN_DELETE); } dput(dentry); - inode_dir_notify(dir, DN_DELETE); mutex_unlock(&dir->i_mutex); dput(parent); return error; [-- Attachment #3: Type: text/plain, Size: 373 bytes --] ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 [-- Attachment #4: Type: text/plain, Size: 140 bytes --] _______________________________________________ NFS maillist - NFS@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: rpc.idmapd oops with latest NFS bits from your web site 2006-08-10 21:44 ` Trond Myklebust @ 2006-08-11 14:34 ` Chuck Lever 2006-08-14 17:26 ` Trond Myklebust 0 siblings, 1 reply; 9+ messages in thread From: Chuck Lever @ 2006-08-11 14:34 UTC (permalink / raw) To: Trond Myklebust; +Cc: Linux NFS Mailing List On 8/10/06, Trond Myklebust <trond.myklebust@fys.uio.no> wrote: > On Thu, 2006-08-10 at 15:45 -0400, Chuck Lever wrote: > > Yeah. I'd say something is overwriting i_cdev with garbarge. Then > > __fput sees that i_cdev is not NULL and tries to call cdev_put with a > > bogus address. > > Looks like something is calling fput() on a file pointing to an inode > that has already been freed. 6b6b6b6b is the mark of the poisoned slab > entry. > > Hmm.... Does the attached patch fix it for you? Unfortunately, no. Exact same symptoms. > ---------- Forwarded message ---------- > From: Trond Myklebust <Trond.Myklebust@netapp.com> > To: > Date: Thu, 10 Aug 2006 17:44:24 -0400 > Subject: No Subject > Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> > --- > > net/sunrpc/rpc_pipe.c | 17 ++++++++++------- > 1 files changed, 10 insertions(+), 7 deletions(-) > > diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c > index 9c355e1..0b1a1ac 100644 > --- a/net/sunrpc/rpc_pipe.c > +++ b/net/sunrpc/rpc_pipe.c > @@ -539,6 +539,7 @@ repeat: > rpc_close_pipes(dentry->d_inode); > simple_unlink(dir, dentry); > } > + inode_dir_notify(dir, DN_DELETE); > dput(dentry); > } while (n); > goto repeat; > @@ -610,8 +611,8 @@ __rpc_rmdir(struct inode *dir, struct de > int error; > > shrink_dcache_parent(dentry); > - if (dentry->d_inode) > - rpc_close_pipes(dentry->d_inode); > + if (d_unhashed(dentry)) > + return 0; > if ((error = simple_rmdir(dir, dentry)) != 0) > return error; > if (!error) { > @@ -747,13 +748,15 @@ rpc_unlink(struct dentry *dentry) > parent = dget_parent(dentry); > dir = parent->d_inode; > mutex_lock_nested(&dir->i_mutex, I_MUTEX_PARENT); > - d_drop(dentry); > - if (dentry->d_inode) { > - rpc_close_pipes(dentry->d_inode); > - error = simple_unlink(dir, dentry); > + if (!d_unhashed(dentry)) { > + d_drop(dentry); > + if (dentry->d_inode) { > + rpc_close_pipes(dentry->d_inode); > + error = simple_unlink(dir, dentry); > + } > + inode_dir_notify(dir, DN_DELETE); > } > dput(dentry); > - inode_dir_notify(dir, DN_DELETE); > mutex_unlock(&dir->i_mutex); > dput(parent); > return error; > > > -- "We who cut mere stones must always be envisioning cathedrals" -- Quarry worker's creed ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ NFS maillist - NFS@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: rpc.idmapd oops with latest NFS bits from your web site 2006-08-11 14:34 ` Chuck Lever @ 2006-08-14 17:26 ` Trond Myklebust 2006-08-15 1:36 ` Chuck Lever 0 siblings, 1 reply; 9+ messages in thread From: Trond Myklebust @ 2006-08-14 17:26 UTC (permalink / raw) To: Chuck Lever; +Cc: Linux NFS Mailing List [-- Attachment #1: Type: text/plain, Size: 744 bytes --] On Fri, 2006-08-11 at 10:34 -0400, Chuck Lever wrote: > On 8/10/06, Trond Myklebust <trond.myklebust@fys.uio.no> wrote: > > On Thu, 2006-08-10 at 15:45 -0400, Chuck Lever wrote: > > > Yeah. I'd say something is overwriting i_cdev with garbarge. Then > > > __fput sees that i_cdev is not NULL and tries to call cdev_put with a > > > bogus address. > > > > Looks like something is calling fput() on a file pointing to an inode > > that has already been freed. 6b6b6b6b is the mark of the poisoned slab > > entry. > > > > Hmm.... Does the attached patch fix it for you? > > Unfortunately, no. Exact same symptoms. OK. I think I've nailed it now. Please try the following patch, which has been merged into the NFS git tree... Cheers, Trond [-- Attachment #2: linux-2.6.18-009-fix_rpc_unlink_rmdir_3.dif --] [-- Type: message/rfc822, Size: 2730 bytes --] From: Trond Myklebust <Trond.Myklebust@netapp.com> Subject: No Subject Date: Mon, 14 Aug 2006 13:26:26 -0400 Message-ID: <1155576386.5664.97.camel@localhost> rpc_unlink() and rpc_rmdir() will dput the dentry reference for you. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> --- fs/nfs/idmap.c | 1 - net/sunrpc/auth_gss/auth_gss.c | 1 - net/sunrpc/clnt.c | 15 ++++++--------- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/fs/nfs/idmap.c b/fs/nfs/idmap.c index df0be12..07a5dd5 100644 --- a/fs/nfs/idmap.c +++ b/fs/nfs/idmap.c @@ -131,7 +131,6 @@ nfs_idmap_delete(struct nfs4_client *clp if (!idmap) return; rpc_unlink(idmap->idmap_dentry); - dput(idmap->idmap_dentry); clp->cl_idmap = NULL; kfree(idmap); } diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c index beaa7b8..ef1cf5b 100644 --- a/net/sunrpc/auth_gss/auth_gss.c +++ b/net/sunrpc/auth_gss/auth_gss.c @@ -719,7 +719,6 @@ gss_destroy(struct rpc_auth *auth) gss_auth = container_of(auth, struct gss_auth, rpc_auth); rpc_unlink(gss_auth->dentry); - dput(gss_auth->dentry); gss_auth->dentry = NULL; gss_mech_put(gss_auth->mech); diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index d307556..d9eac70 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c @@ -184,7 +184,6 @@ rpc_new_client(struct rpc_xprt *xprt, ch out_no_auth: if (!IS_ERR(clnt->cl_dentry)) { rpc_rmdir(clnt->cl_dentry); - dput(clnt->cl_dentry); rpc_put_mount(); } out_no_path: @@ -251,10 +250,8 @@ rpc_clone_client(struct rpc_clnt *clnt) new->cl_autobind = 0; new->cl_oneshot = 0; new->cl_dead = 0; - if (!IS_ERR(new->cl_dentry)) { + if (!IS_ERR(new->cl_dentry)) dget(new->cl_dentry); - rpc_get_mount(); - } rpc_init_rtt(&new->cl_rtt_default, clnt->cl_xprt->timeout.to_initval); if (new->cl_auth) atomic_inc(&new->cl_auth->au_count); @@ -317,11 +314,15 @@ rpc_destroy_client(struct rpc_clnt *clnt clnt->cl_auth = NULL; } if (clnt->cl_parent != clnt) { + if (!IS_ERR(clnt->cl_dentry)) + dput(clnt->cl_dentry); rpc_destroy_client(clnt->cl_parent); goto out_free; } - if (!IS_ERR(clnt->cl_dentry)) + if (!IS_ERR(clnt->cl_dentry)) { rpc_rmdir(clnt->cl_dentry); + rpc_put_mount(); + } if (clnt->cl_xprt) { xprt_destroy(clnt->cl_xprt); clnt->cl_xprt = NULL; @@ -331,10 +332,6 @@ rpc_destroy_client(struct rpc_clnt *clnt out_free: rpc_free_iostats(clnt->cl_metrics); clnt->cl_metrics = NULL; - if (!IS_ERR(clnt->cl_dentry)) { - dput(clnt->cl_dentry); - rpc_put_mount(); - } kfree(clnt); return 0; } [-- Attachment #3: Type: text/plain, Size: 373 bytes --] ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 [-- Attachment #4: Type: text/plain, Size: 140 bytes --] _______________________________________________ NFS maillist - NFS@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: rpc.idmapd oops with latest NFS bits from your web site 2006-08-14 17:26 ` Trond Myklebust @ 2006-08-15 1:36 ` Chuck Lever 0 siblings, 0 replies; 9+ messages in thread From: Chuck Lever @ 2006-08-15 1:36 UTC (permalink / raw) To: Trond Myklebust; +Cc: Linux NFS Mailing List On 8/14/06, Trond Myklebust <trond.myklebust@fys.uio.no> wrote: > On Fri, 2006-08-11 at 10:34 -0400, Chuck Lever wrote: > > On 8/10/06, Trond Myklebust <trond.myklebust@fys.uio.no> wrote: > > > On Thu, 2006-08-10 at 15:45 -0400, Chuck Lever wrote: > > > > Yeah. I'd say something is overwriting i_cdev with garbarge. Then > > > > __fput sees that i_cdev is not NULL and tries to call cdev_put with a > > > > bogus address. > > > > > > Looks like something is calling fput() on a file pointing to an inode > > > that has already been freed. 6b6b6b6b is the mark of the poisoned slab > > > entry. > > > > > > Hmm.... Does the attached patch fix it for you? > > > > Unfortunately, no. Exact same symptoms. > > OK. I think I've nailed it now. Please try the following patch, which > has been merged into the NFS git tree... Yes, this one seems stable. > ---------- Forwarded message ---------- > From: Trond Myklebust <Trond.Myklebust@netapp.com> > To: > Date: Mon, 14 Aug 2006 13:26:26 -0400 > Subject: No Subject > rpc_unlink() and rpc_rmdir() will dput the dentry reference for you. > > Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> > --- > > fs/nfs/idmap.c | 1 - > net/sunrpc/auth_gss/auth_gss.c | 1 - > net/sunrpc/clnt.c | 15 ++++++--------- > 3 files changed, 6 insertions(+), 11 deletions(-) > > diff --git a/fs/nfs/idmap.c b/fs/nfs/idmap.c > index df0be12..07a5dd5 100644 > --- a/fs/nfs/idmap.c > +++ b/fs/nfs/idmap.c > @@ -131,7 +131,6 @@ nfs_idmap_delete(struct nfs4_client *clp > if (!idmap) > return; > rpc_unlink(idmap->idmap_dentry); > - dput(idmap->idmap_dentry); > clp->cl_idmap = NULL; > kfree(idmap); > } > diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c > index beaa7b8..ef1cf5b 100644 > --- a/net/sunrpc/auth_gss/auth_gss.c > +++ b/net/sunrpc/auth_gss/auth_gss.c > @@ -719,7 +719,6 @@ gss_destroy(struct rpc_auth *auth) > > gss_auth = container_of(auth, struct gss_auth, rpc_auth); > rpc_unlink(gss_auth->dentry); > - dput(gss_auth->dentry); > gss_auth->dentry = NULL; > gss_mech_put(gss_auth->mech); > > diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c > index d307556..d9eac70 100644 > --- a/net/sunrpc/clnt.c > +++ b/net/sunrpc/clnt.c > @@ -184,7 +184,6 @@ rpc_new_client(struct rpc_xprt *xprt, ch > out_no_auth: > if (!IS_ERR(clnt->cl_dentry)) { > rpc_rmdir(clnt->cl_dentry); > - dput(clnt->cl_dentry); > rpc_put_mount(); > } > out_no_path: > @@ -251,10 +250,8 @@ rpc_clone_client(struct rpc_clnt *clnt) > new->cl_autobind = 0; > new->cl_oneshot = 0; > new->cl_dead = 0; > - if (!IS_ERR(new->cl_dentry)) { > + if (!IS_ERR(new->cl_dentry)) > dget(new->cl_dentry); > - rpc_get_mount(); > - } > rpc_init_rtt(&new->cl_rtt_default, clnt->cl_xprt->timeout.to_initval); > if (new->cl_auth) > atomic_inc(&new->cl_auth->au_count); > @@ -317,11 +314,15 @@ rpc_destroy_client(struct rpc_clnt *clnt > clnt->cl_auth = NULL; > } > if (clnt->cl_parent != clnt) { > + if (!IS_ERR(clnt->cl_dentry)) > + dput(clnt->cl_dentry); > rpc_destroy_client(clnt->cl_parent); > goto out_free; > } > - if (!IS_ERR(clnt->cl_dentry)) > + if (!IS_ERR(clnt->cl_dentry)) { > rpc_rmdir(clnt->cl_dentry); > + rpc_put_mount(); > + } > if (clnt->cl_xprt) { > xprt_destroy(clnt->cl_xprt); > clnt->cl_xprt = NULL; > @@ -331,10 +332,6 @@ rpc_destroy_client(struct rpc_clnt *clnt > out_free: > rpc_free_iostats(clnt->cl_metrics); > clnt->cl_metrics = NULL; > - if (!IS_ERR(clnt->cl_dentry)) { > - dput(clnt->cl_dentry); > - rpc_put_mount(); > - } > kfree(clnt); > return 0; > } > > > -- "We who cut mere stones must always be envisioning cathedrals" -- Quarry worker's creed ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ NFS maillist - NFS@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: rpc.idmapd oops with latest NFS bits from your web site 2006-08-10 19:21 rpc.idmapd oops with latest NFS bits from your web site Chuck Lever 2006-08-10 19:35 ` Trond Myklebust @ 2006-08-10 19:50 ` J. Bruce Fields 2006-08-10 19:51 ` Chuck Lever 1 sibling, 1 reply; 9+ messages in thread From: J. Bruce Fields @ 2006-08-10 19:50 UTC (permalink / raw) To: Chuck Lever; +Cc: Linux NFS Mailing List, Trond Myklebust On Thu, Aug 10, 2006 at 03:21:41PM -0400, Chuck Lever wrote: > I ran connectathon basic tests 20 times against a Linux NFSv3 server. > At the end of the test I got this oops. This is repeatable, but not > 100% of the time. The oops is from the client? --b. ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ NFS maillist - NFS@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: rpc.idmapd oops with latest NFS bits from your web site 2006-08-10 19:50 ` J. Bruce Fields @ 2006-08-10 19:51 ` Chuck Lever 0 siblings, 0 replies; 9+ messages in thread From: Chuck Lever @ 2006-08-10 19:51 UTC (permalink / raw) To: J. Bruce Fields; +Cc: Linux NFS Mailing List, Trond Myklebust On 8/10/06, J. Bruce Fields <bfields@fieldses.org> wrote: > On Thu, Aug 10, 2006 at 03:21:41PM -0400, Chuck Lever wrote: > > I ran connectathon basic tests 20 times against a Linux NFSv3 server. > > At the end of the test I got this oops. This is repeatable, but not > > 100% of the time. > > The oops is from the client? Yessir. -- "We who cut mere stones must always be envisioning cathedrals" -- Quarry worker's creed ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ NFS maillist - NFS@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2006-08-15 1:36 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-08-10 19:21 rpc.idmapd oops with latest NFS bits from your web site Chuck Lever 2006-08-10 19:35 ` Trond Myklebust 2006-08-10 19:45 ` Chuck Lever 2006-08-10 21:44 ` Trond Myklebust 2006-08-11 14:34 ` Chuck Lever 2006-08-14 17:26 ` Trond Myklebust 2006-08-15 1:36 ` Chuck Lever 2006-08-10 19:50 ` J. Bruce Fields 2006-08-10 19:51 ` Chuck Lever
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.