From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux 2.4.2-2 i686; en-US; 0.7) Gecko/20010316 Description of problem: When 20 POP clients using "telnet <server></server> 110" and "expect" access to at same time, xinetd can not fork only 18 process. Because select() function in xinetd main_loop() catch the changed status at 110 port, only 18 times. Packet dump by "ethereal" on POP Server is here:(station100 is a POP Server, station67 is a POP Client) 732 1.830000 station64 station100 TCP 32775 > pop3 [SYN] Seq=3399523946 Ack=0 Win=5840 Len=0 733 1.830000 station100 station64 TCP pop3 > 32775 [SYN, ACK] Seq=3802504036 Ack=3399523947 Win=5792 Len=0 ! 750 1.830000 station64 station100 TCP 32775 > pop3 [ACK] Seq=3399523947 Ack=3802504037 Win=5840 Len=0 * 18084 5.430000 station100 station64 TCP pop3 > 32775 [SYN, ACK] Seq=3802504036 Ack=3399523947 Win=5792 Len=0 * 22351 11.430000 station100 station64 TCP pop3 > 32775 [SYN, ACK] Seq=3802504036 Ack=3399523947 Win=5792 Len=0 Response to [SYN,ACK] reached the Link layer. But It seems not to reached the Transport layer. I think packet have been lost in Network layer. Only 20 clients accessed, why packet have been lost? How reproducible: Always Steps to Reproduce: 1.20 POP clients access to POP server at same time.(very critical) 2. 3. Additional info:
Dave: Could you take a look ?
kmori: are you in a position to test a patch ?
I am not in development team, I am in service team. But if you give me a patch, I'll test it.
Created attachment 18732 [details] Proposed patch
Thank you for creating attachment. I could get a patch. I tested this patch, however, kernel had still lost packets.
This problem is caused by xinetd specification. Because listen() backlog value defined by xinetd is low, kernel drop client's requests.