php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #57164 White Pages / Segfaults
Submitted: 2006-07-30 16:03 UTC Modified: 2006-10-05 18:11 UTC
From: michae at mompopmedia dot com Assigned: gopalv (profile)
Status: Closed Package: APC (PECL)
PHP Version: 5.1.4 OS: CentOS release 4.3 (Final)
Private report: No CVE-ID: None
 [2006-07-30 16:03 UTC] michae at mompopmedia dot com
Description:
------------
Hi There,

I am running Apache2.2.2 prefork, and am having pecular problems with (it seems exclusively) pages handling POST data.  On certain occasions, I will get a segfault messsage in the apache logs and the end user gets a white screen:

*** glibc detected *** double free or corruption (!prev): 0x08410550 ***
[Thu Jul 27 20:32:41 2006] [notice] child pid 27803 exit signal Aborted (6)
[Thu Jul 27 20:32:49 2006] [notice] child pid 27804 exit signal Segmentation fault (11)

but most of the time, no segfault was produced in the log.

Removing APC resolved the issue.  I tired to produce a backtrace, but I'm unsure if I did it right:

#0  0x009637a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1  0x00a39c6d in poll () from /lib/tls/libc.so.6
#2  0x003dd114 in apr_wait_for_io_or_timeout (f=0x0, s=0x9cf2998, for_read=1) at support/unix/waitio.c:51
#3  0x003d835c in apr_socket_recv (sock=0x9cf2998, buf=0x9da7278 "\200r?\t", len=0xbfe26984)
    at network_io/unix/sendrecv.c:87
#4  0x005b2458 in socket_bucket_read (a=0x9cf6e30, str=0xbfe26980, len=0xbfe26984, block=APR_BLOCK_READ)
    at buckets/apr_buckets_socket.c:36
#5  0x005b2fdc in apr_brigade_split_line (bbOut=0x9cfdad8, bbIn=0x9cf3010, block=APR_BLOCK_READ, maxbytes=8192)
    at buckets/apr_brigade.c:292
#6  0x08076389 in ap_core_input_filter (f=0x9cf2fd8, b=0x9cfdad8, mode=AP_MODE_GETLINE, block=APR_BLOCK_READ, readbytes=0)
    at core_filters.c:155
#7  0x0806c8b6 in ap_rgetline_core (s=0x9cfcd18, n=8192, read=0xbfe26ab8, r=0x9cfcd00, fold=0, bb=0x9cfdad8)
    at protocol.c:231
#8  0x0806d34b in ap_read_request (conn=0x9cf2b30) at protocol.c:596
#9  0x08099b38 in ap_process_http_connection (c=0x9cf2b30) at http_core.c:190
#10 0x0807cfb6 in ap_run_process_connection (c=0x9cf2b30) at connection.c:43
#11 0x080c1387 in child_main (child_num_arg=Variable "child_num_arg" is not available.
) at prefork.c:640
#12 0x080c1550 in make_child (s=0x2, slot=0) at prefork.c:680
#13 0x080c1aa3 in ap_mpm_run (_pconf=0x9b570a8, plog=0x9b9d1c0, s=0x9b5d020) at prefork.c:956
#14 0x08067e6c in main (argc=2, argv=0xbfe26e74) at main.c:717
 


Server version: Apache/2.2.2
Server built:   Jul  6 2006 12:11:33
Server's Module Magic Number: 20051115:2
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/usr/local/apache2"
 -D SUEXEC_BIN="/usr/local/apache2/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-10-05 18:11 UTC] gopalv82 at yahoo dot com
Your problem seems to be 

*** glibc detected *** double free or corruption (!prev): 0x08410550
***

To the best of my knowledge, I have taken care of a few memory copy issues in apc-3.0.12p2. Please upgrade and retest - I am nearly sure that I've fixed it :)
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Wed May 01 05:01:29 2024 UTC