Greetings

Doug McEachern wrote:
[...]
> avoiding use of PL_sv_no has cured all segfaults on win32.  
> the fixes have 
> been checked into cvs.
> there are still a few tests that fail, but none that trigger 
> a segfault.

With the latest nodperl CVS snapshot the tally of the tests is much
improved.
There is a residual crash at dir_config.t (WinNT SP6 - MS Visual
Studio 6 SP3).

The debugger shows apache (debug version) going through the
ap_invoke_handler sequence before dumping me in the middle of
mod_perl's assembly. When it segfaults the stack (not cleared, this
time) shows a call into modperl the a trip into perl56.dll followed by
a call into request_util then modperl again (where it dies).

I re-ran the test suite without dir_config and all crashes go away,
though a few tests still fail.

At this point, I made a debug version of mod_perl (now possible - the
compiler warns about replacements of /O1 with /Od) and - lo and
behold! - the crash disappeared (darn).  Also a few of the previously
failing tests now succeed

The tallies (with/without dir_config.t, and nmake test DEBUG) are
appendend below. Note that, in the first one, all tests coming after
dir_config fail ('coz apache is deeply unsettled, I think)

Cheers,
alf

Using the following snapshot:

modperl-2.0_20020513043636.tar.gz
httpd-2.0_20020506161223.tar.gz
apr-util_20020506162813.tar.gz
apr_20020506162759.tar.gz

-- output of nmake test --
D:\Apache2/bin/Apache.exe  -d D:/builds/modperl-2.0/t -f D:/builds/mo
/conf/httpd.conf -DAPACHE2 -DPERL_USEITHREADS
using Apache/2.0.37-dev (winnt MPM)
waiting for server to start: 00:00[Mon May 13 11:42:50 2002] [info] 1
modules loaded
[Mon May 13 11:42:50 2002] [info] 5 APR:: modules loaded
[Mon May 13 11:42:50 2002] [info] base server + 6 vhosts ready to run
[Mon May 13 11:42:50 2002] [info] 11 Apache:: modules loaded
[Mon May 13 11:42:50 2002] [info] 5 APR:: modules loaded
[Mon May 13 11:42:50 2002] [info] base server + 6 vhosts ready to run
END in modperl_extra.pl, pid=309
END in modperl_extra.pl, pid=309
END in modperl_extra.pl, pid=309
END in modperl_extra.pl, pid=309
END in modperl_extra.pl, pid=309
END in modperl_extra.pl, pid=309
END in modperl_extra.pl, pid=309
waiting for server to start: ok (waited 1 secs)
server localhost:8529 started
server localhost:8530 listening (TestDirective::perlmodule)
server localhost:8531 listening (TestDirective::perlrequire)
server localhost:8532 listening (TestProtocol::echo)
server localhost:8533 listening (TestProtocol::echo_filter)
server localhost:8534 listening (TestProtocol::eliza)
server localhost:8535 listening (TestFilter::input_msg)
apache\cgihandler........ok
apache\compat............ok
apache\compat2...........ok
apache\conftree..........ok
apache\constants.........ok
apache\post..............ok
apache\read..............ok
apache\scanhdrs..........ok
apache\subprocess........skipped: perl < 5.7.3, cannot find module 'A

apache\write.............ok
api\access...............ok
api\aplog................ok
api\conn_rec.............ok
api\lookup_uri...........ok
api\lookup_uri2..........ok
api\module...............FAILED test 3
        Failed 1/13 tests, 92.31% okay
api\r_subclass...........ok
api\request_rec..........ok
api\response.............ok
api\rutil................ok
api\send_fd..............ok
api\sendfile.............ok
api\server_rec...........ok
api\server_util..........ok
api\uri..................ok
apr\base64...............ok
apr\constants............ok
apr\date.................ok
apr\netlib...............ok
apr\perlio...............skipped: iolayers is not available with this
 Perl
apr\pool.................ok
apr\string...............ok
apr\table................ok
apr\util.................ok
apr\uuid.................ok
directive\env............FAILED tests 1-3
        Failed 3/4 tests, 25.00% okay
directive\perlmodule.....ok
directive\perlrequire....ok
directive\setupenv.......ok
filter\api...............ok
filter\buckets...........ok
filter\input_body........ok
filter\input_msg.........ok
filter\lc................ok
filter\reverse...........ok
hooks\access.............ok
hooks\authen.............ok
hooks\authz..............ok
hooks\fixup..............ok
hooks\headerparser.......ok
hooks\init...............ok
hooks\trans..............ok
modperl\dir_config.......FAILED before any test output arrived
modperl\endav............FAILED before any test output arrived
modperl\env..............FAILED before any test output arrived
modperl\exit.............FAILED before any test output arrived
modperl\getc.............FAILED tests 1-2
        Failed 2/2 tests, 0.00% okay
modperl\pnotes...........FAILED before any test output arrived
modperl\print............FAILED before any test output arrived
modperl\printf...........FAILED before any test output arrived
modperl\readline.........FAILED tests 1-2
        Failed 2/2 tests, 0.00% okay
modperl\sameinterp.......must pass an interpreter id to work with at
odperl-2.0/Apache-Test/lib/Apache/TestRequest.pm line 466.
modperl\sameinterp.......dubious
        Test returned status 77 (wstat 19712, 0x4d00)
DIED. FAILED tests 1-12
        Failed 12/12 tests, 0.00% okay
modules\cgi..............FAILED tests 1-4
        Failed 4/5 tests, 20.00% okay
modules\cgiupload........FAILED tests 1-2
        Failed 2/2 tests, 0.00% okay
modules\include..........FAILED tests 1-6
        Failed 6/6 tests, 0.00% okay
protocol\echo............Can't use an undefined value as a symbol ref
rotocol\echo.t line 17.
protocol\echo............dubious
        Test returned status 77 (wstat 19712, 0x4d00)
DIED. FAILED tests 1-3
        Failed 3/3 tests, 0.00% okay
protocol\echo_filter.....Can't use an undefined value as a symbol ref
rotocol\echo_filter.t line 17.
protocol\echo_filter.....dubious
        Test returned status 77 (wstat 19712, 0x4d00)
DIED. FAILED tests 1-3
        Failed 3/3 tests, 0.00% okay
protocol\eliza...........skipped: cannot find module 'Chatbot::Eliza'
Failed Test            Stat Wstat Total Fail  Failed  List of Failed
---------------------------------------------------------------------
api\module.t                         13    1   7.69%  3
directive\env.t                       4    3  75.00%  1-3
modperl\dir_config.t                 ??   ??       %  ??
modperl\endav.t                      ??   ??       %  ??
modperl\env.t                        ??   ??       %  ??
modperl\exit.t                       ??   ??       %  ??
modperl\getc.t                        2    2 100.00%  1-2
modperl\pnotes.t                     ??   ??       %  ??
modperl\print.t                      ??   ??       %  ??
modperl\printf.t                     ??   ??       %  ??
modperl\readline.t                    2    2 100.00%  1-2
modperl\sameinterp.t     77 19712    12   12 100.00%  1-12
modules\cgi.t                         5    4  80.00%  1-4
modules\cgiupload.t                   2    2 100.00%  1-2
modules\include.t                     6    6 100.00%  1-6
protocol\echo.t          77 19712     3    3 100.00%  1-3
protocol\echo_filter.t   77 19712     3    3 100.00%  1-3
3 tests skipped.
!!! : error running tests (please examine D:t\logs\error_log)
NMAKE : fatal error U1077: 'D:\Perl\bin\perl.exe' : return code '0x1'
Stop.

---nmake test output end ----


-- output of all tests *without dir_config* --
D:\Apache2/bin/Apache.exe  -d D:/builds/modperl-2.0/t -f
D:/builds/modperl-2.0/t/conf/httpd.conf -DAPACHE2 -DPERL_USEITHREADS
using Apache/2.0.37-dev (winnt MPM)
waiting for server to start: 00:00[Mon May 13 11:59:32 2002] [info] 12
Apache::
modules loaded
[Mon May 13 11:59:32 2002] [info] 5 APR:: modules loaded
[Mon May 13 11:59:32 2002] [info] base server + 6 vhosts ready to run tests
[Mon May 13 11:59:32 2002] [info] 11 Apache:: modules loaded
[Mon May 13 11:59:32 2002] [info] 5 APR:: modules loaded
[Mon May 13 11:59:32 2002] [info] base server + 6 vhosts ready to run tests
END in modperl_extra.pl, pid=185
END in modperl_extra.pl, pid=185
END in modperl_extra.pl, pid=185
END in modperl_extra.pl, pid=185
END in modperl_extra.pl, pid=185
END in modperl_extra.pl, pid=185
END in modperl_extra.pl, pid=185
waiting for server to start: ok (waited 0 secs)
server localhost:8529 started
server localhost:8530 listening (TestDirective::perlmodule)
server localhost:8531 listening (TestDirective::perlrequire)
server localhost:8532 listening (TestProtocol::echo)
server localhost:8533 listening (TestProtocol::echo_filter)
server localhost:8534 listening (TestProtocol::eliza)
server localhost:8535 listening (TestFilter::input_msg)
apache/cgihandler........ok
apache/compat............ok
apache/compat2...........ok
apache/conftree..........ok
apache/constants.........ok
apache/post..............ok
apache/read..............ok
apache/scanhdrs..........ok
apache/subprocess........skipped: perl < 5.7.3, cannot find module
'APR::PerlIO'
apache/write.............ok
api/access...............ok
api/aplog................ok
api/conn_rec.............ok
api/lookup_uri...........ok
api/lookup_uri2..........ok
api/module...............FAILED test 3
        Failed 1/13 tests, 92.31% okay
api/r_subclass...........ok
api/request_rec..........ok
api/response.............ok
api/rutil................ok
api/send_fd..............ok
api/sendfile.............ok
api/server_rec...........ok
api/server_util..........ok
api/uri..................ok
apr/base64...............ok
apr/constants............ok
apr/date.................ok
apr/netlib...............ok
apr/perlio...............skipped: iolayers is not available with this
version of Perl
apr/pool.................ok
apr/string...............ok
apr/table................ok
apr/util.................ok
apr/uuid.................ok
directive/env............FAILED tests 1-3
        Failed 3/4 tests, 25.00% okay
directive/perlmodule.....ok
directive/perlrequire....ok
directive/setupenv.......ok
filter/api...............ok
filter/buckets...........ok
filter/input_body........ok
filter/input_msg.........ok
filter/lc................ok
filter/reverse...........ok
hooks/access.............ok
hooks/authen.............ok
hooks/authz..............ok
hooks/fixup..............ok
hooks/headerparser.......ok
hooks/init...............ok
hooks/trans..............ok
modperl/endav............ok
modperl/env..............ok
modperl/exit.............ok
modperl/getc.............ok
modperl/pnotes...........ok
modperl/print............ok
modperl/printf...........ok
modperl/readline.........ok
modperl/sameinterp.......ok
modules/cgi..............ok
modules/cgiupload........ok
modules/include..........ok
protocol/echo............ok
protocol/echo_filter.....ok
protocol/eliza...........skipped: cannot find module 'Chatbot::Eliza'
Failed Test     Stat Wstat Total Fail  Failed  List of Failed
----------------------------------------------------------------------------
---
api/module.t                  13    1   7.69%  3
directive/env.t                4    3  75.00%  1-3
3 tests skipped.
!!! : error running tests (please examine D:t\logs\error_log)

-- END output of all tests *without dir_config* --


-- output of nmake test modperl DEBUG--
D:\builds\modperl-2.0>nmake test

Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

        cd "src/modules/perl" && NMAKE

Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

        D:\Perl\bin\perl.exe -Iblib\arch/Apache2 -Iblib\lib/Apache2  t/TEST
-clean
          D:\Perl\bin\perl.exe -Iblib\arch/Apache2 -Iblib\lib/Apache2
t/TEST
*** : cannot build c-modules without apxs
D:\Apache2/bin/Apache.exe  -d D:/builds/modperl-2.0/t -f
D:/builds/modperl-2.0/t
/conf/httpd.conf -DAPACHE2 -DPERL_USEITHREADS
using Apache/2.0.37-dev (winnt MPM)
waiting for server to start: 00:00[Mon May 13 12:11:57 2002] [info] 12
Apache::
modules loaded
[Mon May 13 12:11:57 2002] [info] 5 APR:: modules loaded
[Mon May 13 12:11:57 2002] [info] base server + 6 vhosts ready to run tests
[Mon May 13 12:11:57 2002] [info] 11 Apache:: modules loaded
[Mon May 13 12:11:57 2002] [info] 5 APR:: modules loaded
[Mon May 13 12:11:57 2002] [info] base server + 6 vhosts ready to run tests
END in modperl_extra.pl, pid=342
END in modperl_extra.pl, pid=342
END in modperl_extra.pl, pid=342
END in modperl_extra.pl, pid=342
END in modperl_extra.pl, pid=342
END in modperl_extra.pl, pid=342
END in modperl_extra.pl, pid=342
waiting for server to start: ok (waited 1 secs)
server localhost:8529 started
server localhost:8530 listening (TestDirective::perlmodule)
server localhost:8531 listening (TestDirective::perlrequire)
server localhost:8532 listening (TestProtocol::echo)
server localhost:8533 listening (TestProtocol::echo_filter)
server localhost:8534 listening (TestProtocol::eliza)
server localhost:8535 listening (TestFilter::input_msg)
apache\cgihandler........ok
apache\compat............ok
apache\compat2...........ok
apache\conftree..........ok
apache\constants.........ok
apache\post..............ok
apache\read..............ok
apache\scanhdrs..........ok
apache\subprocess........skipped: perl < 5.7.3, cannot find module
'APR::PerlIO'
apache\write.............ok
api\access...............ok
api\aplog................ok
api\conn_rec.............ok
api\lookup_uri...........ok
api\lookup_uri2..........ok
api\module...............FAILED test 3
        Failed 1/13 tests, 92.31% okay
api\r_subclass...........ok
api\request_rec..........ok
api\response.............ok
api\rutil................ok
api\send_fd..............ok
api\sendfile.............ok
api\server_rec...........ok
api\server_util..........ok
api\uri..................ok
apr\base64...............ok
apr\constants............ok
apr\date.................ok
apr\netlib...............ok
apr\perlio...............skipped: iolayers is not available with this
version of Perl
apr\pool.................ok
apr\string...............ok
apr\table................ok
apr\util.................ok
apr\uuid.................ok
directive\env............ok
directive\perlmodule.....ok
directive\perlrequire....ok
directive\setupenv.......ok
filter\api...............ok
filter\buckets...........ok
filter\input_body........ok
filter\input_msg.........ok
filter\lc................ok
filter\reverse...........ok
hooks\access.............ok
hooks\authen.............ok
hooks\authz..............ok
hooks\fixup..............ok
hooks\headerparser.......ok
hooks\init...............ok
hooks\trans..............ok
modperl\dir_config.......ok
modperl\endav............ok
modperl\env..............ok
modperl\exit.............ok
modperl\getc.............ok
modperl\pnotes...........ok
modperl\print............ok
modperl\printf...........ok
modperl\readline.........ok
modperl\sameinterp.......ok
modules\cgi..............ok
modules\cgiupload........ok
modules\include..........ok
protocol\echo............ok
protocol\echo_filter.....ok
protocol\eliza...........skipped: cannot find module 'Chatbot::Eliza'
Failed Test  Stat Wstat Total Fail  Failed  List of Failed
----------------------------------------------------------------------------
---
api\module.t               13    1   7.69%  3
3 tests skipped.
!!! : error running tests (please examine D:t\logs\error_log)
NMAKE : fatal error U1077: 'D:\Perl\bin\perl.exe' : return code '0x1'
Stop.
-- END output of nmake test modperl DEBUG--

Reply via email to