Bug 124740
Summary: | xinetd can't start up server after server dies | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 3 | Reporter: | Linda Lee <linda.lee> | ||||||||
Component: | xinetd | Assignee: | Jay Fenlason <fenlason> | ||||||||
Status: | CLOSED NOTABUG | QA Contact: | |||||||||
Severity: | high | Docs Contact: | |||||||||
Priority: | medium | ||||||||||
Version: | 3.0 | CC: | jfeeney, tao | ||||||||
Target Milestone: | --- | ||||||||||
Target Release: | --- | ||||||||||
Hardware: | i386 | ||||||||||
OS: | Linux | ||||||||||
Whiteboard: | |||||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||||
Doc Text: | Story Points: | --- | |||||||||
Clone Of: | Environment: | ||||||||||
Last Closed: | 2004-06-25 03:16:06 UTC | Type: | --- | ||||||||
Regression: | --- | Mount Type: | --- | ||||||||
Documentation: | --- | CRM: | |||||||||
Verified Versions: | Category: | --- | |||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||
Embargoed: | |||||||||||
Attachments: |
|
Description
Linda Lee
2004-05-28 23:54:11 UTC
Created attachment 100690 [details]
server
Created attachment 100691 [details]
client
Linda, could you upload the source files of the server and client, in place of the binaries you uploaded now? Created attachment 100798 [details]
Tar file contains sources for client/server.
Do "tar xvf toto.tar" to retrieve files.
I have attached sources in the attachment. To begin with, I did "rpcgen -a toto.x". What happens if you change "wait = no" to "wait = yes" in the toto server config? My test servers, which use "wait = yes" do not show this problem. I changed "wait = yes" in the toto_server config file and the result is the same as "wait = no". The first time I ran toto_client and got "call failed: RPC: Timed out". The toto_client call was successful in the subsequent runs. Then, pkill toto_server and ran the client again. And, I got "RPC: Remote system error - Connection refused" and I didn't see the toto_server was up. BTW, did you get "RPC: Timed out" at the first run for your test server? You could also test my toto_server and toto_client as they are in the attachment. I don't know why yours works for "wait = yes" but not mine. Thanks!! I tested the "wait = yes" again for toto_server/toto_client. It worked now. The scenarios that I tested are like: 1. The first client request still got TIMED OUT (it is still a bug). 2. The subsequent client requests are OK. 3. Then, pkill toto_server, do the "ps" and found out that toto_server is automatically started. 4. Now, even the first and subsequent client requests are OK. According to the man page of xinetd.conf, the "wait" should set to no for multithreaded tcp rpc service. Apparently, it does not behave that way. Note: also tested with xinetd-2.3.12-6.3E patch. I suspect this bug has the same cause as #125485. If the rpc server misbehaves, and registers itself with portmap (overwriting xinetd's registration), after the server exits, xinetd is unaware that it's registration with portmap hsa been overwritten, and no client requests will ever be sent to it. Since no client request is sent to xinetd, it does not restart the server. (Actually, what I see is that the original client request (the one that timed out) is never read (because the toto_server opened its own socket), so xinetd sees the unread request and immediately starts a new toto_server when the initial one is killed. The second toto_server also ignores the original request. . . Etc. Reopen this bug if you can replicate it with an rpc server that was correctly written to be called from xinetd. |