I'm pretty sure I have identified the problem on Windows.  The blow up happens 
when we are
trying to obtain a mutex that has been freed. This happens on the very last 
pool to be
cleaned up (the "global_pool"). In apr_pool_destroy, we call the pool cleanups 
(one of
which is for the mutex in the allocator) then call apr_allocator_free() which 
proceeds to
attempt to acquire the mutex that was just freed.

Will post a patch later on unless someone beats me to it.

Bill

----- Original Message -----
From: "Bill Stoddard" <[EMAIL PROTECTED]>
To: "APR Development List" <[email protected]>
Sent: Monday, March 18, 2002 11:26 AM
Subject: Win32 segfault in allocator code


> I get this when I shutdown Apache 2 in Windows... (net stop apache2). I have 
> not had
time
> to spend debugging this one...
>
> NTDLL! 77f83941()
> NTDLL! 77f838c6()
> apr_allocator_free(apr_allocator_t * 0x00512768, apr_memnode_t * 0x00513fc8) 
> line 322
> apr_pool_destroy(apr_pool_t * 0x00513fd8) line 687
> apr_pool_terminate() line 524
> apr_terminate() line 237
> destroy_and_exit_process(process_rec * 0x005180d8, int 0) line 242
> main(int 4, const char * const * 0x005126f0) line 621 + 11 bytes
> mainCRTStartup() line 338 + 17 bytes
> KERNEL32! 77e8d326()
>

Reply via email to