[16227] in Athena Bugs
sun 8.1.12: /etc/athena/inetd
daemon@ATHENA.MIT.EDU (Larry Stone)
Tue Aug 25 17:41:54 1998
To: bugs@MIT.EDU
Date: Tue, 25 Aug 1998 17:41:51 EDT
From: Larry Stone <lcs@MIT.EDU>
System name: origen.mit.edu
Type and version: sun4 8.1.12
Display type: n/a
What were you trying to do?
keep an FTP server alive.
What's wrong:
After an apparent attack of many frequent connect's, inetd shut down
the port for a while with the following message -- that's FINE, it's
expected & documented behavior. The BUG is that it never closed the
accept'd descriptor (variable ctrl in the source) before continuing
the loop (see inetd.c, line 334).
First we got some of these:
Aug 25 15:16:37 origen inetd[271]: ftp/tcp server failing (looping), service ter
...then we get:
Aug 25 17:16:02 origen inetd[271]: accept: Too many open files
NOTE: this actually happened on an 8.1 server, but it was inetd.c 1.8
which looks the same in the relevant section as the current source,
so I predict it has the same problem.
What should have happened:
inetd should have closed the ctrl fd after shutting down the socket.
I think adding close(ctrl) before line 334 would do, but leave it to
someone more familiar with the code and, presumably, test procedures..
Please describe any relevant documentation references:
[Please replace this line with your information.]