[16227] in Athena Bugs

home help back first fref pref prev next nref lref last post

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.]

home help back first fref pref prev next nref lref last post