Return-Path: X-Original-To: apmail-perl-dev-archive@www.apache.org Delivered-To: apmail-perl-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 97D9A10B2E for ; Mon, 4 Nov 2013 13:44:06 +0000 (UTC) Received: (qmail 62603 invoked by uid 500); 4 Nov 2013 13:44:04 -0000 Delivered-To: apmail-perl-dev-archive@perl.apache.org Received: (qmail 62399 invoked by uid 500); 4 Nov 2013 13:43:58 -0000 Mailing-List: contact dev-help@perl.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@perl.apache.org Received: (qmail 62392 invoked by uid 99); 4 Nov 2013 13:43:56 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Nov 2013 13:43:56 +0000 X-ASF-Spam-Status: No, hits=2.7 required=5.0 tests=HTML_MESSAGE,MISSING_HEADERS,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of trawick@gmail.com designates 209.85.217.171 as permitted sender) Received: from [209.85.217.171] (HELO mail-lb0-f171.google.com) (209.85.217.171) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Nov 2013 13:43:50 +0000 Received: by mail-lb0-f171.google.com with SMTP id x18so5505597lbi.30 for ; Mon, 04 Nov 2013 05:43:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:cc :content-type; bh=3wJRX4GiBkubQdtUQr5Pt7nu8+trSWwtIr1BBSNluzY=; b=b3tJ6lJ5XiVDUZj6ifV7/1b7H7z2sPpCWhecnaGrKTMip2miGSK2o5vAlBCUTmtIPZ Hb8x95wAlr4YfG+EcjxZpC8ivd9S/7QY86fgfCqpNN84LIOny+g4rJAfSbnykubWzGFB MbqH2AKJnmtGHeFwPu5vW7/zVwfZynOjiBhVEUqkA9Fqz+D3NFQsRqsdT3EtCKpax/8k XRinRZPi8ycBsKsf4RUCJ1+9Vxs9hFBfRG1zPcT5LkUX8RfS7u0He8OQe3hfDC4ouzti dw4Sg0daygYNp1awB2PbfOFAkMIymRL1bt36ObSmaf7zDKIGChSoPo0OcQV5yLvM2HiS D8Yw== MIME-Version: 1.0 X-Received: by 10.152.182.226 with SMTP id eh2mr101117lac.49.1383572609810; Mon, 04 Nov 2013 05:43:29 -0800 (PST) Received: by 10.114.187.71 with HTTP; Mon, 4 Nov 2013 05:43:29 -0800 (PST) In-Reply-To: References: <5239812D.4040906@redhat.com> <52398EF8.2070506@redhat.com> <526FA19B.6050504@redhat.com> <5270E889.7070001@redhat.com> Date: Mon, 4 Nov 2013 08:43:29 -0500 Message-ID: Subject: Re: httpd24 on Windows? From: Jeff Trawick Cc: dev@perl.apache.org Content-Type: multipart/alternative; boundary=001a11349b22edc4b604ea5a1937 X-Virus-Checked: Checked by ClamAV on apache.org --001a11349b22edc4b604ea5a1937 Content-Type: text/plain; charset=ISO-8859-1 On Mon, Nov 4, 2013 at 4:22 AM, Steve Hay wrote: > On 30 October 2013 18:24, Steve Hay wrote: > > I've now tried other perls (5.16.0, 5.18.0 and 5.19.4) in other build > > configurations (with/without PERL_IMPLICIT_SYS) and can confirm that > > the crash only occurs with perls built with PERL_IMPLICIT_SYS enabled. > > I generally use perl with that disabled (although that isn't the > > default configuration), so that's probably what I was doing when I had > > this working back in July. > > > > That is indeed a Windows-specific thing, unfortunately :-/ > > > > I will see what I can do to fix it since most users will indeed have > > the default configuration (certainly ActivePerl and Strawberry Perl > > both do) and hence experience the crash. > > As per your suggestion on the other thread, I've now merged the > httpd24 and threading branches togther into a new branch called > httpd24threading and I'm delighted to see that it does indeed fix the > add_config.t crash when PERL_IMPLICIT_SYS is defined :-) > > There is one oddity when starting up the server: it complains that > "KeepAliveTimeout 300" has the wrong format! I don't understand this. > The directive is not new and that syntax (number of seconds) has long > been valid. httpd-2.3.2 added a new millisecond format (append "ms"), > but that shouldn't affect this: > http://httpd.apache.org/docs/2.4/mod/core.html#keepalivetimeout The most likely cause would seem to be some stray character after the 300 (e.g., maybe a ^M on Unix)??? The next most likely (also unlikely) cause would seem to be that per-thread errno is hosed in your httpd build for some reason??? (yeah, I know how bogus this sounds :) ) 2.2 parses the number via the very forgiving atoi(). 2.4 parses the number with apr_strtoi64() which manipulates errno and also by checking what comes after the number, which also manipulates errno and is sensitive to the first character that apr_strtoi64() can't parse Maybe the quickest way to get to the bottom of it is to add some tracing to the three "return some-error" paths in server/util.c::ap_timeout_parameter_parse(). > > Simply deleting that line from > t/response/TestDirective/perlcleanuphandler.pm works around it and the > test still passes, but I'd rather understand what the problem is. > > Otherwise, my current test summary report is as follows: > > Test Summary Report > ------------------- > t\apache\subprocess.t (Wstat: 0 Tests: 1 Failed: 0) > Parse errors: Bad plan. You planned 5 tests but ran 1. > t\api\access2_24.t (Wstat: 0 Tests: 6 Failed: 3) > Failed tests: 2, 5-6 > t\compat\conn_rec.t (Wstat: 0 Tests: 2 Failed: 0) > Parse errors: Bad plan. You planned 4 tests but ran 2. > t\directive\perlloadmodule2.t (Wstat: 0 Tests: 3 Failed: 1) > Failed test: 3 > t\hooks\authen_digest.t (Wstat: 0 Tests: 7 Failed: 4) > Failed tests: 4-7 > t\modperl\interpreter.t (Wstat: 0 Tests: 0 Failed: 0) > Parse errors: Bad plan. You planned 17 tests but ran 0. > t\modperl\local_env.t (Wstat: 0 Tests: 6 Failed: 1) > Failed test: 6 > t\modperl\merge.t (Wstat: 0 Tests: 10 Failed: 3) > Failed tests: 3, 6, 9 > t\modperl\merge2.t (Wstat: 0 Tests: 10 Failed: 3) > Failed tests: 3, 6, 9 > t\modperl\merge3.t (Wstat: 0 Tests: 10 Failed: 3) > Failed tests: 3, 6, 9 > t\modules\cgi.t (Wstat: 0 Tests: 5 Failed: 5) > Failed tests: 1-5 > t\modules\cgi2.t (Wstat: 0 Tests: 5 Failed: 5) > Failed tests: 1-5 > t\modules\cgipost.t (Wstat: 0 Tests: 6 Failed: 5) > Failed tests: 2-6 > t\modules\cgipost2.t (Wstat: 0 Tests: 6 Failed: 5) > Failed tests: 2-6 > t\modules\cgiupload.t (Wstat: 0 Tests: 2 Failed: 2) > Failed tests: 1-2 > t\modules\cgiupload2.t (Wstat: 0 Tests: 2 Failed: 2) > Failed tests: 1-2 > t\protocol\echo_block.t (Wstat: 0 Tests: 3 Failed: 2) > Failed tests: 2-3 > t\protocol\echo_nonblock.t (Wstat: 0 Tests: 3 Failed: 1) > Failed test: 2 > t\protocol\echo_timeout.t (Wstat: 0 Tests: 5 Failed: 4) > Failed tests: 2-5 > t\protocol\pseudo_http.t (Wstat: 0 Tests: 13 Failed: 9) > Failed tests: 3-8, 11-13 > Files=252, Tests=2484, 815 wallclock secs ( 2.43 usr + 0.53 sys = 2.96 > CPU) > Result: FAIL > > That's using my own debugging mode builds of perl 5.19.4 and httpd > 2.4.4. It also works (with fewer test failures) using 2.2.25. > > I will try with release mode builds for comparison, and also see how > the above list compares with the standard httpd24 branch (using a perl > without PERL_IMPLICIT_SYS) to see whether this merged branch has > introduced new failures into httpd24. > > Please could somebody in non-Windows-land give the httpd24threading > branch a try and report back what it's looking like there? > > I think we could be getting close to merging this all into trunk! :-) > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org > For additional commands, e-mail: dev-help@perl.apache.org > > -- Born in Roswell... married an alien... http://emptyhammock.com/ --001a11349b22edc4b604ea5a1937 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
On Mon, Nov 4, 2013 at 4:22 AM, Steve Hay <steve= .m.hay@googlemail.com> wrote:
<= div class=3D"gmail_quote">
On 30 October 2013 18:24, Steve Hay <steve.m.hay@googlemail.com> wrote:
> I've now tried other perls (5.16.0, 5.18.0 and 5.19.4) in other bu= ild
> configurations (with/without PERL_IMPLICIT_SYS) and can confirm that > the crash only occurs with perls built with PERL_IMPLICIT_SYS enabled.=
> I generally use perl with that disabled (although that isn't the > default configuration), so that's probably what I was doing when I= had
> this working back in July.
>
> That is indeed a Windows-specific thing, unfortunately :-/
>
> I will see what I can do to fix it since most users will indeed have > the default configuration (certainly ActivePerl and Strawberry Perl > both do) and hence experience the crash.

As per your suggestion on the other thread, I've now merged the
httpd24 and threading branches togther into a new branch called
httpd24threading and I'm delighted to see that it does indeed fix the add_config.t crash when PERL_IMPLICIT_SYS is defined :-)

There is one oddity when starting up the server: it complains that
"KeepAliveTimeout 300" has the wrong format! I don't understa= nd this.
The directive is not new and that syntax (number of seconds) has long
been valid. httpd-2.3.2 added a new millisecond format (append "ms&quo= t;),
but that shouldn't affect this:
http://httpd.apache.org/docs/2.4/mod/core.html#keepalive= timeout

The most likely cause would see= m to be some stray character after the 300 (e.g., maybe a ^M on Unix)??? = =A0The next most likely (also unlikely) cause would seem to be that per-thr= ead errno is hosed in your httpd build for some reason??? =A0(yeah, I know = how bogus this sounds :) )

2.2 parses the number via the very forgiving atoi().
2.4 parses the number with apr_strtoi64() which manipulates errno a= nd also by checking what comes after the number, which also manipulates err= no and is sensitive to the first character that apr_strtoi64() can't pa= rse

Maybe the quickest way to get to the bottom of it is to= add some tracing to the three "return some-error" paths in serve= r/util.c::ap_timeout_parameter_parse().



Simply deleting that line from
t/response/TestDirective/perlcleanuphandler.pm works around it and the
test still passes, but I'd rather understand what the problem is.

Otherwise, my current test summary report is as follows:

Test Summary Report
-------------------
t\apache\subprocess.t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (Wstat: 0 Tests: 1 Fa= iled: 0)
=A0 Parse errors: Bad plan. =A0You planned 5 tests but ran 1.
t\api\access2_24.t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(Wstat: 0 Tests: = 6 Failed: 3)
=A0 Failed tests: =A02, 5-6
t\compat\conn_rec.t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (Wstat: 0 Tests: 2 = Failed: 0)
=A0 Parse errors: Bad plan. =A0You planned 4 tests but ran 2.
t\directive\perlloadmodule2.t =A0 =A0 =A0 =A0 (Wstat: 0 Tests: 3 Failed: 1)=
=A0 Failed test: =A03
t\hooks\authen_digest.t =A0 =A0 =A0 =A0 =A0 =A0 =A0 (Wstat: 0 Tests: 7 Fail= ed: 4)
=A0 Failed tests: =A04-7
t\modperl\interpreter.t =A0 =A0 =A0 =A0 =A0 =A0 =A0 (Wstat: 0 Tests: 0 Fail= ed: 0)
=A0 Parse errors: Bad plan. =A0You planned 17 tests but ran 0.
t\modperl\local_env.t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (Wstat: 0 Tests: 6 Fa= iled: 1)
=A0 Failed test: =A06
t\modperl\merge.t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (Wstat: 0 Tests: = 10 Failed: 3)
=A0 Failed tests: =A03, 6, 9
t\modperl\merge2.t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(Wstat: 0 Tests: = 10 Failed: 3)
=A0 Failed tests: =A03, 6, 9
t\modperl\merge3.t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(Wstat: 0 Tests: = 10 Failed: 3)
=A0 Failed tests: =A03, 6, 9
t\modules\cgi.t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (Wstat: 0 Tests= : 5 Failed: 5)
=A0 Failed tests: =A01-5
t\modules\cgi2.t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(Wstat: 0 Tests= : 5 Failed: 5)
=A0 Failed tests: =A01-5
t\modules\cgipost.t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (Wstat: 0 Tests: 6 = Failed: 5)
=A0 Failed tests: =A02-6
t\modules\cgipost2.t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(Wstat: 0 Tests: 6 = Failed: 5)
=A0 Failed tests: =A02-6
t\modules\cgiupload.t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (Wstat: 0 Tests: 2 Fa= iled: 2)
=A0 Failed tests: =A01-2
t\modules\cgiupload2.t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(Wstat: 0 Tests: 2 Fa= iled: 2)
=A0 Failed tests: =A01-2
t\protocol\echo_block.t =A0 =A0 =A0 =A0 =A0 =A0 =A0 (Wstat: 0 Tests: 3 Fail= ed: 2)
=A0 Failed tests: =A02-3
t\protocol\echo_nonblock.t =A0 =A0 =A0 =A0 =A0 =A0(Wstat: 0 Tests: 3 Failed= : 1)
=A0 Failed test: =A02
t\protocol\echo_timeout.t =A0 =A0 =A0 =A0 =A0 =A0 (Wstat: 0 Tests: 5 Failed= : 4)
=A0 Failed tests: =A02-5
t\protocol\pseudo_http.t =A0 =A0 =A0 =A0 =A0 =A0 =A0(Wstat: 0 Tests: 13 Fai= led: 9)
=A0 Failed tests: =A03-8, 11-13
Files=3D252, Tests=3D2484, 815 wallclock secs ( 2.43 usr + =A00.53 sys =3D = =A02.96 CPU)
Result: FAIL

That's using my own debugging mode builds of perl 5.19.4 and httpd
2.4.4. It also works (with fewer test failures) using 2.2.25.

I will try with release mode builds for comparison, and also see how
the above list compares with the standard httpd24 branch (using a perl
without PERL_IMPLICIT_SYS) to see whether this merged branch has
introduced new failures into httpd24.

Please could somebody in non-Windows-land give the httpd24threading
branch a try and report back what it's looking like there?

I think we could be getting close to merging this all into trunk! :-)

---------------------------------------------------------------------
To unsubscribe, e-mail: = dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org




--
Born in Rosw= ell... married an alien...
http://emptyhammock.com/
--001a11349b22edc4b604ea5a1937--