On Tue, Nov 5, 2013 at 7:37 AM, Steve Hay <steve.m....@googlemail.com>wrote:
> On 5 November 2013 11:51, Jeff Trawick <traw...@gmail.com> wrote: > > On Tue, Nov 5, 2013 at 4:07 AM, Steve Hay <steve.m....@googlemail.com> > > wrote: > >> > >> On 5 November 2013 01:00, Steve Hay <steve.m....@googlemail.com> wrote: > >> > On 4 November 2013 16:02, Steve Hay <steve.m....@googlemail.com> > wrote: > >> >> On 4 November 2013 15:38, Jeff Trawick <traw...@gmail.com> wrote: > >> >>> On Mon, Nov 4, 2013 at 8:43 AM, Jeff Trawick <traw...@gmail.com> > >> >>> wrote: > >> >>>> > >> >>>> On Mon, Nov 4, 2013 at 4:22 AM, Steve Hay > >> >>>> <steve.m....@googlemail.com> > >> >>>> wrote: > >> >>>>> > >> >>>>> On 30 October 2013 18:24, Steve Hay <steve.m....@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. > http://people.apache.org/~trawick/cmake-for-steve.zip (the enclosed patches are needed only if you want to run the apr or apr-util test suites from an out of source build tree, which is usual for cmake) http://svn.apache.org/viewvc/apr/apr/branches/1.5.x/README.cmake http://svn.apache.org/viewvc/apr/apr-util/branches/1.5.x/README.cmake http://svn.apache.org/viewvc/httpd/httpd/trunk/README.cmake I have some other notes at http://people.apache.org/~trawick/cmake/ but the makefile there is probably too complex to see the gist of it. PCRE includes cmake support already. Snippets to roll into a makefile or script: PREFIX = $(HOME)\httpd CMAKE_BUILD_TYPE = Debug CMAKE_BASE_OPTS = -DCMAKE_INSTALL_PREFIX=$(PREFIX) -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=$(CMAKE_BUILD_TYPE) APR_CMAKE_OPTS = $(CMAKE_BASE_OPTS) -DAPR_INSTALL_PRIVATE_H=ON APRUTIL_CMAKE_OPTS = $(CMAKE_BASE_OPTS) PCRE_CMAKE_OPTS = $(CMAKE_BASE_OPTS) -DBUILD_SHARED_LIBS=on HTTPD_CMAKE_OPTS = $(CMAKE_BASE_OPTS) -DENABLE_MODULES=a cd builddir\pcre cmake $(PCRE_CMAKE_OPTS) /path/to/pcre-8.33 nmake && nmake install cd ..\.. cd builddir\apr cmake $(APR_CMAKE_OPTS) /path/to/apr-1.4.8+overlays nmake && nmake install cd ..\.. cd builddir\apr-util cmake $(APRUTIL_CMAKE_OPTS) /path/to/apr-util-1.5.2+overlays nmake && nmake install cd ..\.. cd builddir\httpd cmake $(HTTPD_CMAKE_OPTS) /path/to/httpd-2.4.6+overlays nmake && nmake install cd ..\.. (In my attempts to simplify this from my more complex Makefiles that handle a number of variations, I may have omitted something.) -- Born in Roswell... married an alien... http://emptyhammock.com/