Return-Path: Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 9165 invoked by uid 500); 21 Oct 2002 05:33:36 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 9137 invoked from network); 21 Oct 2002 05:33:30 -0000 To: dev@httpd.apache.org Date: Mon, 21 Oct 2002 05:33:31 0000 From: "amit athavale" Message-ID: Mime-Version: 1.0 X-Sent-Mail: off Reply-To: amit_athavale@lycos.com X-Mailer: MailCity Service X-Priority: 3 Subject: Re: Prefork MPM Question X-Sender-Ip: 202.54.11.72 Organization: Lycos Mail (http://www.mail.lycos.com:80) Content-Type: text/plain; charset=us-ascii Content-Language: en Content-Transfer-Encoding: 7bit X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N Thanks for the reply. See my inline comments -- On Fri, 18 Oct 2002 13:11:23 gregames wrote: >amit athavale wrote: > >> I am using Apache 2.0 with prefork MPM. There is some external program which adds VirtualHosts to httpd.conf dynamically and send SIGUSR1 to a process with pid = {pid in httpd.pid}. Immediately after this, that external program sends some HTTP request which should resolve to new VirtualHost added. (These are WebDAV requests to create some default resources and set properties) >> >> But unfortunately, these requests go to old processes(before restarting). Is there any way to ensure that these requests go to new processes ? > >There could be a graceful restart bug (we did have one in prefork months ago), >or it might be that the graceful restart notification simply hasn't had time to >propagate to all the child processes. > >I would take a close look at server-status with ExtendedStatus enabled, before >and right after you send the signal. For each child pid that's alive, you >should see either a new generation number in the "Srv" column or a G (gracefully >finishing) in the "M" column. When we had the bug, you would see processes with >the old generation number serving new requests for hours after the graceful >restart was initiated. Will do that and let you know. But I added some loging, so that when request comes PID is printed, and some request shows old PID. Interestingly if I fire "MaxClients" no. of requests these old processes goes away. > >If that looks OK, maybe your external program just needs to sleep for a few >seconds after initiating the graceful restart. This external program sleeps for 20 secs after giving signal. If the server-status looks bad, >which platform are you on and what level of httpd are you running? I am on Solaris 8 and unfortunately using 1st GA release of 2.0 i.e 2.0.35. May be the bug you are refering to was there 2.0.35, is this right ? if so then I need to patch my source with fix. > >Greg > ____________________________________________________________ Get 250 full-color business cards FREE right now! http://businesscards.lycos.com