Skip to contentSkip to conversation

NFS locking bug

DISCUSSION Ragnar Kjørstad 2 participants 2 messages Aug 1, 2001

lore
Share & tools
lore
#0 lore raw

Let me first ask if I've understood this correctly:
Is statd on the NFS-server supposed to keep track of all NFS-clients that have locks on the server?
And if the NFS-server gets restarted, statd look at the list of clients that held locks, and notify them about the restart?
And then statd/lockd on the clientside will relock the files, to make sure no other clients can lock the same file?

This is what I do:
* mount NFS filesystem on client1
* mount NFS filesystem on client2
* lock file on client1
* verify that I can not lock the same file on client2
* reboot the NFS-server
* When I start statd on the nfs-server, I see the following in the logfiles for the clients:

  Jul 31 18:33:55 client rpc.statd[455]: recv_rply: [127.0.0.1] RPC status 3 
  Jul 31 18:33:55 client kernel: svc: unknown procedure (24)
  Jul 31 18:34:01 client kernel: svc: unknown procedure (24)
  Jul 31 18:34:01 client rpc.statd[455]: recv_rply: [127.0.0.1] RPC status 3 
  Jul 31 18:34:07 client kernel: svc: unknown procedure (24)
  Jul 31 18:34:07 client rpc.statd[455]: recv_rply: [127.0.0.1] RPC status 3 
  Jul 31 18:34:13 client kernel: svc: unknown procedure (24)
  Jul 31 18:34:13 client rpc.statd[455]: recv_rply: [127.0.0.1] RPC status 3 
  Jul 31 18:34:19 client rpc.statd[455]: Can't callback client (100021,1), giving up.

* I can no lock the file on client2, even if the client1 still thinks the file is locked.

Is this a bug?

Signature · 2 lines
Ragnar Kjorstad
Big Storage
#1 lore raw
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

" " == Ragnar Kjørstad <[email protected]> writes:

> This is what I do:
> * mount NFS filesystem on client1
> * mount NFS filesystem on client2
> * lock file on client1
> * verify that I can not lock the same file on client2 > * reboot the NFS-server
> * When I start statd on the nfs-server, I see the following
> in the logfiles for the clients:

> Jul 31 18:33:55 client rpc.statd[455]: recv_rply: [127.0.0.1]
> RPC status 3 Jul 31 18:33:55 client kernel: svc: unknown
> procedure (24) Jul 31 18:34:01 client kernel: svc: unknown
> procedure (24) Jul 31 18:34:01 client rpc.statd[455]:
> recv_rply: [127.0.0.1] RPC status 3 Jul 31 18:34:07 client
> kernel: svc: unknown procedure (24) Jul 31 18:34:07 client
> rpc.statd[455]: recv_rply: [127.0.0.1] RPC status 3 Jul 31
> 18:34:13 client kernel: svc: unknown procedure (24) Jul 31
> 18:34:13 client rpc.statd[455]: recv_rply: [127.0.0.1] RPC
> status 3 Jul 31 18:34:19 client rpc.statd[455]: Can't
> callback client (100021,1), giving up.

> * I can no lock the file on client2, even if the client1 still thinks
> the file is locked.

> Is this a bug?

The NLM lock reclaiming code in the stock 2.4.x kernel is incomplete. Please apply the patch on

http://www.fys.uio.no/~trondmy/src/2.4.7/linux-2.4.7-reclaim.dif

Cheers,
Trond