You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2002/11/06 16:02:24 UTC

DO NOT REPLY [Bug 14299] New: - SIGPIPE problem

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14299>.
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=14299

SIGPIPE problem

           Summary: SIGPIPE problem
           Product: Apache httpd-1.3
           Version: 1.3.26
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: Critical
          Priority: Other
         Component: core
        AssignedTo: bugs@httpd.apache.org
        ReportedBy: tw@2m.dk


I havent tested this on 1.3.27, but it's a problem on 1.3.9, 1.3.23 and 1.3.26 -
so I suspect it is a problem in 1.3.27 aswell, as I haven't seen any entries in
the changelog, that addresses this.
I have tested this on Debian (potato and sid) and SuSE 8.0.

It is fairly easy to reproduce the gdb backtrace
/usr/sbin/apache -X
gdb /usb/sbin/apache <pid>
fire up your browser and direct it to the following script, test.html
<html>
<head>
  <title>Test</title>
</head>
<body>
  <a href="test.html">Testing...</a>
[DUMP ALOT OF RANDOM TEXT HERE] *
</body>
</html>

*) On my machine (AMD 1100MHz) ~14M is adequate. On slower/faster machine less
or more text will reach the threshold depending on workload.

Now it will only take between 2 and 30 clicks on "Testing..." to achieve the
SIGPIPE (again: if you don't get the SIGPIPE - please try to raise the size of
the html file - instead of just writing this bug of as bogus).

In "normal" use (meaning static html and even most php scripts) such a SIGPIPE
will have no influence - but if you have en extension to php which is
excessively session oriented (as I have) your site will simply stop working.
Which is why I have marked this BUG critical.
As I have hinted this is very much a timing problem as my extension has no
problems when running in pure http context - but adding the calculation
complexity of https - it gives up (why I initially thought this was a problem
with openssl).

Well... I'll just post the backtrace from gdb:
Program received signal SIGPIPE, Broken pipe.
0x401456e7 in writev () from /lib/libc.so.6
(gdb) bt
#0  0x401456e7 in writev () from /lib/libc.so.6
#1  0x80535d3 in writev_it_all (fb=0x80a7e74, vec=0xbfffd9bc, nvec=2)
    at buff.c:1138
#2  0x805382f in large_write (fb=0x80a7e74, buf=0xbfffda4c, nbyte=8192)
    at buff.c:1293
#3  0x80538d2 in ap_bwrite (fb=0x80a7e74, buf=0xbfffda4c, nbyte=8192)
    at buff.c:1356
#4  0x80614f0 in ap_send_fd_length (f=0x80c2898, r=0x80c08bc, length=8182251)
    at http_protocol.c:2352
#5  0x8059bb2 in default_handler (r=0x80c08bc) at http_core.c:3929
#6  0x8054408 in ap_invoke_handler (r=0x80c08bc) at http_config.c:529
#7  0x8063cbc in process_request_internal (r=0x80c08bc) at http_request.c:1308
#8  0x8063d18 in ap_process_request (r=0x80c08bc) at http_request.c:1324
#9  0x805d4eb in child_main (child_num_arg=0) at http_main.c:4681
#10 0x805d67c in make_child (s=0x809c4cc, slot=0, now=1036592596)
    at http_main.c:4805
#11 0x805d799 in startup_children (number_to_start=5) at http_main.c:4887
#12 0x805dc75 in standalone_main (argc=2, argv=0xbffffd24) at http_main.c:5195
#13 0x805e37d in main (argc=2, argv=0xbffffd24) at http_main.c:5558
(gdb) 

I'll gladly supply more info if needed

Best Regards
  Thomas Wentzel

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org