Return-Path: Delivered-To: apmail-apr-dev-archive@apr.apache.org Received: (qmail 68113 invoked by uid 500); 30 Dec 2002 06:03:49 -0000 Mailing-List: contact dev-help@apr.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Delivered-To: mailing list dev@apr.apache.org Delivered-To: moderator for dev@apr.apache.org Received: (qmail 7791 invoked from network); 30 Dec 2002 03:06:44 -0000 Message-ID: <3E0FB910.2050508@codefaktor.de> Date: Mon, 30 Dec 2002 04:10:08 +0100 From: Erik Abele Organization: codefaktor // advanced web technologies User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021130 X-Accept-Language: de, en MIME-Version: 1.0 To: dev@httpd.apache.org, dev@apr.apache.org Subject: Segfault in 2.1 head on linux X-Enigmail-Version: 0.71.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N After building the current Apache 2.1 & APR HEAD I hit a segfault by starting the server. A quick gdb session shows problems in apr_file_open at apr/file_io/unix/open.c:149 ----------------------------------------------------------------------- (gdb) run -X Starting program: /usr/sbin/httpd -X [New Thread 1024 (LWP 21251)] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1024 (LWP 21251)] 0x401ef78d in apr_file_open (new=0xbffff59c, fname=0x8147078 "/etc/httpd/conf/httpd.conf", flag=129, perm=4095, pool=0x80ff8d0) at open.c:149 149 if ((flag & APR_BUFFERED) && ((*new)->flags & APR_XTHREAD)) { (gdb) bt #0 0x401ef78d in apr_file_open (new=0xbffff59c, fname=0x8147078 "/etc/httpd/conf/httpd.conf", flag=129, perm=4095, pool=0x80ff8d0) at open.c:149 #1 0x080b71d8 in ap_pcfg_openfile (ret_cfg=0xbffff638, p=0x80ff8d0, name=0x8147078 "/etc/httpd/conf/httpd.conf") at util.c:910 #2 0x080b2e52 in ap_process_resource_config (s=0x8106320, fname=0x8147078 "/etc/httpd/conf/httpd.conf", conftree=0x80f2354, p=0x80ff8d0, ptemp=0x81439e0) at config.c:1545 #3 0x080b352f in ap_read_config (process=0x80fd948, ptemp=0x81439e0, filename=0x80e2abb "/etc/httpd/conf/httpd.conf", conftree=0x80f2354) at config.c:1832 #4 0x080b5130 in main (argc=2, argv=0xbffff8e4) at main.c:565 #5 0x42017589 in __libc_start_main () from /lib/i686/libc.so.6 (gdb) print (*new)->flags Cannot access memory at address 0xc (gdb) print (*new) $2 = (apr_file_t *) 0x0 ----------------------------------------------------------------------- seems that this has something to do with the latest changes in apr/file_io/unix/open.c... the following patch works fine for me. --- /home/cvs/apr/file_io/unix/open.c Mon Dec 30 02:58:01 2002 +++ open.c Mon Dec 30 03:59:26 2002 @@ -146,7 +146,7 @@ #endif #if APR_HAS_THREADS - if ((flag & APR_BUFFERED) && ((*new)->flags & APR_XTHREAD)) { + if ((flag & APR_BUFFERED) && (flag & APR_XTHREAD)) { rv = apr_thread_mutex_create(&thlock, APR_THREAD_MUTEX_DEFAULT, pool); if (rv) { also does reverting open.c to rev. 1.101. cheers, erik