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() >
