Please take our Survey
logo       

Choosing A Webhost:
A web hosting service is a type of Internet hosting service that allows individuals and organizations to provide their own website accessible via the World Wide Web. Web hosts are companies that provide space on a server they own for use by their clients as well as providing Internet connectivity, typically in a data center. Web hosts can also provide data center space and connectivity to the Internet for servers they do not own to be located in their data center, called colocation. more...

[mp2] Win32 test failures: msg#00195

apache.mod-perl.devel

Subject: [mp2] Win32 test failures

I promised earlier today to report more detail of test failures in:

hooks/stacked_handlers2
modules/include

It turns out that the failures are very similar to those I've been seeing with

filter/both_str_con_add

so I thought I'd bring them all together.

There seems to be some kind of problem with running *both* t/api and t/apr before each of the failing tests: These commands all succeed (except for the unrelated failures in filter/in_str_consume and apr/perlio, neither of which crash Apache):

perl t/TEST t/api t/filter
perl t/TEST t/apr t/filter
perl t/TEST t/api t/hooks
perl t/TEST t/apr t/hooks
perl t/TEST t/api t/modules
perl t/TEST t/apr t/modules

but these commands all fail (and crash Apache) on the test scripts indicated above:

perl t/TEST t/api t/apr t/filter
perl t/TEST t/api t/apr t/hooks
perl t/TEST t/api t/apr t/modules

In the case of t/filter I get an Access Violation at

modperl_handler_t *handler =
((modperl_filter_ctx_t *)filter->f->ctx)->handler;

in modperl_run_filter(). It seems that filter->f->ctx was NULLed by the prior call to apr_pcalloc() within modperl_filter_new(). Here's a stack trace:

=====
modperl_run_filter(modperl_filter_t * 0x008e1cb8) line 378 + 9 bytes
modperl_output_filter_handler(ap_filter_t * 0x008e23c8, apr_bucket_brigade * 0x008e24a0) line 767 + 9 bytes
ap_pass_brigade(ap_filter_t * 0x008e23c8, apr_bucket_brigade * 0x008e24a0) line 550 + 16 bytes
XS_Apache__Filter_pass_brigade(interpreter * 0x01838014, cv * 0x00fe9904) line 197 + 14 bytes
Perl_pp_entersub(interpreter * 0x01838014) line 2818 + 16 bytes
Perl_runops_debug(interpreter * 0x01838014) line 1434 + 13 bytes
S_call_body(interpreter * 0x01838014, op * 0x02acfde0, int 0) line 2193 + 13 bytes
Perl_call_sv(interpreter * 0x01838014, sv * 0x01133040, long 4) line 2111 + 15 bytes
modperl_callback(interpreter * 0x01838014, modperl_handler_t * 0x00895ad0, apr_pool_t * 0x008e1cb8, request_rec * 0x00000000, server_rec * 0x00894c40, av * 0x00f01824) line 69 + 17 bytes
modperl_callback_run_handlers(int 0, int 5, request_rec * 0x00000000, conn_rec * 0x008e1db8, server_rec * 0x00894c40, apr_pool_t * 0x00000000, apr_pool_t * 0x00000000, apr_pool_t * 0x00000000, int 1) line 207 + 35 bytes
modperl_callback_connection(int 0, conn_rec * 0x008e1db8, int 1) line 299 + 34 bytes
modperl_process_connection_handler(conn_rec * 0x008e1db8) line 77 + 13 bytes
ap_run_process_connection(conn_rec * 0x008e1db8) line 85 + 78 bytes
ap_process_connection(conn_rec * 0x008e1db8, void * 0x008e1cf0) line 213
worker_main(long 1) line 731
_threadstartex(void * 0x0028d328) line 212 + 13 bytes
KERNEL32! 77e7d33b()
=====

In the case of t/hooks I also get an Access Violation at

modperl_handler_t *handler =
((modperl_filter_ctx_t *)filter->f->ctx)->handler;

in modperl_run_filter(). Again, filter->f->ctx is NULL, hence the access violation. Here's a stack trace:

=====
modperl_run_filter(modperl_filter_t * 0x03362240) line 378 + 9 bytes
modperl_output_filter_handler(ap_filter_t * 0x03362af8, apr_bucket_brigade * 0x03361340) line 767 + 9 bytes
ap_pass_brigade(ap_filter_t * 0x03362af8, apr_bucket_brigade * 0x03361340) line 550 + 16 bytes
modperl_wbucket_pass(modperl_wbucket_t * 0x03358160, const char * 0x03358164, unsigned int 32, int 1) line 165
modperl_wbucket_flush(modperl_wbucket_t * 0x03358160, int 1) line 183 + 26 bytes
mpxs_Apache__RequestRec_print(interpreter * 0x022e6d84, long 2, sv * * 0x024b442c, sv * * 0x024b4428) line 78 + 130 bytes
XS_Apache__RequestRec_print(interpreter * 0x022e6d84, cv * 0x024279c0) line 115 + 24 bytes
Perl_pp_entersub(interpreter * 0x022e6d84) line 2818 + 16 bytes
Perl_runops_debug(interpreter * 0x022e6d84) line 1434 + 13 bytes
S_call_body(interpreter * 0x022e6d84, op * 0x02acfd5c, int 0) line 2193 + 13 bytes
Perl_call_sv(interpreter * 0x022e6d84, sv * 0x01286158, long 4) line 2111 + 15 bytes
modperl_callback(interpreter * 0x022e6d84, modperl_handler_t * 0x00894480, apr_pool_t * 0x0084c550, request_rec * 0x0084c588, server_rec * 0x00890a98, av * 0x0278930c) line 69 + 17 bytes
modperl_callback_run_handlers(int 6, int 1, request_rec * 0x0084c588, conn_rec * 0x00000000, server_rec * 0x00890a98, apr_pool_t * 0x00000000, apr_pool_t * 0x00000000, apr_pool_t * 0x00000000, int 1) line 207 + 35 bytes
modperl_callback_per_dir(int 6, request_rec * 0x0084c588, int 1) line 283 + 34 bytes
modperl_response_handler_run(request_rec * 0x0084c588, int 1) line 847 + 13 bytes
modperl_response_handler(request_rec * 0x0084c588) line 869 + 11 bytes
ap_run_handler(request_rec * 0x0084c588) line 195 + 78 bytes
ap_invoke_handler(request_rec * 0x0084c588) line 401 + 9 bytes
ap_process_request(request_rec * 0x0084c588) line 288 + 9 bytes
ap_process_http_connection(conn_rec * 0x008e3df0) line 293 + 9 bytes
ap_run_process_connection(conn_rec * 0x008e3df0) line 85 + 78 bytes
ap_process_connection(conn_rec * 0x008e3df0, void * 0x008e3d28) line 213
worker_main(long 1) line 731
_threadstartex(void * 0x0028d328) line 212 + 13 bytes
KERNEL32! 77e7d33b()
=====

Finally, in the case of t/modules I get an Access Violation at

active = pool->active;

in apr_palloc() (Apache's srclib\apr\memory\unix\apr_pools.c, line 621). The value of pool there is not NULL, but the MSVC debugger won't expand the structure in the "Variables" window, which is (I think) normally an indication that it is uninitialised garbage. Here's a stack trace:

=====
apr_palloc(apr_pool_t * 0x434f4d53, unsigned int 280) line 621 + 3 bytes
apr_table_make(apr_pool_t * 0x434f4d53, int 8704537) line 419 + 14 bytes
ap_add_common_vars(request_rec * 0x0335d208) line 186 + 22 bytes
modperl_env_request_populate(interpreter * 0x0224e5dc, request_rec * 0x0335d208) line 171
modperl_response_handler_cgi(request_rec * 0x0335d208) line 899 + 13 bytes
ap_run_handler(request_rec * 0x0335d208) line 195 + 78 bytes
ap_invoke_handler(request_rec * 0x0335d208) line 401 + 9 bytes
ap_run_sub_req(request_rec * 0x0335d208) line 1893 + 9 bytes
handle_include(include_filter_ctx * 0x008f02f0, apr_bucket_brigade * * 0x02acfe6c, request_rec * 0x0084c588, ap_filter_t * 0x0084dff0, apr_bucket * 0x0091ddb0, apr_bucket * * 0x02acfdfc) line 1335 + 16 bytes
send_parsed_content(apr_bucket_brigade * * 0x02acfe6c, request_rec * 0x0084c588, ap_filter_t * 0x0084dff0) line 3111 + 30 bytes
includes_filter(ap_filter_t * 0x0084dff0, apr_bucket_brigade * 0x033623d8) line 3430 + 17 bytes
ap_pass_brigade(ap_filter_t * 0x0084dff0, apr_bucket_brigade * 0x0084e148) line 550 + 16 bytes
default_handler(request_rec * 0x0084c588) line 3558 + 19 bytes
ap_run_handler(request_rec * 0x0084c588) line 195 + 78 bytes
ap_invoke_handler(request_rec * 0x0084c588) line 401 + 9 bytes
ap_process_request(request_rec * 0x0084c588) line 288 + 9 bytes
ap_process_http_connection(conn_rec * 0x008eff40) line 293 + 9 bytes
ap_run_process_connection(conn_rec * 0x008eff40) line 85 + 78 bytes
ap_process_connection(conn_rec * 0x008eff40, void * 0x008efe78) line 213
worker_main(long 1) line 731
_threadstartex(void * 0x0028d328) line 212 + 13 bytes
KERNEL32! 77e7d33b()
=====

So there you have it. All we need to do now is work out what's wrong with t/api + t/apr :-) Over to someone else for that, I'm afraid, 'cos I haven't got clue.

- Steve


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
qplus.devel/200...    network.jabber....    debian.qa-packa...    encryption.gpg....    python.dabo.dev...    uclinux.devel/2...    science.mathema...    recreation.pesc...    kernel.ck/2004-...    mozilla.devel.e...    tex.latex.prosp...    ietf.multi6/200...    bbc.cvs/2002-11...    xfree86.newbie/...    jakarta.taglibs...    altlinux.hardwa...    comedi/2002-05/...    horde.bugs/2004...    games.diplomacy...    finance.e-gold....    web.dom.test-su...    lang.ruby.rails...    os.netbsd.devel...    video.gstreamer...   
Home | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe

Navigation