perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Hay <steve.m....@googlemail.com>
Subject Re: httpd24 on Windows?
Date Tue, 05 Nov 2013 09:07:22 GMT
On 5 November 2013 01:00, Steve Hay <steve.m.hay@googlemail.com> wrote:
> On 4 November 2013 16:02, Steve Hay <steve.m.hay@googlemail.com> wrote:
>> On 4 November 2013 15:38, Jeff Trawick <trawick@gmail.com> wrote:
>>> On Mon, Nov 4, 2013 at 8:43 AM, Jeff Trawick <trawick@gmail.com> wrote:
>>>>
>>>> On Mon, Nov 4, 2013 at 4:22 AM, Steve Hay <steve.m.hay@googlemail.com>
>>>> wrote:
>>>>>
>>>>> 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
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().
>>>
>>>
>>> I should be able to try that out...
>>>
>>> What do I need to grab from svn and run, and does this particular error
>>> reproduce on Linux?
>>>>
>>
>> I haven't heard from others yet whether this reproduces on Linux.
>>
>> The only thing you need from svn is modperl's 'httpd24threading'
>> branch and httpd-2.4 (I'm using 2.4.4) -- it works fine with 2.2. I
>> doubt that the perl version is relevant, but I'm using 5.19.4. I've
>> built everything in debug mode. I will have a look later; thanks for
>> the tip where to look. There are definitely no stray characters after
>> the 300 -- only a \n.
>
> Just tried again with httpd-2.4.6 and perl-5.19.5 and it works fine,
> albeit in release builds. I will find out whether it's the upgraded
> httpd, upgraded perl, or switch from debug to release mode that
> "fixed" it...

Returning to my (failing) debug mode 2.4.4 + 5.19.4 setup, if I
upgrade perl to 5.19.5 (debug or release) then it still fails, but
when I rebuild httpd in release mode then it works.

Not sure what to make of that. I tried debugging the failing debug
mode 2.4.4 but the debugger played up. It showed apr_strtoi64()
succeeding (returning 300 with endp pointing at the NUL after the 300
and errno 0) so it set time_str to default_time_unit, but then went
into the switch and decided that *time_str was none of 's', 'h' or
''m', so returned APR_EGENERAL. I don't understand how it can do that.

I wish I could try a debug build of 2.4.6, but I don't know how to
build that on Windows. There is no -win32-src for 2.4.x at
http://mirrors.ukfast.co.uk/sites/ftp.apache.org//httpd/ (or other
mirror sites). I've been using the -win32-src of the 2.4.4 version
from http://people.apache.org/~gsmith/httpd/releases/ but there is no
2.4.6 there. My 2.4.6 build came from Apache Lounge, but there is no
debug build there...

Are there Windows build instructions for 2.4.x anywhere?

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


Mime
View raw message