You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Randy Terbush <ra...@zyzzyva.com> on 1997/01/15 22:41:05 UTC
Re: lingering_close() one problem solved?
As you hopefully saw in followup mail, this was a false alarm.
However, it did seem to reduce the errors significantly.
Added some debug code....
I'm printing the fd# being closed in timeout(), the fd# being
shutdown() in lingering_close, and the fd# where lingering_close()
is being called in child_main(). The file descriptor number is
*always* 157.
[Wed Jan 15 15:25:25 1997] timeout: bclosing[157]
[Wed Jan 15 15:25:25 1997] timeout: should be[157]
[Wed Jan 15 15:25:43 1997] timeout: bclosing[157]
[Wed Jan 15 15:25:43 1997] timeout: should be[157]
[Wed Jan 15 15:25:45 1997] timeout: bclosing[157]
[Wed Jan 15 15:25:45 1997] timeout: should be[157]
[Wed Jan 15 15:26:06 1997] timeout: bclosing[157]
[Wed Jan 15 15:26:06 1997] timeout: should be[157]
[Wed Jan 15 15:26:25 1997] timeout: bclosing[157]
[Wed Jan 15 15:26:25 1997] timeout: should be[157]
[Wed Jan 15 15:26:32 1997] timeout: bclosing[157]
[Wed Jan 15 15:26:32 1997] timeout: should be[157]
[Wed Jan 15 15:26:32 1997] timeout: bclosing[157]
[Wed Jan 15 15:26:32 1997] timeout: should be[157]
[Wed Jan 15 15:26:35 1997] timeout: bclosing[157]
[Wed Jan 15 15:26:35 1997] timeout: should be[157]
[Wed Jan 15 15:27:10 1997] timeout: bclosing[157]
[Wed Jan 15 15:27:10 1997] timeout: should be[157]
[Wed Jan 15 15:27:24 1997] timeout: bclosing[157]
[Wed Jan 15 15:27:24 1997] timeout: should be[157]
[Wed Jan 15 15:27:24 1997] timeout: bclosing[157]
[Wed Jan 15 15:27:24 1997] timeout: should be[157]
[Wed Jan 15 15:27:24 1997] timeout: bclosing[157]
[Wed Jan 15 15:27:24 1997] timeout: should be[157]
[Wed Jan 15 15:27:27 1997] timeout: bclosing[157]
[Wed Jan 15 15:31:10 1997] send lost connection to client pc-052.dordt.edu
[Wed Jan 15 15:31:10 1997] shutdown sd[157]
[Wed Jan 15 15:31:10 1997] shutdown: Invalid argument
[Wed Jan 15 15:31:10 1997] - lingering_close
Also, the warnings above indicate that shutdown is being called
with a valid? file descriptor, yet it returns an error.
It also appears that far and away the majority of clients
that are triggering the lingering_close() are Win16 machines.
> On Wed, 15 Jan 1997, Randy Terbush wrote:
>
> > I've been running the following change for nearly 2 hours now
> > and have not noticed any problems. In fact, I have not logged
> > a single 'shutdown: Invalid argument OR lingering_close'
> > since applying the change.
>
> Interesting. Does the "kill_timeout" need to be applied inside
> the #ifdef NO_LINGCLOSE block too (with an if (r) ) ?
>
> > RCS file: /export/home/cvs/apache/src/http_main.c,v
> > retrieving revision 1.105
> > diff -c -r1.105 http_main.c
> > *** http_main.c 1997/01/10 18:47:36 1.105
> > --- http_main.c 1997/01/15 07:20:14
> > ***************
> > *** 1669,1676 ****
> > #ifdef NO_LINGCLOSE
> > bclose(conn_io); /* just close it */
> > #else
> > ! if (r)
> > lingering_close (conn_io->fd, r->server);
> > else
> > close (conn_io->fd);
> > #endif
> > --- 1669,1678 ----
> > #ifdef NO_LINGCLOSE
> > bclose(conn_io); /* just close it */
> > #else
> > ! if (r) {
> > ! kill_timeout(r);
> > lingering_close (conn_io->fd, r->server);
> > + }
> > else
> > close (conn_io->fd);
> > #endif
>