You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2003/06/04 02:48:22 UTC

DO NOT REPLY [Bug 20462] New: - stopping or restarting Apache 2.0.46 under Windows causes a crash if a module logs in its cleanup routines

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20462>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20462

stopping or restarting Apache 2.0.46 under Windows causes a crash if a module logs in its cleanup routines

           Summary: stopping or restarting Apache 2.0.46 under Windows
                    causes a crash if a module logs in its cleanup routines
           Product: Apache httpd-2.0
           Version: 2.0.46
          Platform: PC
        OS/Version: Other
            Status: NEW
          Severity: Major
          Priority: Other
         Component: All
        AssignedTo: bugs@httpd.apache.org
        ReportedBy: schemers@stanford.edu


My setup:

Windows XP, Service Pack 1
Apache 2.0.46 compiled with VS 7.1 (May 2003 developer CD install)
mod_ssl with openssl also compiled with VS 7.1

When running Apache from the command line or as a service, it consistently will
crash upon restart or stopping. In tracking this down with the debug, the crash
appears to happen when a module is cleaning up data in a pool cleanup handler,
most typically when logging debug message.

To reproduce:

build 2.0.46 with mod_ssl
change "LogLevel" in httpd.conf to "debug", so SSL spews a bunch of messages
(including during module shutdown)
start the server
connect a few times (might not even be needed)
stop the server

I've pretty much gotten 100% success rate with it crashing on stops/restarts. It
seems to be related to the cleanup handlers using something that has been freed
already. For example, the last crash I got I set a breakpoint in
main.c:destroy_and_exit_process so I could trace from there. It calls
apr_pool_destroy(process->pool), which then starts destroying child-pools.

The first child-pool it destroys is the "plog" pool, which has a pool cleanup
handler for the error_log file, so that file handler gets closed. Later on,
another pool cleanup handler invokes a handler for mod_ssl, and that module does
some ap_log_error calls, but that fails because the error_log file handler is no
longer valid.

The strange thing is is that sometimes ap_log_error is getting called because
something else failed, like ssl_mutex_on(s) will fail because the global SSL
mutex seems to have been freeed already, and its trying to log an error.

This seems to be some sort of pool-ordering problem, and I'm not sure if its
strictly a mod_ssl issue, a windows issue, or a core server issue with the way
pools getting cleaned up.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org