Oops on flock on NFS3 krb5 mount
Subsystems (2)
On 2.6.11-rc2 with Trond's patches applied, when I run the following on my NFS3 krb5 mount:
#include <stdio.h>
#include <sys/file.h>
#include <unistd.h>
int main(void) {
int fd = open("foo", O_CREAT);
flock(fd, LOCK_SH);
close(fd);
return 0;
}
I get:
Jan 27 20:49:23 soda kernel: net/sunrpc/auth_gss/auth_gss.c:356: spin_is_locked on uninitialized spinlock f6e62dbc. Jan 27 20:49:23 soda kernel: net/sunrpc/auth_gss/auth_gss.c:356: spin_lock(<NULL>:f6e62dbc) already locked by /0 Jan 27 20:49:23 soda kernel: Unable to handle kernel paging request at virtual address 6469705f Jan 27 20:49:23 soda kernel: printing eip: Jan 27 20:49:23 soda kernel: f8a0f467 Jan 27 20:49:23 soda kernel: *pde = 00000000 Jan 27 20:49:23 soda kernel: Oops: 0000 [#1] Jan 27 20:49:23 soda kernel: Modules linked in: des nfs lockd parport_pc
lp parport autofs4 rpcsec_gss_krb5 auth_rpcgss sunrpc video button battery ac md5 ipv6 uhci_hcd ehci_hcd snd_intel8x0 snd_ac97_codec snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd soundcore snd_page_alloc tg3 floppy dm_snapshot dm_zero dm_mirror ext3 jbd dm_mod ata_piix libata sd_mod scsi_mod
Jan 27 20:49:23 soda kernel: CPU: 0 Jan 27 20:49:23 soda kernel: EIP: 0060:[<f8a0f467>] Not tainted VLI Jan 27 20:49:23 soda kernel: EFLAGS: 00010286 (2.6.11-rc2) Jan 27 20:49:23 soda kernel: EIP is at __gss_find_upcall+0x17/0xb0 [auth_rpcgss] Jan 27 20:49:23 soda kernel: eax: f6e62d60 ebx: 64697047 ecx: 6469705f edx: 000010a0 Jan 27 20:49:23 soda kernel: esi: f6e62d60 edi: 000010a0 ebp: f8a1476c esp: f4fe9b24 Jan 27 20:49:23 soda kernel: ds: 007b es: 007b ss: 0068 Jan 27 20:49:23 soda kernel: Process test (pid: 5538, threadinfo=f4fe9000 task=f6bfa930) Jan 27 20:49:23 soda kernel: Stack: f6e62d60 f6c81124 00000000 f6e62d60 f6c81124 f8a0f6e0 f8a14874 f8a1476c Jan 27 20:49:23 soda kernel: 00000164 00000000 f6e62dbc f6b88000 00000000 00000000 000010a0 00000032 Jan 27 20:49:23 soda kernel: f89c4f97 f72a00c0 f6c81080 f6c81080 f72a00c0 f6c81124 f4fe9bb8 f89cd767 Jan 27 20:49:23 soda kernel: Call Trace: Jan 27 20:49:23 soda kernel: [<f8a0f6e0>] gss_upcall+0x60/0x500 [auth_rpcgss] Jan 27 20:49:23 soda kernel: [<f89c4f97>] call_encode+0xa7/0x140 [sunrpc] Jan 27 20:49:23 soda kernel: [<f89cd767>] rpcauth_refreshcred+0x27/0x60 [sunrpc] Jan 27 20:49:23 soda kernel: [<f89c5786>] call_refresh+0x16/0x60 [sunrpc] Jan 27 20:49:23 soda kernel: [<f89cb206>] __rpc_execute+0x76/0x3b0 [sunrpc] Jan 27 20:49:23 soda kernel: [<c0140e20>] autoremove_wake_function+0x0/0x50 Jan 27 20:49:23 soda last message repeated 2 times Jan 27 20:49:23 soda kernel: [<f89c4a77>] rpc_call_sync+0x87/0xa0 [sunrpc] Jan 27 20:49:23 soda kernel: [<f8b304b3>] nlmclnt_call+0xa3/0x210 [lockd] Jan 27 20:49:23 soda kernel: [<f8b3099c>] nlmclnt_lock+0x3c/0xd0 [lockd] Jan 27 20:49:23 soda kernel: [<f8b2fe2c>] nlmclnt_proc+0x26c/0x700 [lockd] Jan 27 20:49:23 soda kernel: [<f8a10d0c>] gss_unwrap_resp+0x4c/0x1a0 [auth_rpcgss] Jan 27 20:49:23 soda kernel: [<c0168900>] arch_get_unmapped_area_topdown+0x0/0x140 Jan 27 20:49:23 soda kernel: [<c0168a40>] arch_unmap_area_topdown+0x0/0x10 Jan 27 20:49:23 soda kernel: [<f8b4be01>] do_setlk+0x111/0x1a0 [nfs] Jan 27 20:49:23 soda kernel: [<f8b4bfd0>] nfs_flock+0x0/0xf9 [nfs] Jan 27 20:49:23 soda kernel: [<c0198cae>] sys_flock+0x9e/0x180 Jan 27 20:49:23 soda kernel: [<c010397d>] sysenter_past_esp+0x52/0x75 Jan 27 20:49:23 soda kernel: Code: 8d 74 26 00 c3 0f 0b 2c 01 6c 47 a1
f8 eb e9 90 8d 74 26 00 83 ec 14 89 5c 24 08 89 7c 24 10 89 d7 89 74 24 0c 8b 48 20 8d 59 e8 <8b> 53 18 0f 18 02 90 8d 70 20 39 f1 74 23 8d 74 26 00 8d bc 27
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs
fr den 28.01.2005 Klokka 00:43 (-0800) skreiv Mark Goodman:
Quoted 2 lines
On 2.6.11-rc2 with Trond's patches applied, when I run the following on my NFS3 krb5 mount:
Thanks for the report! I'll look into it tonight.
Please note, though, that the RPCSEC_GSS code in my NFS_ALL patches is likely to be a bit unstable over the next few days as I'm in the process of merging the keyring support.
Cheers,
Trond
Signature · 12 lines
Trond Myklebust <[email protected]> ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ NFS maillist - [email protected] https://lists.sourceforge.net/lists/listinfo/nfs
Hi Mark,
Does the following patch help? AFAIK, we should not be using RPCSEC_GSS against NLM servers if we want to be able to interoperate with other implementations.
I've been told that Solaris will, for instance, only use AUTH_SYS for locking.
Cheers,
Trond
Signature · 1 line
Trond Myklebust <[email protected]>
clntproc.c | 7 +------ host.c | 3 ++- 2 files changed, 3 insertions(+), 7 deletions(-)
fs/lockd/host.c +2 -1
@@ -191,8 +191,9 @@ nlm_bind_host(struct nlm_host *host)xprt_set_timeout (&xprt->timeout,5 , nlmsvc_timeout); +/* Existing NLM servers accept AUTH_UNIX only */ clnt =rpc_create_client (xprt, host->h_name, &nlm_program, - host->h_version, host->h_authflavor); + host->h_version,RPC_AUTH_UNIX );if (IS_ERR (clnt)) {xprt_destroy (xprt); goto forgetit;
fs/lockd/clntproc.c +1 -6
@@ -339,9 +339,6 @@ nlmclnt_call(struct nlm_rqst *req, u32 pdprintk ("lockd: call procedure %d on %s\n" , (int )proc, host->h_name); -if (filp) - msg.rpc_cred =nfs_file_cred (filp); - do { if (host->h_reclaiming && !argp->reclaim) goto in_grace_period;
@@ -450,11 +447,9 @@ nlmclnt_async_call(struct nlm_rqst *req,return -ENOLCK ; msg.rpc_proc = &clnt->cl_procinfo[proc]; -/* bootstrap and kick off the async RPC call */ -if (file) - msg.rpc_cred =nfs_file_cred (file);/* Increment host refcount */ nlm_get_host (host); +/* bootstrap and kick off the async RPC call */ status =rpc_call_async (clnt, &msg,RPC_TASK_ASYNC , callback, req);if (status <0 )nlm_release_host (host);
Yes, it fixes it.
Mark
Quoted 6 lines · Trond Myklebust
Hi Mark,
Does the following patch help? AFAIK, we should not be using
RPCSEC_GSSagainst NLM servers if we want to be able to interoperate with other implementations.
Quoted 7 lines
I've been told that Solaris will, for instance, only use
AUTH_SYSfor locking.Cheers,
Trond
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs