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 12:37:47 GMT
On 5 November 2013 11:51, Jeff Trawick <trawick@gmail.com> wrote:
> On Tue, Nov 5, 2013 at 4:07 AM, Steve Hay <steve.m.hay@googlemail.com>
> wrote:
>>
>> 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?
>
>
> If you want to build with modern tools (e.g., VS 2010/2012):
>
> As far as Windows build instructions:  One of the svn guys has a Perl script
> to build httpd and a bunch support libraries with modern Microsoft tools,
> hacking the project files along the way.  The ApacheLounge and ApacheHaus
> guys use various manual interventions to get it to work. We now have a cmake
> build system for apr, apr-util, and httpd which for Unix-heads allows
> building these in a sane manner, but that requires the latest from svn (i.e.
> post-apr-1.4.8, post-apr-util-1.5.2, etc.).
>
> I can give you a debug build of recent levels of apr, apr-util, and httpd
> that you want, or extract and adjust the cmake build system files so you can
> drop it on top of certain levels (+ build instructions).  I already have the
> set of overlays for httpd 2.4.6, apr-1.4.8, and apr-util-1.5.2.  There may
> be a required patch or two, but I don't recall at the moment.
>
> Let me know if you can make use of either of these (and if appropriate, 32
> vs. 64 and which versions).
>

A set of overlays for 2.4.6, apr 1.4.8 and apu 1.5.2 would be great.

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


Mime
View raw message