Subject: bin/18659: ypbind hang
To: None <gnats-bugs@gnats.netbsd.org>
From: None <manu@netbsd.org>
List: netbsd-bugs
Date: 10/14/2002 13:09:14
>Number:         18659
>Category:       bin
>Synopsis:       ypbind hang
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Oct 14 13:10:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Emmanuel Dreyfus
>Release:        NetBSD-1.6
>Organization:
The NetBSD Project
>Environment:
NetBSD mayday 1.6_STABLE NetBSD 1.6_STABLE (SERVER) #0: Wed Oct  2 17:53:50 CEST 2002     manu@melancolie:/usr/src-1.6/sys/arch/i386/compile/SERVER i386
>Description:
After some activity, ypbind enters a buggy mode of operation, where any
query will hang. running 'id root', we get a stalled command, waiting
for ypbind anwser. Running ktrace, we can see that ypbind is contacted, 
but it nerver answer.

The problem is really in ypbind: other ypbinds on other machines still 
work, which means that the server is ok.

The interesting point is that when ypbind is in this state, any new
query will make the previous query answered:
1) I type 'id foo' on terminal A, it hangs
2) I wait for dozen of seconds
3) I type 'id foo' on terminal B, the command on terminal A finishes 
immediatly (with the right answer), and command on terminal B hang

and so on...

>How-To-Repeat:
Make hundred of concurent requests:
while [ 1 ] ; do 
  for i in `awk -F '{print $1}' /etc/passwd`; do (id $i & ) ; done
done

After a while, you get some RPC timeout, yp server not answering, and
when you stop the command, you get the hang ypbind.
>Fix:
None yet
>Release-Note:
>Audit-Trail:
>Unformatted: