The following reply was made to PR os-solaris/1190; it has been noted by GNATS.

From: Dean Gaudet <[EMAIL PROTECTED]>
To: Eugene Crosser <[EMAIL PROTECTED]>
Cc: [EMAIL PROTECTED]
Subject: Re: os-solaris/1190: server processes in keepalive state do not die 
after keepalive-timeout
Date: Wed, 17 Jun 1998 23:36:49 -0700 (PDT)

 Maybe you could try this patch.  It looks like there's a small race
 condition with keepalive timeouts... but I don't understand why we don't
 see it more frequently.
 
 BTW, please set "LogLevel debug" in your httpd.conf and tell me if you get
 any of those "possible nested timer" warnings. 
 
 Thanks
 Dean
 
 Index: main/http_main.c
 ===================================================================
 RCS file: /export/home/cvs/apache-1.3/src/main/http_main.c,v
 retrieving revision 1.365
 diff -u -r1.365 http_main.c
 --- http_main.c        1998/06/16 03:37:27     1.365
 +++ http_main.c        1998/06/18 06:18:53
 @@ -975,6 +975,7 @@
      }
      else {                    /* abort the connection */
        ap_bsetflag(current_conn->client, B_EOUT, 1);
 +      ap_bclose(current_conn->client);
        current_conn->aborted = 1;
      }
  }
 @@ -1045,9 +1046,11 @@
        alarm_expiry_time = time(NULL) + x;
      }
  #else
 -    if (x) {
 -      alarm_fn = fn;
 +    if (alarm_fn && x && fn != alarm_fn) {
 +      ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_DEBUG, NULL,
 +          "ap_set_callback_and_alarm: possible nested timer!");
      }
 +    alarm_fn = fn;
  #ifndef OPTIMIZE_TIMEOUTS
      old = alarm(x);
  #else
 Index: main/rfc1413.c
 ===================================================================
 RCS file: /export/home/cvs/apache-1.3/src/main/rfc1413.c,v
 retrieving revision 1.24
 diff -u -r1.24 rfc1413.c
 --- rfc1413.c  1998/05/18 21:56:11     1.24
 +++ rfc1413.c  1998/06/18 06:18:53
 @@ -229,9 +229,8 @@
  
        if (get_rfc1413(sock, &conn->local_addr, &conn->remote_addr, user, srv) 
>= 0)
            result = user;
 -
 -      ap_set_callback_and_alarm(NULL, 0);
      }
 +    ap_set_callback_and_alarm(NULL, 0);
      ap_pclosesocket(conn->pool, sock);
      conn->remote_logname = result;
  
 
 

Reply via email to