Hi!
I have no idea if this problem is Apache2 related or PHP related.
Running current CVS of both.
I have no single script to reproduce this, but i have the same
problem with older versions of PHP too, haven't tried with older apache
version thou.
And I don't know if this is the correct way to debug apache, but here's
the output from gdb.
Program received signal SIGPIPE, Broken pipe.
[Switching to Thread 65541 (LWP 3069)]
0x403756d8 in writev () from /lib/libc.so.6
(gdb) bt
#0 0x403756d8 in writev () from /lib/libc.so.6
#1 0x401f5b98 in apr_sendv (sock=0x413818e0, vec=0xbf1ff604, nvec=1, len=0xbf1ff4d0)
at sendrecv.c:235
#2 0x080bfa5a in writev_it_all (s=0x413818e0, vec=0xbf1ff604, nvec=1, len=49,
nbytes=0xbf1ff55c) at core.c:2695
#3 0x080c0f79 in core_output_filter (f=0x83af890, b=0x83bc790) at core.c:3957
#4 0x080b9de9 in ap_pass_brigade (next=0x83af890, bb=0x83bc790) at util_filter.c:540
#5 0x080744cc in BIO_bucket_flush (bio=0x83b8e50) at ssl_engine_io.c:134
#6 0x08074b81 in ssl_io_filter_Output (f=0x41381dd8, bb=0x8492c40) at
ssl_engine_io.c:602
#7 0x080b9de9 in ap_pass_brigade (next=0x41381dd8, bb=0x8492c40) at util_filter.c:540
#8 0x08081d40 in chunk_filter (f=0x83c3038, b=0x8492c40) at http_core.c:260
#9 0x080b9de9 in ap_pass_brigade (next=0x83c3038, bb=0x8492c40) at util_filter.c:540
#10 0x080bbeef in ap_content_length_filter (f=0x842ac48, b=0x8492c40) at
protocol.c:1299
#11 0x080b9de9 in ap_pass_brigade (next=0x842ac48, bb=0x8492c40) at util_filter.c:540
#12 0x4058a592 in php_output_filter (f=0x84914f0, bb=0x8492c40) at
/mnt/data1/Apps/CVS/PHP/php4/sapi/apache2filter/sapi_apache2.c:483
#13 0x080b9de9 in ap_pass_brigade (next=0x84914f0, bb=0x8491630) at util_filter.c:540
#14 0x080c02f9 in default_handler (r=0x8429fa0) at core.c:3377
#15 0x080af319 in ap_run_handler (r=0x8429fa0) at config.c:194
#16 0x080af863 in ap_invoke_handler (r=0x8429fa0) at config.c:401
#17 0x08085cf6 in ap_process_request (r=0x8429fa0) at http_request.c:288
#18 0x08081dda in ap_process_http_connection (c=0x413819b8) at http_core.c:293
#19 0x080b8188 in ap_run_process_connection (c=0x413819b8) at connection.c:85
#20 0x080b841f in ap_process_connection (c=0x413819b8, csd=0x413818e0) at
connection.c:207
#21 0x080ac5ab in process_socket (p=0x413818a8, sock=0x413818e0, my_child_num=0,
my_thread_num=2, bucket_alloc=0x82d8200) at worker.c:632
#22 0x080acbb7 in worker_thread (thd=0x8166c40, dummy=0x82d1b78) at worker.c:947
#23 0x401f885e in dummy_worker (opaque=0x8166c40) at thread.c:127
#24 0x4026d048 in pthread_start_thread () from /lib/libpthread.so.0
#25 0x4026d08e in pthread_start_thread_event () from /lib/libpthread.so.0
(gdb) s
Single stepping until exit from function writev,
which has no line number information.
apr_sendv (sock=0x413818e0, vec=0xbf1ff604, nvec=1, len=0xbf1ff4d0) at sendrecv.c:236
warning: Source file is more recent than executable.
236 } while (rv == -1 && errno == EINTR);
(gdb) p rv
$1 = -1
(gdb) p errno
$2 = 4
(gdb) p EINTR
No symbol "EINTR" in current context.
And a full bt:
#0 apr_sendv (sock=0x413818e0, vec=0xbf1ff604, nvec=1, len=0xbf1ff4d0) at
sendrecv.c:236
sock = (apr_socket_t *) 0x413818e0
rv = -1
requested_len = 49
i = -1
#1 0x080bfa5a in writev_it_all (s=0x413818e0, vec=0xbf1ff604, nvec=1, len=49,
nbytes=0xbf1ff55c) at core.c:2695
bytes_written = 0
rv = -1
n = 49
i = 0
#2 0x080c0f79 in core_output_filter (f=0x83af890, b=0x83bc790) at core.c:3957
nbytes = 49
nvec_trailers = 0
vec = {{iov_base = 0x83ba788, iov_len = 49}, {iov_base = 0x40049df8, iov_len =
1094196672}, {iov_base = 0x5, iov_len = 3206542980}, {
iov_base = 0x5a5a5a5a, iov_len = 1515870810}, {iov_base = 0x5a5a5a5a, iov_len =
1073981917}, {iov_base = 0x840bec0, iov_len = 135089852}, {
iov_base = 0x5, iov_len = 1073981797}, {iov_base = 0x840bec0, iov_len =
1515870810}, {iov_base = 0x5a5a5a5a, iov_len = 1074182768}, {
iov_base = 0x82d20d8, iov_len = 0}, {iov_base = 0x5a5a5a5a, iov_len = 1074824154},
{iov_base = 0x40116548, iov_len = 137200128}, {
iov_base = 0x8492c40, iov_len = 1515870810}, {iov_base = 0x40108901, iov_len =
1074881864}, {iov_base = 0xbf1ff6a4, iov_len = 1074825585}, {
iov_base = 0x82d83b0, iov_len = 137200128}}
flen = 0
last_e = (apr_bucket *) 0x82d83b0
e = (apr_bucket *) 0x82d83b0
nvec = 1
fd = (apr_file_t *) 0x0
last_merged_bucket = (apr_bucket *) 0x0
more = (apr_bucket_brigade *) 0x83afce0
vec_trailers = {{iov_base = 0x80d4ebc, iov_len = 5}, {iov_base = 0x40049df8,
iov_len = 5}, {iov_base = 0x0, iov_len = 138460864}, {
iov_base = 0x83c00fc, iov_len = 0}, {iov_base = 0x10, iov_len = 138217555},
{iov_base = 0x5a5a5a5a, iov_len = 1515870810}, {iov_base = 0x5a5a5a5a,
iov_len = 1073956605}, {iov_base = 0x840bec0, iov_len = 23}, {iov_base =
0x80d4ebc, iov_len = 5}, {iov_base = 0x0, iov_len = 1515870810}, {
iov_base = 0x5a5a5a5a, iov_len = 1073956428}, {iov_base = 0x40049df8, iov_len =
138460864}, {iov_base = 0x5, iov_len = 135089852}, {
iov_base = 0x5a5a5a5a, iov_len = 1515870810}, {iov_base = 0x5a5a5a5a, iov_len =
1073946282}, {iov_base = 0x840bec0, iov_len = 23}}
foffset = 0
rv = 49
c = (conn_rec *) 0x413819b8
net = (core_net_rec *) 0x83af868
ctx = (core_output_filter_ctx_t *) 0x83af910
#3 0x080b9de9 in ap_pass_brigade (next=0x83af890, bb=0x83bc790) at util_filter.c:540
e = (apr_bucket *) 0xffffffff
next = (ap_filter_t *) 0xbf1ff444
bb = (apr_bucket_brigade *) 0xbf1ff604
#4 0x080744cc in BIO_bucket_flush (bio=0x83b8e50) at ssl_engine_io.c:134
bio = (BIO *) 0xffffffff
b = (BIO_bucket_t *) 0x83ba778
e = (apr_bucket *) 0xbf1ff444
#5 0x08074b81 in ssl_io_filter_Output (f=0x41381dd8, bb=0x8492c40) at
ssl_engine_io.c:602
bb = (apr_bucket_brigade *) 0x8492c40
status = 0
ctx = (SSLFilterRec *) 0x41381dc0
#6 0x080b9de9 in ap_pass_brigade (next=0x41381dd8, bb=0x8492c40) at util_filter.c:540
e = (apr_bucket *) 0xffffffff
next = (ap_filter_t *) 0xbf1ff444
bb = (apr_bucket_brigade *) 0xbf1ff604
#7 0x08081d40 in chunk_filter (f=0x83c3038, b=0x8492c40) at http_core.c:260
bytes = 0
eos = (apr_bucket *) 0x82d8360
flush = (apr_bucket *) 0x0
chunk_hdr = "ZZZZZZZZ�W<@8\237B\b�W<@"
b = (apr_bucket_brigade *) 0x8492c40
c = (conn_rec *) 0x413819b8
more = (apr_bucket_brigade *) 0x0
e = (apr_bucket *) 0x82d82c0
rv = -1
#8 0x080b9de9 in ap_pass_brigade (next=0x83c3038, bb=0x8492c40) at util_filter.c:540
e = (apr_bucket *) 0xffffffff
next = (ap_filter_t *) 0xbf1ff444
bb = (apr_bucket_brigade *) 0xbf1ff604
#9 0x080bbeef in ap_content_length_filter (f=0x842ac48, b=0x8492c40) at
protocol.c:1299
b = (apr_bucket_brigade *) 0x8492c40
r = (request_rec *) 0x8429fa0
ctx = (struct content_length_ctx *) 0x83c2e80
e = (apr_bucket *) 0x82d8360
eos = 1
eblock = APR_NONBLOCK_READ
#10 0x080b9de9 in ap_pass_brigade (next=0x842ac48, bb=0x8492c40) at util_filter.c:540
e = (apr_bucket *) 0xffffffff
next = (ap_filter_t *) 0xbf1ff444
bb = (apr_bucket_brigade *) 0xbf1ff604
#11 0x4058a592 in php_output_filter (f=0x84914f0, bb=0x8492c40) at
/mnt/data1/Apps/CVS/PHP/php4/sapi/apache2filter/sapi_apache2.c:483
ctx = (php_struct *) 0x842b7e8
b = (apr_bucket *) 0x82d82c0
conf = (void *) 0x814e8a0
p = 0x815bdd0 "��\025\b"
tsrm_ls = (void ***) 0x83c05a0
#12 0x080b9de9 in ap_pass_brigade (next=0x84914f0, bb=0x8491630) at util_filter.c:540
e = (apr_bucket *) 0xffffffff
next = (ap_filter_t *) 0xbf1ff444
bb = (apr_bucket_brigade *) 0xbf1ff604
#13 0x080c02f9 in default_handler (r=0x8429fa0) at core.c:3377
c = (conn_rec *) 0x413819b8
bb = (apr_bucket_brigade *) 0x8491630
e = (apr_bucket *) 0x82d8360
d = (core_dir_config *) 0x842bdc0
errstatus = 139007540
fd = (apr_file_t *) 0x8491558
status = -1
bld_content_md5 = 137200480
#14 0x080af319 in ap_run_handler (r=0x8429fa0) at config.c:194
r = (request_rec *) 0x8429fa0
pHook = (ap_LINK_handler_t *) 0xffffffff
n = 11
rv = -1
#15 0x080af863 in ap_invoke_handler (r=0x8429fa0) at config.c:401
r = (request_rec *) 0x8429fa0
handler = 0x815bdb8 "application/x-httpd-php"
p = 0xffffffff <Address 0xffffffff out of bounds>
result = 0
old_handler = 0x0
#16 0x08085cf6 in ap_process_request (r=0x8429fa0) at http_request.c:288
r = (request_rec *) 0x8429fa0
access_status = -1
#17 0x08081dda in ap_process_http_connection (c=0x413819b8) at http_core.c:293
c = (conn_rec *) 0x413819b8
r = (request_rec *) 0x8429fa0
csd_set = 1
csd = (apr_socket_t *) 0x413818e0
#18 0x080b8188 in ap_run_process_connection (c=0x413819b8) at connection.c:85
c = (conn_rec *) 0x413819b8
pHook = (ap_LINK_process_connection_t *) 0xffffffff
n = 0
rv = -1
#19 0x080b841f in ap_process_connection (c=0x413819b8, csd=0x413818e0) at
connection.c:207
c = (conn_rec *) 0x413819b8
csd = (void *) 0x413818e0
#20 0x080ac5ab in process_socket (p=0x413818a8, sock=0x413818e0, my_child_num=0,
my_thread_num=2, bucket_alloc=0x82d8200) at worker.c:632
p = (apr_pool_t *) 0x413818a8
sock = (apr_socket_t *) 0x413818e0
my_child_num = -1088424444
my_thread_num = -1088424892
current_conn = (conn_rec *) 0x413819b8
conn_id = 1094195640
csd = 16
sbh = (ap_sb_handle_t *) 0x413819b0
#21 0x080acbb7 in worker_thread (thd=0x8166c40, dummy=0x82d1b78) at worker.c:947
dummy = (void *) 0xffffffff
process_slot = 0
thread_slot = 2
csd = (apr_socket_t *) 0x413818e0
bucket_alloc = (apr_bucket_alloc_t *) 0x82d8200
last_ptrans = (apr_pool_t *) 0x0
ptrans = (apr_pool_t *) 0x413818a8
rv = -1
is_idle = 0
#22 0x401f885e in dummy_worker (opaque=0x8166c40) at thread.c:127
opaque = (void *) 0xffffffff
#23 0x4026d048 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#24 0x4026d08e in pthread_start_thread_event () from /lib/libpthread.so.0
No symbol table info available.
Regards
Magnus M��tt�