https://issues.apache.org/bugzilla/show_bug.cgi?id=54986

            Bug ID: 54986
           Summary: httpd hanging on large form submit in ap_run_handler
           Product: Apache httpd-2
           Version: 2.2.22
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: major
          Priority: P2
         Component: All
          Assignee: [email protected]
          Reporter: [email protected]
    Classification: Unclassified

Have an issue with a customer system. The apache process is completely hanging
when trying to process a submitted form. It's a POST with a long list of mac
addresses, about 22K of total data. At some point this just stopped working.
Smaller submits, up to 20K work, the exact tripping point varies each time we
run it.

Running gdb and attaching to the httpd process (recompiled with -g3 flag) I see
this, with a breakpoint set at ap_run_handler.

(gdb) bt
#0 ap_run_handler (r=0xdd3bd50) at config.c:157
#1 0x0807990f in ap_invoke_handler (r=0xdd3bd50) at config.c:376
#2 0x08094d45 in ap_process_request (r=0xdd3bd50) at http_request.c:282
#3 0x0dd3bd50 in ?? ()
#4 0x0d632440 in ?? ()
#5 0x00000000 in ?? ()
(gdb) s

And it just hangs. I can't see what r is pointing to.

I find no function definition in the apache source tree for ap_run_handler(). 

Line 157 in config.c is
AP_IMPLEMENT_HOOK_RUN_FIRST(int, handler, (request_rec *r), (r), DECLINED)

Following the code for definitions of this macro, leads me to a rather
obfuscated define in apr_hooks.h, line 358
/** macro to implement the hook */
#define APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ns,link,name) \
link##_DECLARE(void) ns##_hook_##name(ns##_HOOK_##name##_t *pf,const char *
const *aszPre, \
                                      const char * const *aszSucc,int nOrder) \
    { \

The apache docs are no help, simply notes it as an internal macro.


# uname -a
Linux lab01.net 2.6.18-238.9.1.el5 #1 SMP Tue Apr 12 18:10:13 EDT 2011 x86_64
x86_64 x86_64 GNU/Linux
(I think this is CentOS 5.7) 

# httpd -V
Server version: Apache/2.2.22 (Unix)
Server built:   May 13 2013 11:55:26
Server's Module Magic Number: 20051115:30
Server loaded:  APR 1.4.5, APR-Util 1.3.12
Compiled using: APR 1.4.5, APR-Util 1.4.1
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="/space/vendor-build/apache"
 -D SUEXEC_BIN="/space/vendor-build/apache/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"

# httpd -l
Compiled in modules:
  core.c
  mod_ssl.c
  prefork.c
  http_core.c
  mod_so.c

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to