Date: Sat, 6 Mar 1999 19:24:20 -0600 (CST) From: Kevin Day <toasty@home.dragondata.com> To: wpaul@skynet.ctr.columbia.edu (Bill Paul) Cc: freebsd-bugs@freebsd.org Subject: Re: bin/6234 Message-ID: <199903070124.TAA22313@home.dragondata.com> In-Reply-To: <199903062351.SAA09969@skynet.ctr.columbia.edu> from Bill Paul at "Mar 6, 1999 6:51:15 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
> >
> > Specificing 'ypserv -d' makes ypserv completely unresponsive, and never
> > outputs any debugging... What more info do you want? :)
>
> How about "a lot."
>
> I want to know _PRECISELY_ the steps you took to arrive at this
> conclusion. Now, people never seem to understand just what I mean
> when I ask this. I don't just want hear "Well, I type ypserv -d, and
> it doesn't work." There are other important things besides this
> which can affect the result. I'm not there watching you, so you have
> to be very clear and detailed and _complete_ in your description
> of the problem. I don't want to have to go ten rounds of e-mail
> that starts with "ypserv -d doesn't work" before I get to "oh,
> yes, I did unplug the ethernet cable from the machine just before
> I tried to run ypserv -d; you mean that matters?"
>
> For example, when you run ypserv -d, are you being careful to
> kill any existing ypserv already running on the system? Are you
> aware of the fact that ypserv only prints debug messages when
> a client tries to bind to it and starts interacting with it? If
> a client is bound to an instance of ypserv and you kill ypserv
> to start a new instance, the client takes time before it times
> out the binding to the old instance and starts broadcasting to
> establish a new binding. It's only when that happens that the
> new ypserv in debug mode will start to produce output. But you
> didn't say how long you waited for ypserv to produce any output,
> you didn't say how long you waited for clients to connect or if
> you even tried to force any clients to rebind by killing and re-
> syarting ypbind (or using ypset). All you said is "it doesn't
> work."
>
> What you could also do is investigate farther. It's very easy
> to compile ypserv with -g and then run gdb on it. If you think
> it's not really doing anything, gdb will prove or disprove your
> suspicions beyond any doubt.
>
> -Bill
>
Ok, well, I'm not using NIS anymore, but i set it up again as a test just to
try this.
Running with 'ypserv' alone works fine. the client is able to ypcat, etc...
su-2.02# ypcat -t test
ypcat: no such map test. reason: No such map in server's domain
Running with 'ypserv -d', the client complains that the server isn't
responding. ypcat on the client won't work, displaying something like this:
su-2.02# ypcat -t test
yp_next: clnt_call: RPC: Success
yp_next: clnt_call: RPC: Success
yp_next: clnt_call: RPC: Success
yp_next: clnt_call: RPC: Success
(10 second delays between each line)
It also shows up in rpcinfo, with or without -p....
100004 1 udp 669 ypserv
100004 2 udp 669 ypserv
100004 1 tcp 1010 ypserv
100004 2 tcp 1010 ypserv
root 20945 0.0 0.9 192 544 p4 S+ 7:00PM 0:00.02 ypserv -d
0 20945 20881 6 2 0 192 544 select S+ p4 0:00.02 ypserv -d
It shows it just stuck in 'select', and not doing anything. I get nothing
printed to the screen when I ypcat, nor any other NIS related activity.
A typical exchange when it is working (no -d) (shell1 is the client, home is the server)
19:19:34.739358 shell1.dragondata.com.982 > home.dragondata.com.1004: S 2096808723:2096808723(0) win 16384 <mss 1460> (DF)
19:19:34.739532 home.dragondata.com.1004 > shell1.dragondata.com.982: S 4010056489:4010056489(0) ack 2096808724 win 17520 <mss 1460> (DF)
19:19:34.739582 shell1.dragondata.com.982 > home.dragondata.com.1004: . ack 1 win 17520 (DF)
19:19:34.739716 shell1.dragondata.com.982 > home.dragondata.com.1004: P 1:73(72) ack 1 win 17520 (DF)
19:19:34.742107 home.dragondata.com.1004 > shell1.dragondata.com.982: P 1:45(44) ack 73 win 17520 (DF)
19:19:34.742219 shell1.dragondata.com.982 > home.dragondata.com.1004: F 73:73(0) ack 45 win 17520 (DF)
19:19:34.742345 home.dragondata.com.1004 > shell1.dragondata.com.982: . ack 74 win 17520 (DF)
19:19:34.742479 home.dragondata.com.1004 > shell1.dragondata.com.982: F 45:45(0) ack 74 win 17520 (DF)
19:19:34.742525 shell1.dragondata.com.982 > home.dragondata.com.1004: . ack 46 win 17520 (DF)
With -d:
19:20:15.571450 shell1.dragondata.com.981 > home.dragondata.com.1010: S 2110109802:2110109802(0) win 16384 <mss 1460> (DF)
19:20:15.571615 home.dragondata.com.1010 > shell1.dragondata.com.981: S 4021564131:4021564131(0) ack 2110109803 win 17520 <mss 1460> (DF)
19:20:15.571668 shell1.dragondata.com.981 > home.dragondata.com.1010: . ack 1 win 17520 (DF)
19:20:15.571795 shell1.dragondata.com.981 > home.dragondata.com.1010: P 1:73(72) ack 1 win 17520 (DF)
19:20:15.747224 home.dragondata.com.1010 > shell1.dragondata.com.981: . ack 73 win 17448 (DF)
19:20:25.577589 shell1.dragondata.com.981 > home.dragondata.com.1010: F 73:73(0) ack 1 win 17520 (DF)
19:20:25.577708 home.dragondata.com.1010 > shell1.dragondata.com.981: . ack 74 win 17448 (DF)
19:20:25.578605 shell1.dragondata.com.980 > home.dragondata.com.1010: S 2112266693:2112266693(0) win 16384 <mss 1460> (DF)
19:20:25.578790 home.dragondata.com.1010 > shell1.dragondata.com.980: S 4023644134:4023644134(0) ack 2112266694 win 17520 <mss 1460> (DF)
19:20:25.578837 shell1.dragondata.com.980 > home.dragondata.com.1010: . ack 1 win 17520 (DF)
19:20:25.578915 shell1.dragondata.com.980 > home.dragondata.com.1010: P 1:73(72) ack 1 win 17520 (DF)
19:20:25.747055 home.dragondata.com.1010 > shell1.dragondata.com.980: . ack 73 win 17448 (DF)
19:20:35.588103 shell1.dragondata.com.980 > home.dragondata.com.1010: F 73:73(0) ack 1 win 17520 (DF)
19:20:35.588216 home.dragondata.com.1010 > shell1.dragondata.com.980: . ack 74 win 17448 (DF)
19:20:35.589099 shell1.dragondata.com.979 > home.dragondata.com.1010: S 2114447289:2114447289(0) win 16384 <mss 1460> (DF)
19:20:35.589281 home.dragondata.com.1010 > shell1.dragondata.com.979: S 4026146660:4026146660(0) ack 2114447290 win 17520 <mss 1460> (DF)
19:20:35.589328 shell1.dragondata.com.979 > home.dragondata.com.1010: . ack 1 win 17520 (DF)
19:20:35.589408 shell1.dragondata.com.979 > home.dragondata.com.1010: P 1:73(72) ack 1 win 17520 (DF)
19:20:35.746875 home.dragondata.com.1010 > shell1.dragondata.com.979: . ack 73 win 17448 (DF)
I don't have time tonight to gdb or ktrace this, to see what it's doing, but
I can experiment more on my test network on Monday.
And to answer your questions.... Yes, I made sure to kill the old ypserv. I
waited 15 minutes this time to allow the client to bind to the new instance.
I'm aware that ypserv -d doesn't print anything until a client does
something. I tried killing/restarting ypbind, too.
Kevin
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199903070124.TAA22313>
