You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Martin Kraemer <Ma...@mch.sni.de> on 1997/09/12 16:05:33 UTC
Re: Huh? Windows oddness (long dbxtrace)
On Fri, Sep 12, 1997 at 11:44:03AM +0200, Martin Kraemer wrote:
> This is _not_ a windows specific bug! I get it on my unix box as well.
> Here's a traceback I did a couple of days ago (didn't find the time yet
> to walk thru it though; otherwise I might have added th contents of the
> offending request struct).
Here are some more clues (read: dbx traceback). It appears that the
core_dir_config structure contains garbage (looks like it contains the
file path to the requested document, in my case /var/WWW/Web/WebTools/.
You can clearly see the 'W','W','W' in the "p *conf" dbx command.).
But I didn't find any module which addresses "&core_dir->opts"!??!?
Puzzled, (and leaving for the weekend now)
Martin
Script started on Fri Sep 12 15:37:39 1997
> dbx32 httpd core
dbx V2.3C00 SINIX (Jul 28 1997)
(dbx32) t
file_walk(r = 0x813394c [ 1]), line 540 in "http_request.c"
$b40, line 741 in "http_request.c"
sub_req_lookup_file(new_file = 0x812d13e, r = 0x8130964 [ 2]), line 741 in "http_request.c"
$b121, line 641 in "mod_autoindex.c"
make_autoindex_entry(name = 0x812d13e, autoindex_opts = 1, d = 0x8116dd4 [ 3], r = 0x8130964 [ 4], keyid = 'N', direction = 'A'), line 641 in "mod_autoindex.c"
index_directory(r = 0x8130964 [ 5], autoindex_conf = 0x8116dd4 [ 6]), line 1034 in "mod_autoindex.c"
handle_autoindex(r = 0x8130964 [ 7]), line 1097 in "mod_autoindex.c"
invoke_handler() at 0x8075cd8
process_request_internal(r = 0x8130964 [ 8]), line 1058 in "http_request.c"
process_request(r = 0x8130964 [ 9]), line 1074 in "http_request.c"
child_main() at 0x807208f
make_child() at 0x8072211
startup_children() at 0x807234a
standalone_main() at 0x8072703
.main(0x6, 0x80476ec, 0x8047708) at 0x8072d31
_start() at 0x804aa33
(dbx32) p *r
{
pool = 0x8131914 [ 1]
connection = 0x8130904 [ 2]
server = 0x8128610 [ 3]
next = (nilv)
prev = (nilv)
main = (nilv)
the_request = 0x8131dcc
assbackwards = 0
proxyreq = 0
header_only = 0
protocol = 0x8131df4
proto_num = 1000
hostname = (nilv)
hostlen = 0
request_time = 874071440
status_line = "200 OK"
status = 200
method = 0x8131ddc
method_number = 0
allowed = 0
sent_bodyct = 1
bytes_sent = 136
mtime = 0
chunked = 0
byterange = 0
boundary = (nilv)
range = (nilv)
clength = 0
remaining = 0
read_length = 0
read_body = 0
read_chunked = 0
headers_in = 0x813193c [ 4]
headers_out = 0x8131c8c [ 5]
err_headers_out = 0x8131ccc [ 6]
subprocess_env = 0x8131ae4 [ 7]
notes = 0x8131d0c [ 8]
content_type = "text/html"
handler = (nilv)
content_encoding = (nilv)
content_language = (nilv)
content_languages = (nilv)
no_cache = 0
no_local_copy = 0
uri = 0x8131dec
filename = 0x81320fc
path_info = 0x8131f2c
args = (nilv)
finfo = {
st_dev = 11010059
st_pad1 = [
0: 0
1: 0
2: 0
]
st_ino = 66
st_mode = 17897
st_nlink = 15
st_uid = 2800
st_gid = 101
st_rdev = 0
st_pad2 = [
0: 0
1: 0
]
st_size = 1024
st_pad3 = 0
st_atim = {
tv_sec = 874070675
tv_nsec = 400000000
}
st_mtim = {
tv_sec = 873219777
tv_nsec = 790001000
}
st_ctim = {
tv_sec = 873219777
tv_nsec = 790001000
}
st_blksize = 1024
st_blocks = 2
st_fstype = "ufs"
st_pad4 = [
0: 0
1: 0
2: 0
3: 0
4: 0
5: 0
6: 0
7: 0
]
}
parsed_uri = {
is_initialized = 1
has_scheme = 0
has_user = 0
has_password = 0
has_hostname = 0
has_port = 0
has_path = 1
has_args = 0
dns_looked_up = 0
dns_resolved = 0
scheme = (nilv)
user = (nilv)
password = (nilv)
hostname = (nilv)
port_str = (nilv)
path = (nilv)
args = (nilv)
port = 0
hostaddr = {
h_name = (nilv)
h_aliases = (nilv)
h_addrtype = 0
h_length = 0
h_addr_list = (nilv)
}
}
per_dir_config = 0x813202c
request_config = 0x8131d4c
htaccess = (nilv)
}
(dbx32) p *.mod_autoindex.make_autoindex_entry.d
{
default_icon = 0x8122a8c
icon_width = 0
icon_height = 0
icon_list = 0x8116dfc [ 1]
alt_list = 0x8116e54 [ 2]
desc_list = 0x8116eac [ 3]
ign_list = 0x8116f04 [ 4]
hdr_list = 0x8116f5c [ 5]
rdme_list = 0x8116fb4 [ 6]
opts_list = 0x811700c [ 7]
}
(dbx32) p *.mod_autoindex.make_autoindex_entry.d.opts_list
{
pool = 0x811584c [ 1]
elt_size = 16
nelts = 1
nalloc = 4
elts = 0x8117024
}
(dbx32) p *.mod_autoindex.make_autoindex_entry.d.rdme_list
{
pool = 0x811584c [ 1]
elt_size = 16
nelts = 1
nalloc = 4
elts = 0x8116fcc
}
(dbx32) p *.mod_autoindex.make_autoindex_entry.d.hdr_list
{
pool = 0x811584c [ 1]
elt_size = 16
nelts = 1
nalloc = 4
elts = 0x8116f74
}
(dbx32) p *.mod_autoindex.make_autoindex_entry.d.ign_list
{
pool = 0x811584c [ 1]
elt_size = 16
nelts = 8
nalloc = 8
elts = 0x8120074
}
(dbx32) p *.mod_autoindex.make_autoindex_entry.d.desc_list
{
pool = 0x811584c [ 1]
elt_size = 16
nelts = 0
nalloc = 4
elts = 0x8116ec4
}
(dbx32) p *.mod_autoindex.make_autoindex_entry.d.alt_list
{
pool = 0x811584c [ 1]
elt_size = 16
nelts = 7
nalloc = 8
elts = 0x8121a44
}
(dbx32) p *.mod_autoindex.make_autoindex_entry.d.icon_list
{
pool = 0x811584c [ 1]
elt_size = 16
nelts = 57
nalloc = 64
elts = 0x8120e14
}
(dbx32) file http_request.c
(dbx32) l 536,540
536 int file_walk (request_rec *r)
537 {
538 core_dir_config *conf = get_module_config(r->per_dir_config, &core_module);
539 void *per_dir_defaults = r->per_dir_config;
540 void **file = (void **)conf->sec->elts;
(dbx32) p *r
{
pool = 0x8133924 [ 1]
connection = 0x8130904 [ 2]
server = 0x8128610 [ 3]
next = (nilv)
prev = (nilv)
main = 0x8130964 [ 4]
the_request = 0x8131dcc
assbackwards = 1
proxyreq = 0
header_only = 0
protocol = "INCLUDED"
proto_num = 0
hostname = (nilv)
hostlen = 0
request_time = 874071440
status_line = (nilv)
status = 200
method = "GET"
method_number = 0
allowed = 0
sent_bodyct = 0
bytes_sent = 0
mtime = 0
chunked = 0
byterange = 0
boundary = (nilv)
range = (nilv)
clength = 0
remaining = 0
read_length = 0
read_body = 0
read_chunked = 0
headers_in = 0x813193c [ 5]
headers_out = 0x8133d04 [ 6]
err_headers_out = 0x8133d44 [ 7]
subprocess_env = 0x8133b5c [ 8]
notes = 0x8133d84 [ 9]
content_type = (nilv)
handler = (nilv)
content_encoding = (nilv)
content_language = (nilv)
content_languages = (nilv)
no_cache = 0
no_local_copy = 1
uri = 0x8133ddc
filename = 0x8133dec
path_info = 0x8133e1c
args = (nilv)
finfo = {
st_dev = 11010059
st_pad1 = [
0: 0
1: 0
2: 0
]
st_ino = 14420
st_mode = 17897
st_nlink = 5
st_uid = 2800
st_gid = 101
st_rdev = 0
st_pad2 = [
0: 0
1: 0
]
st_size = 1024
st_pad3 = 0
st_atim = {
tv_sec = 873969268
tv_nsec = 70001000
}
st_mtim = {
tv_sec = 874050912
tv_nsec = 920001000
}
st_ctim = {
tv_sec = 874050912
tv_nsec = 920001000
}
st_blksize = 1024
st_blocks = 2
st_fstype = "ufs"
st_pad4 = [
0: 0
1: 0
2: 0
3: 0
4: 0
5: 0
6: 0
7: 0
]
}
parsed_uri = {
is_initialized = 0
has_scheme = 0
has_user = 0
has_password = 0
has_hostname = 0
has_port = 0
has_path = 0
has_args = 0
dns_looked_up = 0
dns_resolved = 0
scheme = (nilv)
user = (nilv)
password = (nilv)
hostname = (nilv)
port_str = (nilv)
path = (nilv)
args = (nilv)
port = 0
hostaddr = {
h_name = (nilv)
h_aliases = (nilv)
h_addrtype = 0
h_length = 0
h_addr_list = (nilv)
}
}
per_dir_config = 0x8133e3c
request_config = 0x8133adc
htaccess = (nilv)
}
(dbx32) p r->per_dir_config
0x8133e3c
(dbx32) p *conf
{
d = 0x73636f
d_components = 1918989871
opts = '/'
opts_add = 'W'
opts_remove = 'W'
override = 'W'
default_type = 0x6265572f
satisfy = 1634746671
auth_type = 0x44656863
auth_name = 0x73636f
requires = 0x462d6600 [ 1]
response_code_strings = 0x682e5141 [ 2]
hostname_lookups = 15
do_rfc1413 = 2
content_md5 = 0
d_is_fnmatch = 0
loglevel = 1465341743
sec = 0x6265572f [ 3]
r = 0x6170412f [ 4]
}
(dbx32) 3
illegal address (0x6265572f)
(dbx32) p "\x62\x65\x57\x2f"
beW/
(dbx32) q
6.99u 3.04s 7:48.06 2.1%
script done on Fri Sep 12 15:47:03 1997
--
| S I E M E N S | <Ma...@mch.sni.de> | Siemens Nixdorf
| ------------- | Voice: +49-89-636-46021 | Informationssysteme AG
| N I X D O R F | FAX: +49-89-636-44994 | 81730 Munich, Germany
~~~~~~~~~~~~~~~~My opinions only, of course; pgp key available on request
Re: Huh? Windows oddness (long dbxtrace)
Posted by Brian Behlendorf <br...@organic.com>.
I'm pretty sure those SEGV's were related to Randy's ap_error changes he
was making, but they've all but vanished since shortly after they began.
Brian
At 04:12 PM 9/12/97 -0700, Dean Gaudet wrote:
>I wonder if these are all related to the SEGVs that I started seeing when
>I did a "cvs update" after I got back from burning man (tuesday sept 2).
>Can you folks try doing a few 'cvs -D "a week ago"' checkouts and see
>when it started happening?
>
>I think core_dir->opts is buried under a macro or function call.
>
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--
"Why not?" - TL brian@organic.com - hyperreal.org - apache.org
Re: Huh? Windows oddness (long dbxtrace)
Posted by Dean Gaudet <dg...@arctic.org>.
I wonder if these are all related to the SEGVs that I started seeing when
I did a "cvs update" after I got back from burning man (tuesday sept 2).
Can you folks try doing a few 'cvs -D "a week ago"' checkouts and see
when it started happening?
I think core_dir->opts is buried under a macro or function call.
Dean
On Fri, 12 Sep 1997, Martin Kraemer wrote:
> On Fri, Sep 12, 1997 at 11:44:03AM +0200, Martin Kraemer wrote:
> > This is _not_ a windows specific bug! I get it on my unix box as well.
> > Here's a traceback I did a couple of days ago (didn't find the time yet
> > to walk thru it though; otherwise I might have added th contents of the
> > offending request struct).
>
> Here are some more clues (read: dbx traceback). It appears that the
> core_dir_config structure contains garbage (looks like it contains the
> file path to the requested document, in my case /var/WWW/Web/WebTools/.
> You can clearly see the 'W','W','W' in the "p *conf" dbx command.).
>
> But I didn't find any module which addresses "&core_dir->opts"!??!?
>
> Puzzled, (and leaving for the weekend now)
>
> Martin
>
> Script started on Fri Sep 12 15:37:39 1997
> > dbx32 httpd core
> dbx V2.3C00 SINIX (Jul 28 1997)
> (dbx32) t
> file_walk(r = 0x813394c [ 1]), line 540 in "http_request.c"
> $b40, line 741 in "http_request.c"
> sub_req_lookup_file(new_file = 0x812d13e, r = 0x8130964 [ 2]), line 741 in "http_request.c"
> $b121, line 641 in "mod_autoindex.c"
> make_autoindex_entry(name = 0x812d13e, autoindex_opts = 1, d = 0x8116dd4 [ 3], r = 0x8130964 [ 4], keyid = 'N', direction = 'A'), line 641 in "mod_autoindex.c"
> index_directory(r = 0x8130964 [ 5], autoindex_conf = 0x8116dd4 [ 6]), line 1034 in "mod_autoindex.c"
> handle_autoindex(r = 0x8130964 [ 7]), line 1097 in "mod_autoindex.c"
> invoke_handler() at 0x8075cd8
> process_request_internal(r = 0x8130964 [ 8]), line 1058 in "http_request.c"
> process_request(r = 0x8130964 [ 9]), line 1074 in "http_request.c"
> child_main() at 0x807208f
> make_child() at 0x8072211
> startup_children() at 0x807234a
> standalone_main() at 0x8072703
> .main(0x6, 0x80476ec, 0x8047708) at 0x8072d31
> _start() at 0x804aa33
> (dbx32) p *r
> {
> pool = 0x8131914 [ 1]
> connection = 0x8130904 [ 2]
> server = 0x8128610 [ 3]
> next = (nilv)
> prev = (nilv)
> main = (nilv)
> the_request = 0x8131dcc
> assbackwards = 0
> proxyreq = 0
> header_only = 0
> protocol = 0x8131df4
> proto_num = 1000
> hostname = (nilv)
> hostlen = 0
> request_time = 874071440
> status_line = "200 OK"
> status = 200
> method = 0x8131ddc
> method_number = 0
> allowed = 0
> sent_bodyct = 1
> bytes_sent = 136
> mtime = 0
> chunked = 0
> byterange = 0
> boundary = (nilv)
> range = (nilv)
> clength = 0
> remaining = 0
> read_length = 0
> read_body = 0
> read_chunked = 0
> headers_in = 0x813193c [ 4]
> headers_out = 0x8131c8c [ 5]
> err_headers_out = 0x8131ccc [ 6]
> subprocess_env = 0x8131ae4 [ 7]
> notes = 0x8131d0c [ 8]
> content_type = "text/html"
> handler = (nilv)
> content_encoding = (nilv)
> content_language = (nilv)
> content_languages = (nilv)
> no_cache = 0
> no_local_copy = 0
> uri = 0x8131dec
> filename = 0x81320fc
> path_info = 0x8131f2c
> args = (nilv)
> finfo = {
> st_dev = 11010059
> st_pad1 = [
> 0: 0
> 1: 0
> 2: 0
> ]
> st_ino = 66
> st_mode = 17897
> st_nlink = 15
> st_uid = 2800
> st_gid = 101
> st_rdev = 0
> st_pad2 = [
> 0: 0
> 1: 0
> ]
> st_size = 1024
> st_pad3 = 0
> st_atim = {
> tv_sec = 874070675
> tv_nsec = 400000000
> }
> st_mtim = {
> tv_sec = 873219777
> tv_nsec = 790001000
> }
> st_ctim = {
> tv_sec = 873219777
> tv_nsec = 790001000
> }
> st_blksize = 1024
> st_blocks = 2
> st_fstype = "ufs"
> st_pad4 = [
> 0: 0
> 1: 0
> 2: 0
> 3: 0
> 4: 0
> 5: 0
> 6: 0
> 7: 0
> ]
> }
> parsed_uri = {
> is_initialized = 1
> has_scheme = 0
> has_user = 0
> has_password = 0
> has_hostname = 0
> has_port = 0
> has_path = 1
> has_args = 0
> dns_looked_up = 0
> dns_resolved = 0
> scheme = (nilv)
> user = (nilv)
> password = (nilv)
> hostname = (nilv)
> port_str = (nilv)
> path = (nilv)
> args = (nilv)
> port = 0
> hostaddr = {
> h_name = (nilv)
> h_aliases = (nilv)
> h_addrtype = 0
> h_length = 0
> h_addr_list = (nilv)
> }
> }
> per_dir_config = 0x813202c
> request_config = 0x8131d4c
> htaccess = (nilv)
> }
> (dbx32) p *.mod_autoindex.make_autoindex_entry.d
> {
> default_icon = 0x8122a8c
> icon_width = 0
> icon_height = 0
> icon_list = 0x8116dfc [ 1]
> alt_list = 0x8116e54 [ 2]
> desc_list = 0x8116eac [ 3]
> ign_list = 0x8116f04 [ 4]
> hdr_list = 0x8116f5c [ 5]
> rdme_list = 0x8116fb4 [ 6]
> opts_list = 0x811700c [ 7]
> }
> (dbx32) p *.mod_autoindex.make_autoindex_entry.d.opts_list
> {
> pool = 0x811584c [ 1]
> elt_size = 16
> nelts = 1
> nalloc = 4
> elts = 0x8117024
> }
> (dbx32) p *.mod_autoindex.make_autoindex_entry.d.rdme_list
> {
> pool = 0x811584c [ 1]
> elt_size = 16
> nelts = 1
> nalloc = 4
> elts = 0x8116fcc
> }
> (dbx32) p *.mod_autoindex.make_autoindex_entry.d.hdr_list
> {
> pool = 0x811584c [ 1]
> elt_size = 16
> nelts = 1
> nalloc = 4
> elts = 0x8116f74
> }
> (dbx32) p *.mod_autoindex.make_autoindex_entry.d.ign_list
> {
> pool = 0x811584c [ 1]
> elt_size = 16
> nelts = 8
> nalloc = 8
> elts = 0x8120074
> }
> (dbx32) p *.mod_autoindex.make_autoindex_entry.d.desc_list
> {
> pool = 0x811584c [ 1]
> elt_size = 16
> nelts = 0
> nalloc = 4
> elts = 0x8116ec4
> }
> (dbx32) p *.mod_autoindex.make_autoindex_entry.d.alt_list
> {
> pool = 0x811584c [ 1]
> elt_size = 16
> nelts = 7
> nalloc = 8
> elts = 0x8121a44
> }
> (dbx32) p *.mod_autoindex.make_autoindex_entry.d.icon_list
> {
> pool = 0x811584c [ 1]
> elt_size = 16
> nelts = 57
> nalloc = 64
> elts = 0x8120e14
> }
> (dbx32) file http_request.c
> (dbx32) l 536,540
> 536 int file_walk (request_rec *r)
> 537 {
> 538 core_dir_config *conf = get_module_config(r->per_dir_config, &core_module);
> 539 void *per_dir_defaults = r->per_dir_config;
> 540 void **file = (void **)conf->sec->elts;
> (dbx32) p *r
> {
> pool = 0x8133924 [ 1]
> connection = 0x8130904 [ 2]
> server = 0x8128610 [ 3]
> next = (nilv)
> prev = (nilv)
> main = 0x8130964 [ 4]
> the_request = 0x8131dcc
> assbackwards = 1
> proxyreq = 0
> header_only = 0
> protocol = "INCLUDED"
> proto_num = 0
> hostname = (nilv)
> hostlen = 0
> request_time = 874071440
> status_line = (nilv)
> status = 200
> method = "GET"
> method_number = 0
> allowed = 0
> sent_bodyct = 0
> bytes_sent = 0
> mtime = 0
> chunked = 0
> byterange = 0
> boundary = (nilv)
> range = (nilv)
> clength = 0
> remaining = 0
> read_length = 0
> read_body = 0
> read_chunked = 0
> headers_in = 0x813193c [ 5]
> headers_out = 0x8133d04 [ 6]
> err_headers_out = 0x8133d44 [ 7]
> subprocess_env = 0x8133b5c [ 8]
> notes = 0x8133d84 [ 9]
> content_type = (nilv)
> handler = (nilv)
> content_encoding = (nilv)
> content_language = (nilv)
> content_languages = (nilv)
> no_cache = 0
> no_local_copy = 1
> uri = 0x8133ddc
> filename = 0x8133dec
> path_info = 0x8133e1c
> args = (nilv)
> finfo = {
> st_dev = 11010059
> st_pad1 = [
> 0: 0
> 1: 0
> 2: 0
> ]
> st_ino = 14420
> st_mode = 17897
> st_nlink = 5
> st_uid = 2800
> st_gid = 101
> st_rdev = 0
> st_pad2 = [
> 0: 0
> 1: 0
> ]
> st_size = 1024
> st_pad3 = 0
> st_atim = {
> tv_sec = 873969268
> tv_nsec = 70001000
> }
> st_mtim = {
> tv_sec = 874050912
> tv_nsec = 920001000
> }
> st_ctim = {
> tv_sec = 874050912
> tv_nsec = 920001000
> }
> st_blksize = 1024
> st_blocks = 2
> st_fstype = "ufs"
> st_pad4 = [
> 0: 0
> 1: 0
> 2: 0
> 3: 0
> 4: 0
> 5: 0
> 6: 0
> 7: 0
> ]
> }
> parsed_uri = {
> is_initialized = 0
> has_scheme = 0
> has_user = 0
> has_password = 0
> has_hostname = 0
> has_port = 0
> has_path = 0
> has_args = 0
> dns_looked_up = 0
> dns_resolved = 0
> scheme = (nilv)
> user = (nilv)
> password = (nilv)
> hostname = (nilv)
> port_str = (nilv)
> path = (nilv)
> args = (nilv)
> port = 0
> hostaddr = {
> h_name = (nilv)
> h_aliases = (nilv)
> h_addrtype = 0
> h_length = 0
> h_addr_list = (nilv)
> }
> }
> per_dir_config = 0x8133e3c
> request_config = 0x8133adc
> htaccess = (nilv)
> }
> (dbx32) p r->per_dir_config
> 0x8133e3c
> (dbx32) p *conf
> {
> d = 0x73636f
> d_components = 1918989871
> opts = '/'
> opts_add = 'W'
> opts_remove = 'W'
> override = 'W'
> default_type = 0x6265572f
> satisfy = 1634746671
> auth_type = 0x44656863
> auth_name = 0x73636f
> requires = 0x462d6600 [ 1]
> response_code_strings = 0x682e5141 [ 2]
> hostname_lookups = 15
> do_rfc1413 = 2
> content_md5 = 0
> d_is_fnmatch = 0
> loglevel = 1465341743
> sec = 0x6265572f [ 3]
> r = 0x6170412f [ 4]
> }
> (dbx32) 3
> illegal address (0x6265572f)
> (dbx32) p "\x62\x65\x57\x2f"
> beW/
> (dbx32) q
> 6.99u 3.04s 7:48.06 2.1%
>
> script done on Fri Sep 12 15:47:03 1997
>
> --
> | S I E M E N S | <Ma...@mch.sni.de> | Siemens Nixdorf
> | ------------- | Voice: +49-89-636-46021 | Informationssysteme AG
> | N I X D O R F | FAX: +49-89-636-44994 | 81730 Munich, Germany
> ~~~~~~~~~~~~~~~~My opinions only, of course; pgp key available on request
>