...in /usr/local/apache2_0_28/corefiles/httpd.core.1
#0 0x281b53ed in cgi_handler (r=0x816103c) at mod_cgi.c:547
547 if(strcmp(r->handler,CGI_MAGIC_TYPE) &&
strcmp(r->handler,"cgi-script"))
548 return DECLINED
we executed this statement millions of times since this build went into
production with only this one problem. The r looks fine in the dump; so
does r->handler:
(gdb) p r->handler
$7 = 0x817b714 "image/gif"
the other fields involved are constants.
But check this out:
Core was generated by `httpd'.
Program terminated with signal 10, Bus error.
I think that's trying to tell us something, but I don't know what.
Anybody?
Greg
---------------------------------------------------------------------------
gory details
(gdb) p r->the_request
$8 = 0x81617fc "GET /tomcat/tomcat-3.2-doc/uguide/images/banner.gif
HTTP/1.1"
(gdb) p r->hostname
$9 = 0x8161bfc "jakarta.apache.org"
(gdb) p r->filename
$10 = 0x8161f0c
"/www/jakarta.apache.org/tomcat/tomcat-3.2-doc/uguide/images/banner.gif"
a static file which serves just fine plugged into my browser. About as
simple as you can get.
(gdb) bt
#0 0x281b53ed in cgi_handler (r=0x816103c) at mod_cgi.c:547
#1 0x80630bf in ap_run_handler (r=0x816103c) at config.c:185
#2 0x8063657 in ap_invoke_handler (r=0x816103c) at config.c:344
#3 0x8060725 in ap_process_request (r=0x816103c) at http_request.c:286
#4 0x805c49a in ap_process_http_connection (c=0x812510c) at
http_core.c:289
#5 0x806b66f in ap_run_process_connection (c=0x812510c) at
connection.c:82
#6 0x806b82d in ap_process_connection (c=0x812510c) at connection.c:219
#7 0x8061cb4 in child_main (child_num_arg=130) at prefork.c:803
#8 0x8061e0a in make_child (s=0x8095974, slot=130) at prefork.c:890
#9 0x806205d in perform_idle_server_maintenance (p=0x809500c)
at prefork.c:1031
#10 0x8062422 in ap_mpm_run (_pconf=0x809500c, plog=0x80ce00c,
s=0x8095974)
at prefork.c:1210
#11 0x8067681 in main (argc=1, argv=0xbfbffb5c) at main.c:432
#12 0x805c065 in _start ()
(gdb) info line 547
Line 547 of "mod_cgi.c" starts at address 0x281b53c0 <cgi_handler+108>
and ends at 0x281b53f1 <cgi_handler+157>.
(gdb) disass cgi_handler+108 cgi_handler+157
Dump of assembler code from 0x281b53c0 to 0x281b53f1:
0x281b53c0 <cgi_handler+108>: mov 0x8(%ebp),%ecx
0x281b53c3 <cgi_handler+111>: mov 0xbc(%ecx),%eax
0x281b53c9 <cgi_handler+117>: mov %eax,%esi
0x281b53cb <cgi_handler+119>: lea 0xffffebbb(%ebx),%edi
0x281b53d1 <cgi_handler+125>: mov $0x18,%ecx
0x281b53d6 <cgi_handler+130>: cld
0x281b53d7 <cgi_handler+131>: test $0x0,%al
0x281b53d9 <cgi_handler+133>: repz cmpsb %es:(%edi),%ds:(%esi)
0x281b53db <cgi_handler+135>: je 0x281b53fc <cgi_handler+168>
0x281b53dd <cgi_handler+137>: mov %eax,%esi
0x281b53df <cgi_handler+139>: lea 0xffffe97e(%ebx),%edi
0x281b53e5 <cgi_handler+145>: mov $0xb,%ecx
0x281b53ea <cgi_handler+150>: cld
0x281b53eb <cgi_handler+151>: test $0x0,%al
0x281b53ed <cgi_handler+153>: repz cmpsb %es:(%edi),%ds:(%esi)
0x281b53ef <cgi_handler+155>: je 0x281b53fc <cgi_handler+168>
End of assembler dump.
(gdb) info registers
eax 0x817b714 135771924
ecx 0xb 11
edx 0x0 0
ebx 0xffffebbb -5189
esp 0xbfbf9750 0xbfbf9750
ebp 0xbfbfd7b8 0xbfbfd7b8
esi 0x817b714 135771924 <== same as
r->handler
edi 0xffffd539 -10951
eip 0x281b53ed 0x281b53ed
eflags 0x10246 66118
cs 0x1f 31
ss 0x2f 47
ds 0xbfbf002f -1078001617
es 0x811002f 135331887
fs 0xbfbf002f -1078001617
gs 0x2f 47