mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* NFS stop/start problems (related to datagram shutdown bug?)
@ 2001-02-05 22:35 Byron Stanoszek
  2001-02-05 22:42 ` Alan Cox
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Byron Stanoszek @ 2001-02-05 22:35 UTC (permalink / raw)
  To: linux-kernel

Seems recently, on both redhat 6.1 and 7.0 using kernel 2.4.1-ac3, I
ran into this problem:

Stopping NFS says the following in the kernel logs:

nfsd: terminating on signal 9
nfsd: terminating on signal 9
nfsd: terminating on signal 9
nfsd: terminating on signal 9
nfsd: terminating on signal 9
nfsd: terminating on signal 9
nfsd: terminating on signal 9
nfsd: terminating on signal 9
svc: server socket destroy delayed

And restarting NFS has the following error message:

root:~> /etc/rc.d/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon: nfssvc: Address already in use
                                                           [FAILED]

>From that moment forward, the NFS server is completely broken until the system
is rebooted, and other machines respond during a 'mount' by saying,

nfs: server xxx not responding, still trying

When I tried this, the remote computer had unmounted this NFS-served partition
prior to shutting NFS down with '/etc/rc.d/init.d/nfs stop'. I was wondering if
this could be related to that datagram shutdown bug, and maybe if there's a
quick solution in the meantime to kill the socket so that I can restart NFS
without rebooting.

Thanks,
 Byron

-- 
Byron Stanoszek                         Ph: (330) 644-3059
Systems Programmer                      Fax: (330) 644-8110
Commercial Timesharing Inc.             Email: byron@comtime.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: NFS stop/start problems (related to datagram shutdown bug?)
  2001-02-05 22:35 NFS stop/start problems (related to datagram shutdown bug?) Byron Stanoszek
@ 2001-02-05 22:42 ` Alan Cox
  2001-02-05 22:47   ` Byron Stanoszek
  2001-02-05 23:57 ` Neil Brown
  2001-02-06  9:27 ` Trond Myklebust
  2 siblings, 1 reply; 8+ messages in thread
From: Alan Cox @ 2001-02-05 22:42 UTC (permalink / raw)
  To: Byron Stanoszek; +Cc: linux-kernel

> Seems recently, on both redhat 6.1 and 7.0 using kernel 2.4.1-ac3, I
> ran into this problem:

Ok seen this in older 2.2 but not 2.4

> nfsd: terminating on signal 9
> svc: server socket destroy delayed
> 
> And restarting NFS has the following error message:
> Starting NFS mountd:                                       [  OK  ]
> Starting NFS daemon: nfssvc: Address already in use
>                                                            [FAILED]

A socket got stuck. Thats preventing you restarting it. The bug is whatever
leak caused the svc: server socket destroy delayed case. 

Just for reference what network card ?

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: NFS stop/start problems (related to datagram shutdown bug?)
  2001-02-05 22:42 ` Alan Cox
@ 2001-02-05 22:47   ` Byron Stanoszek
  0 siblings, 0 replies; 8+ messages in thread
From: Byron Stanoszek @ 2001-02-05 22:47 UTC (permalink / raw)
  To: Alan Cox; +Cc: linux-kernel

On Mon, 5 Feb 2001, Alan Cox wrote:

> > Seems recently, on both redhat 6.1 and 7.0 using kernel 2.4.1-ac3, I
> > ran into this problem:
> 
> Ok seen this in older 2.2 but not 2.4
> 
> > nfsd: terminating on signal 9
> > svc: server socket destroy delayed
> > 
> > And restarting NFS has the following error message:
> > Starting NFS mountd:                                       [  OK  ]
> > Starting NFS daemon: nfssvc: Address already in use
> >                                                            [FAILED]
> 
> A socket got stuck. Thats preventing you restarting it. The bug is whatever
> leak caused the svc: server socket destroy delayed case. 
> 
> Just for reference what network card ?

Both machines had a 3c905b-tx-nm card in them.

3c59x.c:LK1.1.12 06 Jan 2000  Donald Becker and others.
http://www.scyld.com/network/vortex.html $Revision: 1.102.2.46 $
See Documentation/networking/vortex.txt
eth0: 3Com PCI 3c905B Cyclone 100baseTx at 0x6100,  00:50:da:cd:c8:b9, IRQ 11
  product code 'XC' rev 00.13 date 12-29-99
  8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface.
  MII transceiver found at address 24, status 786d.
  Enabling bus-master transmits and whole-frame receives.

-Byron

-- 
Byron Stanoszek                         Ph: (330) 644-3059
Systems Programmer                      Fax: (330) 644-8110
Commercial Timesharing Inc.             Email: byron@comtime.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: NFS stop/start problems (related to datagram shutdown bug?)
  2001-02-05 22:35 NFS stop/start problems (related to datagram shutdown bug?) Byron Stanoszek
  2001-02-05 22:42 ` Alan Cox
@ 2001-02-05 23:57 ` Neil Brown
  2001-02-06  0:43   ` Byron Stanoszek
  2001-02-06  9:27 ` Trond Myklebust
  2 siblings, 1 reply; 8+ messages in thread
From: Neil Brown @ 2001-02-05 23:57 UTC (permalink / raw)
  To: Byron Stanoszek; +Cc: linux-kernel, Trond Myklebust

On Monday February 5, gandalf@winds.org wrote:
> Seems recently, on both redhat 6.1 and 7.0 using kernel 2.4.1-ac3, I
> ran into this problem:
> 
> Stopping NFS says the following in the kernel logs:
> 
> nfsd: terminating on signal 9
> nfsd: terminating on signal 9
> nfsd: terminating on signal 9
> nfsd: terminating on signal 9
> nfsd: terminating on signal 9
> nfsd: terminating on signal 9
> nfsd: terminating on signal 9
> nfsd: terminating on signal 9
> svc: server socket destroy delayed
> 
> And restarting NFS has the following error message:
> 
> root:~> /etc/rc.d/init.d/nfs start
> Starting NFS services:                                     [  OK  ]
> Starting NFS quotas:                                       [  OK  ]
> Starting NFS mountd:                                       [  OK  ]
> Starting NFS daemon: nfssvc: Address already in use
>                                                            [FAILED]

How repeatable is this?  Is the server SMP?

There does seem to be a possible problem with sk_inuse not being
updated atomically, so a race between an increment and a decrement
could lose one of them.
svc_sock_release seems to often be called with no more protection than
the BKL, and it decrements sk_inuse.

svc_sock_enqueue, on the other hand increments sk_inuse, and is
protected by sv_lock, but not, I think, by the BKL, as it is called by
a networking layer callback.  So there might be a possibility for a
race here.

The attached patch might fix it, so if you are having reproducable
problems, it might be worth applying this patch.

Trond: any comments?

NeilBrown

[ a better fix would be to make sk_inuse atomic_t ]

--- net/sunrpc/svcsock.c	2001/02/05 23:45:54	1.1
+++ net/sunrpc/svcsock.c	2001/02/05 23:48:12
@@ -211,16 +211,22 @@
 svc_sock_release(struct svc_rqst *rqstp)
 {
 	struct svc_sock	*svsk = rqstp->rq_sock;
+	struct svc_serv	*serv = svsk->sk_server;
 
 	if (!svsk)
 		return;
 	svc_release_skb(rqstp);
 	rqstp->rq_sock = NULL;
+
+	spin_lock_bh(&serv->sv_lock);
 	if (!--(svsk->sk_inuse) && svsk->sk_dead) {
+		spin_unlock_bh(&serv->sv_lock);
 		dprintk("svc: releasing dead socket\n");
 		sock_release(svsk->sk_sock);
 		kfree(svsk);
 	}
+	else
+		spin_unlock_bh(&serv->sv_lock);
 }
 
 /*
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: NFS stop/start problems (related to datagram shutdown bug?)
  2001-02-05 23:57 ` Neil Brown
@ 2001-02-06  0:43   ` Byron Stanoszek
  2001-02-06  1:18     ` Neil Brown
  0 siblings, 1 reply; 8+ messages in thread
From: Byron Stanoszek @ 2001-02-06  0:43 UTC (permalink / raw)
  To: Neil Brown; +Cc: linux-kernel, Trond Myklebust

On Tue, 6 Feb 2001, Neil Brown wrote:

> How repeatable is this?  Is the server SMP?

I've tested this on two UP Athlons and 2 SMP Pentium 3's and the same problem
occurred. I have not tested it more than once on the same system (I left the
NFS servers untouched after the reboot).

The Athlon systems running NFS were 2.4.1-ac3 and the Pentiums were running
2.2.19-pre7. All computers exporting the FS had one directory mounted at least
once.

In one case, only 1 directory was mounted once and then unmounted before
shutting off the NFS server. When I realized I forgot to copy a directory over,
I went to restart NFS on the server and found out I was unable to. Probably
irrelevant, but this had been after transferring 7 gigs of data over 100 Mbps.

I still have the 'broken' server running, so if you would like me to run a
command or two on it I can show you the results.

> The attached patch might fix it, so if you are having reproducable
> problems, it might be worth applying this patch.

I can try it tomorrow and see if it fixes the problem, but since this problem
also occurred on a UP, using spin locks probably will not correct it. Perhaps
it's something else.

> [patch snipped]

 -Byron

-- 
Byron Stanoszek                         Ph: (330) 644-3059
Systems Programmer                      Fax: (330) 644-8110
Commercial Timesharing Inc.             Email: byron@comtime.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: NFS stop/start problems (related to datagram shutdown bug?)
  2001-02-06  0:43   ` Byron Stanoszek
@ 2001-02-06  1:18     ` Neil Brown
  0 siblings, 0 replies; 8+ messages in thread
From: Neil Brown @ 2001-02-06  1:18 UTC (permalink / raw)
  To: Byron Stanoszek; +Cc: linux-kernel, Trond Myklebust

On Monday February 5, gandalf@winds.org wrote:
> On Tue, 6 Feb 2001, Neil Brown wrote:
> 
> > How repeatable is this?  Is the server SMP?
> 
> I've tested this on two UP Athlons and 2 SMP Pentium 3's and the same problem
> occurred. I have not tested it more than once on the same system (I left the
> NFS servers untouched after the reboot).
> 
> The Athlon systems running NFS were 2.4.1-ac3 and the Pentiums were running
> 2.2.19-pre7. All computers exporting the FS had one directory mounted at least
> once.
> 
> In one case, only 1 directory was mounted once and then unmounted before
> shutting off the NFS server. When I realized I forgot to copy a directory over,
> I went to restart NFS on the server and found out I was unable to. Probably
> irrelevant, but this had been after transferring 7 gigs of data over 100 Mbps.
> 
> I still have the 'broken' server running, so if you would like me to run a
> command or two on it I can show you the results.

I don't think that there is much useful that I could look at, thanks.

> 
> > The attached patch might fix it, so if you are having reproducable
> > problems, it might be worth applying this patch.
> 
> I can try it tomorrow and see if it fixes the problem, but since this problem
> also occurred on a UP, using spin locks probably will not correct it. Perhaps
> it's something else.

On second thoughts, this doesn't need to be SMP related.  I don't know
much about "bottom halves" but I gather that they get run after an
interrupt has been handled and interrupts have been re-enabled, but
before the original process is rescheduled.  If this is the case, then
the "_bh" part of the "spin_lock_bh" (which does a local_bh_disable)
could be the bit that is important on a UP system.

NeilBrown


> 
> > [patch snipped]
> 
>  -Byron
> 
> -- 
> Byron Stanoszek                         Ph: (330) 644-3059
> Systems Programmer                      Fax: (330) 644-8110
> Commercial Timesharing Inc.             Email: byron@comtime.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: NFS stop/start problems (related to datagram shutdown bug?)
  2001-02-05 22:35 NFS stop/start problems (related to datagram shutdown bug?) Byron Stanoszek
  2001-02-05 22:42 ` Alan Cox
  2001-02-05 23:57 ` Neil Brown
@ 2001-02-06  9:27 ` Trond Myklebust
  2 siblings, 0 replies; 8+ messages in thread
From: Trond Myklebust @ 2001-02-06  9:27 UTC (permalink / raw)
  To: Neil Brown; +Cc: Byron Stanoszek, linux-kernel

>>>>> " " == Neil Brown <neilb@cse.unsw.edu.au> writes:

     > The attached patch might fix it, so if you are having
     > reproducable problems, it might be worth applying this patch.

     > Trond: any comments?


     > +
     > + spin_lock_bh(&serv->sv_lock);
     >  	if (!--(svsk->sk_inuse) && svsk->sk_dead) {
     > + spin_unlock_bh(&serv->sv_lock);
     >  		dprintk("svc: releasing dead socket\n");
     >  		sock_release(svsk->sk_sock);
     >  		kfree(svsk);
     >  	}
     > + else
     > + spin_unlock_bh(&serv->sv_lock);
     >  }
 
Looks correct, but there's a similar problem in svc_delete_socket()
(see the setting of sk_dead, and subsequent test for sk_inuse).

Cheers,
  Trond
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: NFS stop/start problems (related to datagram shutdown bug?)
@ 2001-02-06 14:33 Byron Stanoszek
  0 siblings, 0 replies; 8+ messages in thread
From: Byron Stanoszek @ 2001-02-06 14:33 UTC (permalink / raw)
  To: neilb; +Cc: linux-kernel

> There does seem to be a possible problem with sk_inuse not being
> updated atomically, so a race between an increment and a decrement
> could lose one of them.
> svc_sock_release seems to often be called with no more protection than
> the BKL, and it decrements sk_inuse.
>
> svc_sock_enqueue, on the other hand increments sk_inuse, and is
> protected by sv_lock, but not, I think, by the BKL, as it is called by
> a networking layer callback. So there might be a possibility for a
> race here.
>
> The attached patch might fix it, so if you are having reproducable
> problems, it might be worth applying this patch.
>
> NeilBrown

I applied the patch and the problem seems to have gone away, where it was
fairly reproducable beforehand. It waits a little longer (about 4 seconds)
during the NFS daemon shutdown before [  OK  ] pops up, but it could be my
imagination because I was doing it on the 166 and I was used to the 866's.

But what matters is that I can stop and restart NFS just fine now whereas
before I couldn't. Thanks for the patch.

 -Byron

-- 
Byron Stanoszek                         Ph: (330) 644-3059
Systems Programmer                      Fax: (330) 644-8110
Commercial Timesharing Inc.             Email: byron@comtime.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2001-02-06 14:35 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-02-05 22:35 NFS stop/start problems (related to datagram shutdown bug?) Byron Stanoszek
2001-02-05 22:42 ` Alan Cox
2001-02-05 22:47   ` Byron Stanoszek
2001-02-05 23:57 ` Neil Brown
2001-02-06  0:43   ` Byron Stanoszek
2001-02-06  1:18     ` Neil Brown
2001-02-06  9:27 ` Trond Myklebust
2001-02-06 14:33 Byron Stanoszek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®