Bug 56795 - Apache 2.4.10 Program received signal SIGPIPE, Broken pipe.
Summary: Apache 2.4.10 Program received signal SIGPIPE, Broken pipe.
Status: NEEDINFO
Alias: None
Product: Apache httpd-2
Classification: Unclassified
Component: mpm_worker (show other bugs)
Version: 2.4.10
Hardware: All Linux
: P2 normal (vote)
Target Milestone: ---
Assignee: Apache HTTPD Bugs Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-07-31 09:18 UTC by Manas Panda
Modified: 2015-05-10 19:32 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Manas Panda 2014-07-31 09:18:03 UTC
# /usr/local/apache/bin/httpd -V
Server version: Apache/2.4.10 (Unix)
Server built:   Jul 31 2014 14:23:52
Server's Module Magic Number: 20120211:36
Server loaded:  APR 1.5.1, APR-UTIL 1.5.3
Compiled using: APR 1.5.1, APR-UTIL 1.5.3
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -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=256
 -D HTTPD_ROOT="/usr/local/apache"
 -D SUEXEC_BIN="/usr/local/apache/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

(gdb) run -X
Starting program: /usr/local/apache/bin/httpd -X
[Thread debugging using libthread_db enabled]

Program received signal SIGPIPE, Broken pipe.
0x00000030d46e0b2b in writev () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install cyrus-sasl-lib-2.1.23-13.el6_3.1.x86_64 freetype-2.3.11-6.el6_2.9.x86_64 keyutils-libs-1.4-4.el6.x86_64 krb5-libs-1.10.3-10.el6.x86_64 libcom_err-1.41.12-14.el6.x86_64 libcurl-7.19.7-35.el6.x86_64 libgcrypt-1.4.5-9.el6_2.2.x86_64 libgpg-error-1.7-4.el6.x86_64 libidn-1.18-2.el6.x86_64 libjpeg-turbo-1.2.1-1.el6.x86_64 libpng-1.2.49-1.el6_2.x86_64 libselinux-2.0.94-5.3.el6.x86_64 libssh2-1.4.2-1.el6.x86_64 libxml2-2.7.6-8.el6_3.4.x86_64 libxslt-1.1.26-2.el6_3.1.x86_64 nspr-4.9.2-1.el6.x86_64 nss-3.14.0.0-12.el6.x86_64 nss-util-3.14.0.0-2.el6.x86_64 openldap-2.4.23-31.el6.x86_64 openssl-1.0.1e-16.el6_5.14.x86_64
(gdb) where
#0  0x00000030d46e0b2b in writev () from /lib64/libc.so.6
#1  0x00007ffff7bb2266 in apr_socket_sendv (sock=0xb3c620, vec=0x7fffffffded0, nvec=2, len=0x7fffffffde50) at network_io/unix/sendrecv.c:212
#2  0x0000000000445f71 in writev_nonblocking (s=<value optimized out>, vec=0x7fffffffded0, nvec=2, bb=0xb3ce50, cumulative_bytes_written=0xb3cd48, c=0xb3c810)
    at core_filters.c:789
#3  0x00000000004461f5 in send_brigade_nonblocking (s=0xb3c620, bb=0xb3ce50, bytes_written=0xb3cd48, c=0xb3c810) at core_filters.c:705
#4  0x0000000000446997 in send_brigade_blocking (f=0xb3cc10, new_bb=0xb3ce50) at core_filters.c:735
#5  ap_core_output_filter (f=0xb3cc10, new_bb=0xb3ce50) at core_filters.c:544
#6  0x0000000000461241 in ap_process_request (r=0x11e4210) at http_request.c:369
#7  0x000000000045d662 in ap_process_http_sync_connection (c=0xb3c810) at http_core.c:190
#8  ap_process_http_connection (c=0xb3c810) at http_core.c:231
#9  0x0000000000455220 in ap_run_process_connection (c=0xb3c810) at connection.c:41
#10 0x00000000004679be in child_main (child_num_arg=<value optimized out>) at prefork.c:704
#11 0x0000000000467bd7 in make_child (s=0x6be538, slot=0) at prefork.c:746
#12 0x0000000000468776 in prefork_run (_pconf=<value optimized out>, plog=0x6c2378, s=0x6be538) at prefork.c:956
#13 0x0000000000430c7e in ap_run_mpm (pconf=0x695138, plog=0x6c2378, s=0x6be538) at mpm_common.c:96
#14 0x000000000042af64 in main (argc=2, argv=0x7fffffffe638) at main.c:777
(gdb)

This is basically causing below.

[Thu Jul 31 14:34:43.437659 2014] [core:notice] [pid 31364] AH00052: child pid 31405 exit signal Segmentation fault (11)
[Thu Jul 31 14:34:43.437684 2014] [core:notice] [pid 31364] AH00052: child pid 31409 exit signal Segmentation fault (11)
[Thu Jul 31 14:34:43.437700 2014] [core:notice] [pid 31364] AH00052: child pid 31412 exit signal Segmentation fault (11)
[Thu Jul 31 14:34:43.437716 2014] [core:notice] [pid 31364] AH00052: child pid 31414 exit signal Segmentation fault (11)
[Thu Jul 31 14:34:43.437781 2014] [core:notice] [pid 31364] AH00052: child pid 31428 exit signal Segmentation fault (11)
[Thu Jul 31 14:34:43.437798 2014] [core:notice] [pid 31364] AH00052: child pid 31434 exit signal Segmentation fault (11)
[Thu Jul 31 14:34:43.437822 2014] [core:notice] [pid 31364] AH00052: child pid 31444 exit signal Segmentation fault (11)
Comment 1 szotsaki 2015-05-01 14:42:21 UTC
I'm also facing with this issue.

httpd2 -V
Server version: Apache/2.4.10 (Linux/SUSE)
Server built:   2015-04-09 17:08:40.000000000 +0000
Server's Module Magic Number: 20120211:36
Server loaded:  APR 1.5.1, APR-UTIL 1.5.3
Compiled using: APR 1.5.1, APR-UTIL 1.5.3
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_PROC_PTHREAD_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=256
 -D HTTPD_ROOT="/srv/www"
 -D SUEXEC_BIN="/usr/sbin/suexec2"
 -D DEFAULT_PIDLOG="/run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="/var/log/apache2/error_log"
 -D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/etc/apache2/httpd.conf"

A short backtrace:
#0  0x00007ffff722ece7 in __libc_writev (fd=22, vector=vector@entry=0x7fffffffdc80, count=count@entry=1) at ../sysdeps/unix/sysv/linux/writev.c:49
#1  0x00007ffff7735cba in apr_socket_sendv (sock=sock@entry=0x7ffff3c3d0a0, vec=vec@entry=0x7fffffffdc80, nvec=nvec@entry=1, len=len@entry=0x7fffffffdbe8) at network_io/unix/sendrecv.c:212
#2  0x00005555555993b1 in writev_nonblocking (s=s@entry=0x7ffff3c3d0a0, vec=vec@entry=0x7fffffffdc80, nvec=nvec@entry=1, bb=bb@entry=0x7ffff3c3d838, 
    cumulative_bytes_written=cumulative_bytes_written@entry=0x7ffff3c3d770, c=c@entry=0x7ffff3c3d290) at core_filters.c:789
#3  0x000055555559961c in send_brigade_nonblocking (s=s@entry=0x7ffff3c3d0a0, bb=bb@entry=0x7ffff3c3d838, bytes_written=bytes_written@entry=0x7ffff3c3d770, c=c@entry=0x7ffff3c3d290) at core_filters.c:705
#4  0x000055555559a281 in send_brigade_blocking (c=<optimized out>, bytes_written=0x7ffff3c3d770, bb=0x7ffff3c3d838, s=0x7ffff3c3d0a0) at core_filters.c:735
#5  ap_core_output_filter (f=0x7ffff3c3d690, new_bb=0x7ffff3c3d838) at core_filters.c:544
#6  0x00005555555b3c79 in ap_process_request (r=r@entry=0x7fffc18360a0) at http_request.c:369
#7  0x00005555555b06a2 in ap_process_http_sync_connection (c=0x7ffff3c3d290) at http_core.c:190
#8  ap_process_http_connection (c=0x7ffff3c3d290) at http_core.c:231
#9  0x00005555555a7fa0 in ap_run_process_connection (c=0x7ffff3c3d290) at connection.c:41
#10 0x00005555555a8388 in ap_process_connection (c=c@entry=0x7ffff3c3d290, csd=<optimized out>) at connection.c:203
#11 0x00005555555bb72e in child_main (child_num_arg=child_num_arg@entry=0) at prefork.c:704
#12 0x00005555555bb928 in make_child (s=0x7ffff7fb7448, slot=slot@entry=0) at prefork.c:746
#13 0x00005555555bc643 in prefork_run (_pconf=<optimized out>, plog=0x7ffff7fb3028, s=0x7ffff7fb7448) at prefork.c:956
#14 0x0000555555584dde in ap_run_mpm (pconf=0x7ffff7fef028, plog=0x7ffff7fb3028, s=0x7ffff7fb7448) at mpm_common.c:94
#15 0x000055555557e476 in main (argc=7, argv=0x7fffffffe358) at main.c:777

Full backtrace:
#0  0x00007ffff722ece7 in __libc_writev (fd=22, vector=vector@entry=0x7fffffffdc80, count=count@entry=1) at ../sysdeps/unix/sysv/linux/writev.c:49
        resultvar = 18446744073709551584
        result = <optimized out>
#1  0x00007ffff7735cba in apr_socket_sendv (sock=sock@entry=0x7ffff3c3d0a0, vec=vec@entry=0x7fffffffdc80, nvec=nvec@entry=1, len=len@entry=0x7fffffffdbe8) at network_io/unix/sendrecv.c:212
        rv = <optimized out>
        requested_len = <optimized out>
        i = <optimized out>
#2  0x00005555555993b1 in writev_nonblocking (s=s@entry=0x7ffff3c3d0a0, vec=vec@entry=0x7fffffffdc80, nvec=nvec@entry=1, bb=bb@entry=0x7ffff3c3d838, cumulative_bytes_written=cumulative_bytes_written@entry=0x7ffff3c3d770, c=c@entry=0x7ffff3c3d290) at core_filters.c:789
        n = 0
        rv = 0
        arv = <optimized out>
        bytes_written = 0
        bytes_to_write = 5
        i = <optimized out>
        offset = 0
        old_timeout = 60000000
#3  0x000055555559961c in send_brigade_nonblocking (s=s@entry=0x7ffff3c3d0a0, bb=bb@entry=0x7ffff3c3d838, bytes_written=bytes_written@entry=0x7ffff3c3d770, c=c@entry=0x7ffff3c3d290) at core_filters.c:705
        bucket = 0x7ffff3c3d840
        next = <optimized out>
        rv = <optimized out>
        vec = {{iov_base = 0x5555555ca25f, iov_len = 5}, {iov_base = 0x7fffc1812000, iov_len = 0}, {iov_base = 0x0, iov_len = 140737259519664}, {iov_base = 0x7ffff25a8410 <php_zend_stream_fsizer>, iov_len = 140737259406320}, {iov_base = 0x0, iov_len = 240}, {iov_base = 0x7fffc18360a0, iov_len = 3378143518144686118}, {iov_base = 0x7fffc18360a0, iov_len = 93824994908576}, {iov_base = 0x0, iov_len = 93824992440613}, {iov_base = 0xd11e6c5e17616826, iov_len = 140737488346384}, {iov_base = 0x7fff00000000, iov_len = 140736440000672}, {iov_base = 0x7fffc1837788, iov_len = 140737283086168}, {iov_base = 0x7ffff3c3d690, iov_len = 140737283084944}, {iov_base = 0x7ffff3c3d758, iov_len = 140737283085968}, {iov_base = 0x7ffff3c3d290, iov_len = 93824992516538}, {iov_base = 0x7ffff7f59708, iov_len = 140737283086328}, {iov_base = 0x5555557e19a0 <http_module>, iov_len = 140737283086328}}
        nvec = 1
#4  0x000055555559a281 in send_brigade_blocking (c=<optimized out>, bytes_written=0x7ffff3c3d770, bb=0x7ffff3c3d838, s=0x7ffff3c3d0a0) at core_filters.c:735
        rv = 0
#5  ap_core_output_filter (f=0x7ffff3c3d690, new_bb=0x7ffff3c3d838) at core_filters.c:544
        c = <optimized out>
        net = 0x7ffff3c3d648
        ctx = 0x7ffff3c3d758
        bb = 0x7ffff3c3d838
        bucket = <optimized out>
        next = <optimized out>
        flush_upto = <optimized out>
        bytes_in_brigade = <optimized out>
        non_file_bytes_in_brigade = <optimized out>
        eor_buckets_in_brigade = <optimized out>
        morphing_bucket_in_brigade = 0
        rv = <optimized out>
#6  0x00005555555b3c79 in ap_process_request (r=r@entry=0x7fffc18360a0) at http_request.c:369
        bb = 0x7ffff3c3d838
        b = <optimized out>
        c = 0x7ffff3c3d290
        rv = <optimized out>
#7  0x00005555555b06a2 in ap_process_http_sync_connection (c=0x7ffff3c3d290) at http_core.c:190
        r = 0x7fffc18360a0
        cs = 0x0
        csd = 0x0
        mpm_state = 0
#8  ap_process_http_connection (c=0x7ffff3c3d290) at http_core.c:231
No locals.
#9  0x00005555555a7fa0 in ap_run_process_connection (c=0x7ffff3c3d290) at connection.c:41
        pHook = 0x7ffff7f598b0
        n = 1
        rv = -32
#10 0x00005555555a8388 in ap_process_connection (c=c@entry=0x7ffff3c3d290, csd=<optimized out>) at connection.c:203
        rc = <optimized out>
#11 0x00005555555bb72e in child_main (child_num_arg=child_num_arg@entry=0) at prefork.c:704
        current_conn = 0x7ffff3c3d290
        csd = 0x7ffff3c3d0a0
        thd = 0x7ffff3c3f0a0
        osthd = 140737353963392
        ptrans = 0x7ffff3c3d028
        allocator = 0x555555a956c0
        status = <optimized out>
        i = <optimized out>
        lr = <optimized out>
        pollset = 0x7ffff3c3f180
        sbh = 0x7ffff3c3f178
        bucket_alloc = 0x7fffed1cf028
        last_poll_idx = 1
        lockfile = <optimized out>
#12 0x00005555555bb928 in make_child (s=0x7ffff7fb7448, slot=slot@entry=0) at prefork.c:746
        pid = <optimized out>
#13 0x00005555555bc643 in prefork_run (_pconf=<optimized out>, plog=0x7ffff7fb3028, s=0x7ffff7fb7448) at prefork.c:956
        index = <optimized out>
        remaining_children_to_start = <optimized out>
        rv = <optimized out>
#14 0x0000555555584dde in ap_run_mpm (pconf=0x7ffff7fef028, plog=0x7ffff7fb3028, s=0x7ffff7fb7448) at mpm_common.c:94
        pHook = 0x7ffff7f599d8
        n = 0
        rv = -32
#15 0x000055555557e476 in main (argc=7, argv=0x7fffffffe358) at main.c:777
        c = 88 'X'
        showcompile = 0
        showdirectives = 0
        confname = 0x7fffffffe70e "/etc/apache2/httpd.conf"
        def_server_root = 0x5555555bd7e3 "/srv/www"
        temp_error_log = 0x0
        error = <optimized out>
        process = 0x7ffff7ff1118
        pconf = 0x7ffff7fef028
        plog = 0x7ffff7fb3028
        ptemp = 0x7ffff7fb5028
        pcommands = 0x7ffff7fbd028
        opt = 0x7ffff7fbd118
        rv = <optimized out>
        mod = 0x5555557deb18 <ap_prelinked_modules+56>
        opt_arg = 0x0
        signal_server = <optimized out>
Comment 2 Jeff Trawick 2015-05-10 19:32:55 UTC
This looks like normal behavior when running under a debugger to me.  "c" to continue after the signal interruption.

SIGPIPE doesn't generally cause segfaults.  You need to get a backtrace from the segfault, not from the SIGPIPE.