Return-Path: Delivered-To: apmail-httpd-bugs-archive@httpd.apache.org Received: (qmail 22184 invoked by uid 500); 24 Dec 2002 18:18:51 -0000 Mailing-List: contact bugs-help@httpd.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Reply-To: "Apache HTTPD Bugs Notification List" Delivered-To: mailing list bugs@httpd.apache.org Received: (qmail 22171 invoked from network); 24 Dec 2002 18:18:51 -0000 Date: 24 Dec 2002 18:20:06 -0000 Message-ID: <20021224182006.26083.qmail@nagoya.betaversion.org> From: bugzilla@apache.org To: bugs@httpd.apache.org Cc: Subject: DO NOT REPLY [Bug 15655] New: - mod_perl 1.99_07 "make test" causes Apache2 threadpool mpm core dump X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT . 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=15655 mod_perl 1.99_07 "make test" causes Apache2 threadpool mpm core dump Summary: mod_perl 1.99_07 "make test" causes Apache2 threadpool mpm core dump Product: APR Version: HEAD Platform: Other OS/Version: Linux Status: NEW Severity: Critical Priority: Other Component: APR AssignedTo: bugs@httpd.apache.org ReportedBy: karlheg@hegbloom.net When I run "make test" after building mod_perl 1.99_07, Apache2 mpm threadpool dumps core. I rebuilt Apache2 from the Debian sources, with "-g -O0" and not stripped (patch to support DEB_BUILD_OPTIONS for "debug,nostrip" submitted against Debian Apache2), then ran "export LD_LIBRARY_PATH=/usr/lib/debug" to get the debug libc and libpthread involved. I then removed the core file, and ran "make test" again. I found that it's probably trying to free memory that has already been freed. Here's the output of "where full": (gdb) where full #0 _int_free (av=0x40347480, mem=0x9e5f248) at malloc.c:4150 p = (struct malloc_chunk *) 0xa01a668 size = 0x9e5f248 fb = (struct malloc_chunk **) 0x9e5f248 nextchunk = (struct malloc_chunk *) 0x13e798b0 nextsize = 0x40011850 prevsize = 0x9e5f248 bck = (struct malloc_chunk *) 0x9e5f248 fwd = (struct malloc_chunk *) 0x0 #1 0x402a1e6a in __libc_free (mem=0xa01a670) at malloc.c:3344 ar_ptr = (struct malloc_state *) 0x40347480 p = (struct malloc_chunk *) 0x9e5f248 hook = (void (*)(void *, const void *)) 0x9e5f248 #2 0x4017dd3b in apr_allocator_destroy (allocator=0xa064120) at /usr/local/src/debian/apache2/apache2-2.0.43/build-tree/apache2/srclib/apr/memory/unix/apr_pools.c:138 index = 0x0 node = (apr_memnode_t *) 0xa01a670 ref = (apr_memnode_t **) 0xa064134 #3 0x40128dd4 in alloc_cleanup (data=0xa18eb88) at /usr/local/src/debian/apache2/apache2-2.0.43/build-tree/apache2/srclib/apr-util/buckets/apr_buckets_alloc.c:86 list = (apr_bucket_alloc_t *) 0xa18eb88 ---Type to continue, or q to quit--- allocator = (apr_allocator_t *) 0xa064120 #4 0x4017eecb in apr_pool_cleanup_run (p=0x8d2fe08, data=0xa18eb88, cleanup_fn=0x40128d90 ) at /usr/local/src/debian/apache2/apache2-2.0.43/build-tree/apache2/srclib/apr/memory/unix/apr_pools.c:1955 No locals. #5 0x40128ec6 in apr_bucket_alloc_destroy (list=0xa18eb88) at /usr/local/src/debian/apache2/apache2-2.0.43/build-tree/apache2/srclib/apr-util/buckets/apr_buckets_alloc.c:113 No locals. #6 0x0807f0e1 in worker_thread (thd=0x8d27fb0, dummy=0x9c755f0) at /usr/local/src/debian/apache2/apache2-2.0.43/build-tree/apache2/server/mpm/experimental/threadpool/threadpool.c:1099 ti = (proc_info *) 0x9c755f0 process_slot = 0x0 thread_slot = 0x1 bucket_alloc = (apr_bucket_alloc_t *) 0xa18eb88 tpool = (apr_pool_t *) 0x8d2fe08 ptrans = (apr_pool_t *) 0xa18cb80 allocator = (apr_allocator_t *) 0xa04a710 rv = 0x0 wakeup = (worker_wakeup_info *) 0x8d2fe50 #7 0x4017826c in dummy_worker (opaque=0x8d27fb0) ---Type to continue, or q to quit--- at /usr/local/src/debian/apache2/apache2-2.0.43/build-tree/apache2/srclib/apr/threadproc/unix/thread.c:127 thread = (apr_thread_t *) 0x8d27fb0 #8 0x401ee06f in pthread_start_thread (arg=0xbf1ffbe0) at manager.c:300 self = (struct _pthread_descr_struct *) 0xbf1ffbe0 request = {req_thread = 0x0, req_kind = REQ_CREATE, req_args = { create = {attr = 0x0, fn = 0, arg = 0x0, mask = {__val = { 0x0 }}}, free = {thread_id = 0x0}, exit = { code = 0x0}, post = 0x0, for_each = {fn = 0, arg = 0x0}}} outcome = (void *) 0x9e5f248 (gdb) I hope that's not horribly wrapped by this text entry box! I will save the core file, so let me know if you need any more information. Source level debugging in XEmacs is fully operational, but I am not familiar with the apache internals at all. I can let you log in if you need to poke around, just email me or /msg me in irc.openprojects.net, #orlug, karlheg. ldd =apache2 libz.so.1 => /lib/libz.so.1 (0x4002d000) libssl.so.0.9.6 => /usr/lib/i686/libssl.so.0.9.6 (0x4003c000) libcrypto.so.0.9.6 => /usr/lib/i686/libcrypto.so.0.9.6 (0x40069000) libaprutil.so.0 => /usr/lib/libaprutil.so.0 (0x40121000) libgdbm.so.1 => /usr/lib/libgdbm.so.1 (0x4013a000) libexpat.so.1 => /usr/lib/libexpat.so.1 (0x40140000) libapr.so.0 => /usr/lib/libapr.so.0 (0x40161000) libm.so.6 => /usr/lib/debug/libm.so.6 (0x40184000) libcrypt.so.1 => /usr/lib/debug/libcrypt.so.1 (0x401a5000) libnsl.so.1 => /usr/lib/debug/libnsl.so.1 (0x401d2000) libdl.so.2 => /usr/lib/debug/libdl.so.2 (0x401e5000) libpthread.so.0 => /usr/lib/debug/libpthread.so.0 (0x401e8000) libc.so.6 => /usr/lib/debug/libc.so.6 (0x40238000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) The libapr is built from Debian apache2 2.0.43-1 source, modified only to provide -g -O0 -pipe in CFLAGS. The exact configuration is stored on my machine if you need more information. I will keep it for several weeks, since this is the holiday season and I expect many of you are taking some time off. --------------------------------------------------------------------- To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org For additional commands, e-mail: bugs-help@httpd.apache.org