Hi,
some of the recent changes in the proxy code introduced some
regressions:
Two proxy-related tests fail:
t/modules/rewrite.t (Wstat: 0 Tests: 29 Failed: 2)
Failed tests: 23-24
Also, the runtime of the suite seems to have increased greatly for me
(from around 80 to 360 seconds). I haven't made detailed measurements,
but my feeling is that most of the time is spent in the ssl/proxy.t
and modules/proxy.t tests.
And there is a segfault (triggered by the test suite):
Program terminated with signal 11, Segmentation fault.
#0 0xf7715e5d in apr_brigade_cleanup (data=0xa023a28) at
buckets/apr_brigade.c:44
44 buckets/apr_brigade.c: No such file or directory.
in buckets/apr_brigade.c
(gdb) bt full
#0 0xf7715e5d in apr_brigade_cleanup (data=0xa023a28) at
buckets/apr_brigade.c:44
No locals.
#1 0xf70f9d20 in ap_proxy_http_process_response (p=0x9fe55c0,
r=0x9fe5600, backend=0x9fa9510,
worker=0x9fa1908, conf=0x9cb3bb0, server_portstr=0xffc80728
":8529") at mod_proxy_http.c:1931
readbytes = 8
rv = 0
mode = APR_NONBLOCK_READ
finish = 1
rc = 0
c = 0x9fa5698
buffer = "\000\nntent-Type\000
text/html\000\n4bc0\"\000\n11:50:15 GMT\000\ndev OpenSSL/0.9.8o
DAV/2\000\nlete to 127.0.0.1:8529 (localhost)\000\000referer:
\000*)\000\000referer:
\000w\000\000\000G\271X\367\025\000\000\000\364OZ\367\270\346\307\377\211\270X\367\340P\270\t\307\347\307\377\000\000\000\000\000\000\000\000\001\000\000\000$\024\022\367\330\346\307\377\"\322\b\b\340P\270\t\340P\270\t\002\000\000\000$\024\022\367\001\000\000\000\210\034\372\t\210\a\310\377\t\327\b\b\232\332\021\367)\004\000\000;
\000\000\000\a\000\000\000\000\000\000\000"...
buf = 0xa00aeb8 "text/html"
keepchar = 32 ' '
rp = 0xa023a48
e = 0xf6e61e00
bb = 0xa023a28
tmp_bb = 0xa00a988
pass_bb = 0xa023a38
len = 15
backasswards = 0
interim_response = 0
pread_len = 0
save_table = 0xa00a9a0
backend_broke = 0
hop_by_hop_hdrs = {0xf70fac8e "Keep-Alive", 0xf70fb4fd "Proxy-
Authenticate", 0xf70fac99 "TE",
0xf70fac9c "Trailer", 0xf70faca4 "Upgrade", 0x0}
i = 5
te = 0x0
original_status = 200
proxy_status = 200
original_status_line = 0x0
proxy_status_line = 0xa00a998 "200 OK"
origin = 0x9fab6c0
old_timeout = 0
dconf = 0x9cb47c8
do_100_continue = 0
#2 0xf70fa6d5 in proxy_http_handler (r=0x9fe5600, worker=0x9fa1908,
conf=0x9cb3bb0,
url=0x9feefae
"http://localhost:8529/modules/rewrite/foo%20bar.html", proxyname=0x0,
proxyport=0)
at mod_proxy_http.c:2133
locurl = 0x9fef288 "/modules/rewrite/foo%20bar.html"
status = 0
server_portstr =
":8529\000X\367\300U\376\t\320\366\021\367\001\000\000\000\246\223\021\367\250\361\376\t/\000\000"
scheme = 0x9fef230 "http"
proxy_function = 0xf70fb40d "HTTP"
u = 0x9feefb2
"://localhost:8529/modules/rewrite/foo%20bar.html"
backend = 0x9fa9510
is_ssl = 0
c = 0x9fa5698
retry = 0
p = 0x9fe55c0
uri = 0x9fef200
#3 0xf7116278 in proxy_run_scheme_handler (r=0x9fe5600,
worker=0x9fa1908, conf=0x9cb3bb0,
url=0x9feefae
"http://localhost:8529/modules/rewrite/foo%20bar.html", proxyhost=0x0,
proxyport=0)
at mod_proxy.c:2456
pHook = 0x9e68e58
n = 0
rv = -3667972
#4 0xf71126de in proxy_handler (r=0x9fe5600) at mod_proxy.c:1067
url = 0x9feefae
"http://localhost:8529/modules/rewrite/foo%20bar.html"
uri = 0x9feefae
"http://localhost:8529/modules/rewrite/foo%20bar.html"
scheme = 0x9fef168 "http"
p = 0x9feefb2
"://localhost:8529/modules/rewrite/foo%20bar.html"
p2 = 0x1 <Address 0x1 out of bounds>
sconf = 0x9bb97b0
conf = 0x9cb3bb0
proxies = 0x9cb3c48
ents = 0x9cb3c60
i = 0
rc = 167663584
access_status = 0
direct_connect = 0
str = 0x0
maxfwd = -1
balancer = 0x0
worker = 0x9fa1908
attempts = 0
max_attempts = 0
list = 0x9cb3e88
#5 0x08086ff7 in ap_run_handler (r=0x9fe5600) at config.c:165
pHook = 0x9e681c0
n = 2
rv = -1
#6 0x08087716 in ap_invoke_handler (r=0x9fe5600) at config.c:406
handler = 0x0
p = 0xf758fd9c
"U\211\345S\203\354$\350\357'\377\377\201\303LR\001"
result = 0
old_handler = 0xf6e72700 "proxy-server"
ignore = 0x0
#7 0x0809ad8c in ap_process_async_request (r=0x9fe5600) at
http_request.c:316
c = 0x9fa5698
access_status = 0
#8 0x0809ae4c in ap_process_request (r=0x9fe5600) at
http_request.c:361
bb = 0x9fa5698
b = 0x9fe5600
c = 0x9fa5698
rv = 167666464
#9 0x080979f2 in ap_process_http_sync_connection (c=0x9fa5698) at
http_core.c:186
r = 0x9fe5600
cs = 0x9fa5a38
csd = 0x0
mpm_state = 0
#10 0x08097b06 in ap_process_http_connection (c=0x9fa5698) at
http_core.c:227
No locals.
#11 0x0809127b in ap_run_process_connection (c=0x9fa5698) at
connection.c:41
pHook = 0x9e687f0
n = 3
rv = -1
#12 0x08091683 in ap_process_connection (c=0x9fa5698, csd=0x9fa5500)
at connection.c:188
rc = -2
#13 0xf777ef85 in child_main (child_num_arg=1) at prefork.c:667
current_conn = 0x9fa5698
csd = 0x9fa5500
thd = 0x9fa18d8
osthd = 4147828480
ptrans = 0x9fa54c0
allocator = 0x9fa1810
status = 0
i = -1
lr = 0x9b857c0
pollset = 0x9fa1c90
sbh = 0x9fa1c88
bucket_alloc = 0x9fd9590
last_poll_idx = 1
lockfile = 0x0
#14 0xf777f1ca in make_child (s=0x9bb9620, slot=1) at prefork.c:762
pid = 0
#15 0xf777f243 in startup_children (number_to_start=1) at
prefork.c:780
i = 1
#16 0xf777f68b in prefork_run (_pconf=0x9b870a8, plog=0x9bb5418,
s=0x9bb9620) at prefork.c:951
index = -3666824
remaining_children_to_start = 2
rv = 0
#17 0x08070e25 in ap_run_mpm (pconf=0x9b870a8, plog=0x9bb5418,
s=0x9bb9620) at mpm_common.c:92
pHook = 0x9e68930
n = 0
rv = 5
#18 0x0806b873 in main (argc=9, argv=0xffc80e64) at main.c:741
c = 68 'D'
configtestonly = 0
showcompile = 0
confname = 0xffc812ed "/home/sf/apache/perl-
framework/t/conf/httpd.conf"
def_server_root = 0xffc812c8 "/home/sf/apache/perl-
framework/t"
temp_error_log = 0x0
error = 0x0
process = 0x9b85130
pconf = 0x9b870a8
plog = 0x9bb5418
ptemp = 0x9bc7870
pcommands = 0x9b89120
opt = 0x9b891c0
rv = 0
mod = 0x80ad60c
opt_arg = 0xffc8132d "PERL_USEITHREADS"
signal_server = 0