You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by Steve Hay <st...@googlemail.com> on 2013/10/04 19:04:42 UTC

Re: httpd24 on Windows?

On 18 September 2013 12:31, Jan Kaluža <jk...@redhat.com> wrote:
> On 09/18/2013 12:46 PM, Steve Hay wrote:
>>
>> On 18 September 2013 11:32, Jan Kaluža <jk...@redhat.com> wrote:
>>>
>>> Hi,
>>>
>>> what's the state of mod_perl httpd24 branch on Windows currently? I
>>> somehow
>>> got lost in the updates and I'm not sure what's the current state.
>>>
>>> Does it compile and work properly if you build against httpd-2.2? If it
>>> does, maybe we could do the merge and think about release even when it
>>> does
>>> not work currently on Windows with httpd-2.4.
>>>
>>> Lot of people are probably interested in mod_perl for Linux and not
>>> releasing working code just because of Windows build seems to be bad idea
>>> to
>>> me. Maybe we could get more people to try fixing mod_perl on Windows
>>> using
>>> this strategy too.
>>>
>>
>> This sounds like a good plan, but can I get back to you on this in a
>> few days time? I'm currently waylaid with the release of perl-5.19.4
>> and I've forgotten myself where I got to with this on Windows!
>>
>
> Great :). I've just wanted to resurrect this discussion after a while.
>

I've tried the current httpd24 branch with Apache Lounge's 2.4.6 and
my own build of Perl 5.19.4. The build works fine but the test suite
crashes httpd.exe in t/api/add_config.t ("free from wrong pool"),
which I'm sure was not happening for me previously.

I must have been using an older Perl than that before. I will try some
older Perls and/or different Apaches to see if it makes a difference.
Does the 2.4.6 + 5.19.4 combination work for you in non-Windows-land?

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


Re: httpd24 on Windows?

Posted by Jan Kaluža <jk...@redhat.com>.
>
> Please could somebody in non-Windows-land give the httpd24threading
> branch a try and report back what it's looking like there?

Hm, It crashes for me when starting httpd on "make test". It's OK in 
httpd24 branch. I haven't checked your commits yet to find out what's 
the problem, but I think I could try to bisect it tomorrow (don't have 
time today...)

#0  0x00007f383a05bf13 in modperl_interp_select (r=0x0, c=c@entry=0x0, 
s=s@entry=0x0) at modperl_interp.c:403

#1  0x00007f383a05bfb6 in modperl_interp_pool_select (p=<optimized out>, 
s=0x7f3847563ee0) at modperl_interp.c:396

#2  0x00007f383a0631a5 in perl_parse_require_line (cmd=0x7fffbb1845a0, 
require_line=0x7f38475ce980 "goo bar", parsed_require_line=<optimized 
out>) at modperl_util.c:992

#3  0x00007f38435a6ab1 in add_authz_provider (cmd=0x7fffbb1845a0, 
config=0x7f3847635cd8, args=0x7f38475ce980 "goo bar") at 
mod_authz_core.c:421

#4  0x00007f3846f9ed76 in invoke_cmd (cmd=0x7f38437a8b48 
<authz_cmds+40>, parms=parms@entry=0x7fffbb1845a0, 
mconfig=0x7f3847635cd8, args=0x7f38475ce978 "my-user goo bar") at 
config.c:878

#5  0x00007f3846fa135f in ap_walk_config_sub 
(section_vector=0x7f3847634f58, parms=0x7fffbb1845a0, 
current=0x7f38475ce930) at config.c:1308

#6  ap_walk_config (current=0x7f38475ce930, 
parms=parms@entry=0x7fffbb1845a0, 
section_vector=section_vector@entry=0x7f3847634f58) at config.c:1341

#7  0x00007f3846f9452b in urlsection (cmd=0x7fffbb1845a0, mconfig=
<optimized out>, arg=0x7f384762f2c1 "") at core.c:2234

#8  0x00007f3846f9ed76 in invoke_cmd (cmd=0x7f38471d7428 <core_cmds+40>, 
parms=parms@entry=0x7fffbb1845a0, mconfig=0x7f384756b118, 
args=0x7f38475ce5f8 "/TestAPI__access2>") at config.c:878

#9  0x00007f3846fa135f in ap_walk_config_sub 
(section_vector=0x7f384756a8f8, parms=0x7fffbb1845a0, 
current=0x7f38475ce5b0) at config.c:1308

#10 ap_walk_config (current=0x7f38475ce5b0, 
parms=parms@entry=0x7fffbb1845a0, section_vector=0x7f384756a8f8) at 
config.c:1341

#11 0x00007f3846fa264c in ap_process_config_tree (s=<optimized out>, 
conftree=<optimized out>, p=0x7f3847538158, ptemp=<optimized out>) at 
config.c:2062

#12 0x00007f3846f7f9e6 in main (argc=9, argv=0x7fffbb184808) at main.c:639

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

Jan Kaluza


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


Re: httpd24 on Windows?

Posted by Jeff Trawick <tr...@gmail.com>.
On Tue, Nov 5, 2013 at 1:19 PM, Steve Hay <st...@googlemail.com>wrote:

> On 5 November 2013 14:47, Jeff Trawick <tr...@gmail.com> wrote:
> > On Tue, Nov 5, 2013 at 9:23 AM, Steve Hay <st...@googlemail.com>
> > wrote:
> >>
> >> On 5 November 2013 13:08, Jeff Trawick <tr...@gmail.com> wrote:
> >> > On Tue, Nov 5, 2013 at 7:37 AM, Steve Hay <steve.m.hay@googlemail.com
> >
> >> > wrote:
> >> >> 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.)
> >>
> >> Thanks for that. I've given it a try as follows:
> >>
> >> - Extracted httpd-2.4.6.tar.gz into C:\Dev\Temp\build
> >> - Extracted httpd-2.4.6-deps.tar.gz over the top of it
> >> - Extracted apr-iconv-1.2.1-win32-src-r2.zip into C:\Dev\Temp\build
> >> and renamed apr-iconv-1.2.1 to apr-iconv [Will this actually get built
> >> by the CMake build system anyway?]
> >
> >
> > No, apr-iconv won't get built.  There's no CMake build system for that
> > project yet.  (Does mod_perl need apr-iconv on Windows?  If so, I need to
> > get busy.  The only httpd-related feature I know of that needs apr-iconv
> is
> > mod_charset_lite.)
>
> Ok. I'm not sure if mod_perl needs it or not.


The only references I see to apr_xlate APIs (which need apr-iconv on
Windows) are in Apache2::FunctionTable.

I've always built with
> it on Windows because I've always used the Makefile.win to build (up
> to 2.2.x) and it does this if you haven't got apr-iconv:
>

The old build has no logic to say "no apr-iconv; that's okay as long as you
don't tell me I must build mod_charset_lite".


>
> D:\temp\httpd-2.2.25>nmake /f Makefile.win INSTDIR=D:\temp\apache installr
>
> Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
> Copyright (C) Microsoft Corporation.  All rights reserved.
>
> Please check out or download and unpack the Apache Portability Runtime
> sources (apr, apr-iconv and apr-util) into your srclib dir.
> Apache cannot build without these libraries!
>
> Makefile.win(71) : fatal error U1050: Need srclib\  apr, apr-iconv and
> apr-util
> Stop.
>
> It was just easier to add it (or leave it, in the -win32-src zips)
> rather than try to fight that. I suspect mod_perl doesn't specifically
> require it, but I will let you know if it turns out otherwise (when I
> hopefully get 2.4.6 building...).
>
>
> >
> >>
> >> - Copied the apr, apr-util and httpd overlay files over the top of
> >> C:\Dev\Temp\build\httpd-2.4.6\srclib\apr,
> >> C:\Dev\Temp\build\httpd-2.4.6\srclib\apr and
> >> C:\Dev\Temp\build\httpd-2.4.6
> >> - Set up a VC++ 2010 + CMake environment
> >>
> >> and then did the following in C:\Dev\Temp\build:
> >>
> >> cd pcre
> >> cmake -DCMAKE_INSTALL_PREFIX=C:\Dev\Temp\apache -G "NMake Makefiles"
> >> -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=on
> >> C:\Dev\Temp\build\httpd-2.4.6\srclib\pcre
> >> nmake && nmake install
> >> [All ok]
> >>
> >> cd ..\apr
> >> cmake -DCMAKE_INSTALL_PREFIX=C:\Dev\Temp\apache -G "NMake Makefiles"
> >> -DCMAKE_BUILD_TYPE=Debug -DAPR_INSTALL_PRIVATE_H=on
> >> C:\Dev\Temp\build\httpd-2.4.6\srclib\apr
> >> nmake && nmake install
> >> [All ok]
> >>
> >> cd ..\apr-util
> >> cmake -DCMAKE_INSTALL_PREFIX=C:\Dev\Temp\apache -G "NMake Makefiles"
> >> -DCMAKE_BUILD_TYPE=Debug C:\Dev\Temp\build\httpd-2.4.6\srclib\apr-util
> >> nmake && nmake install
> >> [All ok]
> >>
> >> cd ..\httpd-2.4.6
> >> cmake -DCMAKE_INSTALL_PREFIX=C:\Dev\Temp\apache -G "NMake Makefiles"
> >> -DCMAKE_BUILD_TYPE=Debug -DENABLE_MODULES=a
> >> C:\Dev\Temp\build\httpd-2.4.6
> >> nmake && nmake install
> >> [...]
> >> [ 20%] Building RC object
> CMakeFiles/libhttpd.dir/build/win32/httpd.rc.res
> >> Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
> >> Copyright (C) Microsoft Corporation.  All rights reserved.
> >>
> >> Linking C shared library libhttpd.dll
> >>    Creating library libhttpd.lib and object libhttpd.exp
> >> [ 20%] Built target libhttpd
> >> Scanning dependencies of target httpd
> >> [ 20%] Building C object CMakeFiles/httpd.dir/server/main.c.obj
> >> main.c
> >> [ 20%] Building RC object CMakeFiles/httpd.dir/build/win32/httpd.rc.res
> >> Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
> >> Copyright (C) Microsoft Corporation.  All rights reserved.
> >>
> >>
> >> C:\Dev\Temp\build\httpd-2.4.6\build\win32\httpd.rc(34) : error RC2135 :
> >> file not
> >>  found: C:/Dev/Temp/build/httpd
> >
> >
> > I think I did something once to get file not found errors like those
> > described in
> >
> http://stackoverflow.com/questions/15244065/error-rc2135-in-c-project-due-to-utf-8-encoding-of-rc-file
> >
> > Line 34 is in the middle of
> >
> > #ifdef ICON_FILE
> > 1 ICON DISCARDABLE ICON_FILE
> > #endif
> >
> > When building httpd.exe, ICON_FILE is defined as
> >
> >  -DICON_FILE=${CMAKE_SOURCE_DIR}/build/win32/apache.ico
> >
> > You might disable the ifdef (ifdef ICONF_FILEXXX) to see if the error is
> > specific to the ICON_FILE setting.
>
> That did the trick. I'll worry about it more later, but for now simply
> disabling that #ifdef lets the build run to completion. Thanks for
> your help with that.
>
>
> >
> > I'm picking up rc.exe from C:\Program Files (x86)\Windows
> > Kits\8.0\bin\(machine), which I suppose was installed by VS 2010 or 2012.
> >
> > If I understand your notes correctly, your build dir is the same as your
> > source dir.  I've never tried that.  It is great to have separate ones
> > because cmake build artifacts may be tricky to clean up when you can't
> "rm
> > -rf" or equivalent.
>
> Yes, I was inadvertently doing that for httpd. I've separated its
> source and build now. (That alone didn't make any difference to the
> #ifdef trouble above, though.)
>



-- 
Born in Roswell... married an alien...
http://emptyhammock.com/

Re: httpd24 on Windows?

Posted by Steve Hay <st...@googlemail.com>.
On 5 November 2013 14:47, Jeff Trawick <tr...@gmail.com> wrote:
> On Tue, Nov 5, 2013 at 9:23 AM, Steve Hay <st...@googlemail.com>
> wrote:
>>
>> On 5 November 2013 13:08, Jeff Trawick <tr...@gmail.com> wrote:
>> > On Tue, Nov 5, 2013 at 7:37 AM, Steve Hay <st...@googlemail.com>
>> > wrote:
>> >> 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.)
>>
>> Thanks for that. I've given it a try as follows:
>>
>> - Extracted httpd-2.4.6.tar.gz into C:\Dev\Temp\build
>> - Extracted httpd-2.4.6-deps.tar.gz over the top of it
>> - Extracted apr-iconv-1.2.1-win32-src-r2.zip into C:\Dev\Temp\build
>> and renamed apr-iconv-1.2.1 to apr-iconv [Will this actually get built
>> by the CMake build system anyway?]
>
>
> No, apr-iconv won't get built.  There's no CMake build system for that
> project yet.  (Does mod_perl need apr-iconv on Windows?  If so, I need to
> get busy.  The only httpd-related feature I know of that needs apr-iconv is
> mod_charset_lite.)

Ok. I'm not sure if mod_perl needs it or not. I've always built with
it on Windows because I've always used the Makefile.win to build (up
to 2.2.x) and it does this if you haven't got apr-iconv:

D:\temp\httpd-2.2.25>nmake /f Makefile.win INSTDIR=D:\temp\apache installr

Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.

Please check out or download and unpack the Apache Portability Runtime
sources (apr, apr-iconv and apr-util) into your srclib dir.
Apache cannot build without these libraries!

Makefile.win(71) : fatal error U1050: Need srclib\  apr, apr-iconv and apr-util
Stop.

It was just easier to add it (or leave it, in the -win32-src zips)
rather than try to fight that. I suspect mod_perl doesn't specifically
require it, but I will let you know if it turns out otherwise (when I
hopefully get 2.4.6 building...).


>
>>
>> - Copied the apr, apr-util and httpd overlay files over the top of
>> C:\Dev\Temp\build\httpd-2.4.6\srclib\apr,
>> C:\Dev\Temp\build\httpd-2.4.6\srclib\apr and
>> C:\Dev\Temp\build\httpd-2.4.6
>> - Set up a VC++ 2010 + CMake environment
>>
>> and then did the following in C:\Dev\Temp\build:
>>
>> cd pcre
>> cmake -DCMAKE_INSTALL_PREFIX=C:\Dev\Temp\apache -G "NMake Makefiles"
>> -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=on
>> C:\Dev\Temp\build\httpd-2.4.6\srclib\pcre
>> nmake && nmake install
>> [All ok]
>>
>> cd ..\apr
>> cmake -DCMAKE_INSTALL_PREFIX=C:\Dev\Temp\apache -G "NMake Makefiles"
>> -DCMAKE_BUILD_TYPE=Debug -DAPR_INSTALL_PRIVATE_H=on
>> C:\Dev\Temp\build\httpd-2.4.6\srclib\apr
>> nmake && nmake install
>> [All ok]
>>
>> cd ..\apr-util
>> cmake -DCMAKE_INSTALL_PREFIX=C:\Dev\Temp\apache -G "NMake Makefiles"
>> -DCMAKE_BUILD_TYPE=Debug C:\Dev\Temp\build\httpd-2.4.6\srclib\apr-util
>> nmake && nmake install
>> [All ok]
>>
>> cd ..\httpd-2.4.6
>> cmake -DCMAKE_INSTALL_PREFIX=C:\Dev\Temp\apache -G "NMake Makefiles"
>> -DCMAKE_BUILD_TYPE=Debug -DENABLE_MODULES=a
>> C:\Dev\Temp\build\httpd-2.4.6
>> nmake && nmake install
>> [...]
>> [ 20%] Building RC object CMakeFiles/libhttpd.dir/build/win32/httpd.rc.res
>> Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
>> Copyright (C) Microsoft Corporation.  All rights reserved.
>>
>> Linking C shared library libhttpd.dll
>>    Creating library libhttpd.lib and object libhttpd.exp
>> [ 20%] Built target libhttpd
>> Scanning dependencies of target httpd
>> [ 20%] Building C object CMakeFiles/httpd.dir/server/main.c.obj
>> main.c
>> [ 20%] Building RC object CMakeFiles/httpd.dir/build/win32/httpd.rc.res
>> Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
>> Copyright (C) Microsoft Corporation.  All rights reserved.
>>
>>
>> C:\Dev\Temp\build\httpd-2.4.6\build\win32\httpd.rc(34) : error RC2135 :
>> file not
>>  found: C:/Dev/Temp/build/httpd
>
>
> I think I did something once to get file not found errors like those
> described in
> http://stackoverflow.com/questions/15244065/error-rc2135-in-c-project-due-to-utf-8-encoding-of-rc-file
>
> Line 34 is in the middle of
>
> #ifdef ICON_FILE
> 1 ICON DISCARDABLE ICON_FILE
> #endif
>
> When building httpd.exe, ICON_FILE is defined as
>
>  -DICON_FILE=${CMAKE_SOURCE_DIR}/build/win32/apache.ico
>
> You might disable the ifdef (ifdef ICONF_FILEXXX) to see if the error is
> specific to the ICON_FILE setting.

That did the trick. I'll worry about it more later, but for now simply
disabling that #ifdef lets the build run to completion. Thanks for
your help with that.


>
> I'm picking up rc.exe from C:\Program Files (x86)\Windows
> Kits\8.0\bin\(machine), which I suppose was installed by VS 2010 or 2012.
>
> If I understand your notes correctly, your build dir is the same as your
> source dir.  I've never tried that.  It is great to have separate ones
> because cmake build artifacts may be tricky to clean up when you can't "rm
> -rf" or equivalent.

Yes, I was inadvertently doing that for httpd. I've separated its
source and build now. (That alone didn't make any difference to the
#ifdef trouble above, though.)

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


Re: httpd24 on Windows?

Posted by Jeff Trawick <tr...@gmail.com>.
On Tue, Nov 5, 2013 at 9:23 AM, Steve Hay <st...@googlemail.com>wrote:

> On 5 November 2013 13:08, Jeff Trawick <tr...@gmail.com> wrote:
> > On Tue, Nov 5, 2013 at 7:37 AM, Steve Hay <st...@googlemail.com>
> > wrote:
> >> 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.)
>
> Thanks for that. I've given it a try as follows:
>
> - Extracted httpd-2.4.6.tar.gz into C:\Dev\Temp\build
> - Extracted httpd-2.4.6-deps.tar.gz over the top of it
> - Extracted apr-iconv-1.2.1-win32-src-r2.zip into C:\Dev\Temp\build
> and renamed apr-iconv-1.2.1 to apr-iconv [Will this actually get built
> by the CMake build system anyway?]
>

No, apr-iconv won't get built.  There's no CMake build system for that
project yet.  (Does mod_perl need apr-iconv on Windows?  If so, I need to
get busy.  The only httpd-related feature I know of that needs apr-iconv is
mod_charset_lite.)


> - Copied the apr, apr-util and httpd overlay files over the top of
> C:\Dev\Temp\build\httpd-2.4.6\srclib\apr,
> C:\Dev\Temp\build\httpd-2.4.6\srclib\apr and
> C:\Dev\Temp\build\httpd-2.4.6
> - Set up a VC++ 2010 + CMake environment
>
> and then did the following in C:\Dev\Temp\build:
>
> cd pcre
> cmake -DCMAKE_INSTALL_PREFIX=C:\Dev\Temp\apache -G "NMake Makefiles"
> -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=on
> C:\Dev\Temp\build\httpd-2.4.6\srclib\pcre
> nmake && nmake install
> [All ok]
>
> cd ..\apr
> cmake -DCMAKE_INSTALL_PREFIX=C:\Dev\Temp\apache -G "NMake Makefiles"
> -DCMAKE_BUILD_TYPE=Debug -DAPR_INSTALL_PRIVATE_H=on
> C:\Dev\Temp\build\httpd-2.4.6\srclib\apr
> nmake && nmake install
> [All ok]
>
> cd ..\apr-util
> cmake -DCMAKE_INSTALL_PREFIX=C:\Dev\Temp\apache -G "NMake Makefiles"
> -DCMAKE_BUILD_TYPE=Debug C:\Dev\Temp\build\httpd-2.4.6\srclib\apr-util
> nmake && nmake install
> [All ok]
>
> cd ..\httpd-2.4.6
> cmake -DCMAKE_INSTALL_PREFIX=C:\Dev\Temp\apache -G "NMake Makefiles"
> -DCMAKE_BUILD_TYPE=Debug -DENABLE_MODULES=a
> C:\Dev\Temp\build\httpd-2.4.6
> nmake && nmake install
> [...]
> [ 20%] Building RC object CMakeFiles/libhttpd.dir/build/win32/httpd.rc.res
> Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
> Copyright (C) Microsoft Corporation.  All rights reserved.
>
> Linking C shared library libhttpd.dll
>    Creating library libhttpd.lib and object libhttpd.exp
> [ 20%] Built target libhttpd
> Scanning dependencies of target httpd
> [ 20%] Building C object CMakeFiles/httpd.dir/server/main.c.obj
> main.c
> [ 20%] Building RC object CMakeFiles/httpd.dir/build/win32/httpd.rc.res
> Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
> Copyright (C) Microsoft Corporation.  All rights reserved.
>
>
> C:\Dev\Temp\build\httpd-2.4.6\build\win32\httpd.rc(34) : error RC2135 :
> file not
>  found: C:/Dev/Temp/build/httpd
>

I think I did something once to get file not found errors like those
described in
http://stackoverflow.com/questions/15244065/error-rc2135-in-c-project-due-to-utf-8-encoding-of-rc-file

Line 34 is in the middle of

#ifdef ICON_FILE
1 ICON DISCARDABLE ICON_FILE
#endif

When building httpd.exe, ICON_FILE is defined as

 -DICON_FILE=${CMAKE_SOURCE_DIR}/build/win32/apache.ico

You might disable the ifdef (ifdef ICONF_FILEXXX) to see if the error is
specific to the ICON_FILE setting.

I'm picking up rc.exe from C:\Program Files (x86)\Windows
Kits\8.0\bin\(machine), which I suppose was installed by VS 2010 or 2012.

If I understand your notes correctly, your build dir is the same as your
source dir.  I've never tried that.  It is great to have separate ones
because cmake build artifacts may be tricky to clean up when you can't "rm
-rf" or equivalent.


> C:\Dev\Temp\build\httpd-2.4.6\build\win32\httpd.rc(40) : error RC2135 :
> file not
>  found: VERSIONINFO
>

What I have seen with rc is the snowballing of errors, which appears to
happen here.

OTOH, the UTF-8 issue from the stackoverflow link triggered file not found
everywhere.


> C:\Dev\Temp\build\httpd-2.4.6\build\win32\httpd.rc(41) : error RC2135 :
> file not
>  found: 4
>
> C:\Dev\Temp\build\httpd-2.4.6\build\win32\httpd.rc(42) : error RC2135 :
> file not
>  found: PRODUCTVERSION
> NMAKE : fatal error U1077: 'C:\PROGRA~2\MIA713~1\Windows\v7.0A\Bin\RC.Exe'
> : ret
> urn code '0x5'
> Stop.
> NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual
> Studio 10.0
> \VC\BIN\nmake.exe"' : return code '0x2'
> Stop.
> NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual
> Studio 10.0
> \VC\BIN\nmake.exe"' : return code '0x2'
> Stop.
>
> I will dig more later, but if anything springs to mind what might have
> gone wrong there I'd be grateful to hear.
>



-- 
Born in Roswell... married an alien...
http://emptyhammock.com/

Re: httpd24 on Windows?

Posted by Steve Hay <st...@googlemail.com>.
On 5 November 2013 13:08, Jeff Trawick <tr...@gmail.com> wrote:
> On Tue, Nov 5, 2013 at 7:37 AM, Steve Hay <st...@googlemail.com>
> wrote:
>> 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.)

Thanks for that. I've given it a try as follows:

- Extracted httpd-2.4.6.tar.gz into C:\Dev\Temp\build
- Extracted httpd-2.4.6-deps.tar.gz over the top of it
- Extracted apr-iconv-1.2.1-win32-src-r2.zip into C:\Dev\Temp\build
and renamed apr-iconv-1.2.1 to apr-iconv [Will this actually get built
by the CMake build system anyway?]
- Copied the apr, apr-util and httpd overlay files over the top of
C:\Dev\Temp\build\httpd-2.4.6\srclib\apr,
C:\Dev\Temp\build\httpd-2.4.6\srclib\apr and
C:\Dev\Temp\build\httpd-2.4.6
- Set up a VC++ 2010 + CMake environment

and then did the following in C:\Dev\Temp\build:

cd pcre
cmake -DCMAKE_INSTALL_PREFIX=C:\Dev\Temp\apache -G "NMake Makefiles"
-DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=on
C:\Dev\Temp\build\httpd-2.4.6\srclib\pcre
nmake && nmake install
[All ok]

cd ..\apr
cmake -DCMAKE_INSTALL_PREFIX=C:\Dev\Temp\apache -G "NMake Makefiles"
-DCMAKE_BUILD_TYPE=Debug -DAPR_INSTALL_PRIVATE_H=on
C:\Dev\Temp\build\httpd-2.4.6\srclib\apr
nmake && nmake install
[All ok]

cd ..\apr-util
cmake -DCMAKE_INSTALL_PREFIX=C:\Dev\Temp\apache -G "NMake Makefiles"
-DCMAKE_BUILD_TYPE=Debug C:\Dev\Temp\build\httpd-2.4.6\srclib\apr-util
nmake && nmake install
[All ok]

cd ..\httpd-2.4.6
cmake -DCMAKE_INSTALL_PREFIX=C:\Dev\Temp\apache -G "NMake Makefiles"
-DCMAKE_BUILD_TYPE=Debug -DENABLE_MODULES=a
C:\Dev\Temp\build\httpd-2.4.6
nmake && nmake install
[...]
[ 20%] Building RC object CMakeFiles/libhttpd.dir/build/win32/httpd.rc.res
Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
Copyright (C) Microsoft Corporation.  All rights reserved.

Linking C shared library libhttpd.dll
   Creating library libhttpd.lib and object libhttpd.exp
[ 20%] Built target libhttpd
Scanning dependencies of target httpd
[ 20%] Building C object CMakeFiles/httpd.dir/server/main.c.obj
main.c
[ 20%] Building RC object CMakeFiles/httpd.dir/build/win32/httpd.rc.res
Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
Copyright (C) Microsoft Corporation.  All rights reserved.


C:\Dev\Temp\build\httpd-2.4.6\build\win32\httpd.rc(34) : error RC2135 : file not
 found: C:/Dev/Temp/build/httpd

C:\Dev\Temp\build\httpd-2.4.6\build\win32\httpd.rc(40) : error RC2135 : file not
 found: VERSIONINFO

C:\Dev\Temp\build\httpd-2.4.6\build\win32\httpd.rc(41) : error RC2135 : file not
 found: 4

C:\Dev\Temp\build\httpd-2.4.6\build\win32\httpd.rc(42) : error RC2135 : file not
 found: PRODUCTVERSION
NMAKE : fatal error U1077: 'C:\PROGRA~2\MIA713~1\Windows\v7.0A\Bin\RC.Exe' : ret
urn code '0x5'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0
\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0
\VC\BIN\nmake.exe"' : return code '0x2'
Stop.

I will dig more later, but if anything springs to mind what might have
gone wrong there I'd be grateful to hear.

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


Re: httpd24 on Windows?

Posted by Jeff Trawick <tr...@gmail.com>.
On Tue, Nov 5, 2013 at 7:37 AM, Steve Hay <st...@googlemail.com>wrote:

> On 5 November 2013 11:51, Jeff Trawick <tr...@gmail.com> wrote:
> > On Tue, Nov 5, 2013 at 4:07 AM, Steve Hay <st...@googlemail.com>
> > wrote:
> >>
> >> On 5 November 2013 01:00, Steve Hay <st...@googlemail.com> wrote:
> >> > On 4 November 2013 16:02, Steve Hay <st...@googlemail.com>
> wrote:
> >> >> On 4 November 2013 15:38, Jeff Trawick <tr...@gmail.com> wrote:
> >> >>> On Mon, Nov 4, 2013 at 8:43 AM, Jeff Trawick <tr...@gmail.com>
> >> >>> wrote:
> >> >>>>
> >> >>>> On Mon, Nov 4, 2013 at 4:22 AM, Steve Hay
> >> >>>> <st...@googlemail.com>
> >> >>>> wrote:
> >> >>>>>
> >> >>>>> On 30 October 2013 18:24, Steve Hay <st...@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/

Re: httpd24 on Windows?

Posted by Steve Hay <st...@googlemail.com>.
On 5 November 2013 11:51, Jeff Trawick <tr...@gmail.com> wrote:
> On Tue, Nov 5, 2013 at 4:07 AM, Steve Hay <st...@googlemail.com>
> wrote:
>>
>> On 5 November 2013 01:00, Steve Hay <st...@googlemail.com> wrote:
>> > On 4 November 2013 16:02, Steve Hay <st...@googlemail.com> wrote:
>> >> On 4 November 2013 15:38, Jeff Trawick <tr...@gmail.com> wrote:
>> >>> On Mon, Nov 4, 2013 at 8:43 AM, Jeff Trawick <tr...@gmail.com>
>> >>> wrote:
>> >>>>
>> >>>> On Mon, Nov 4, 2013 at 4:22 AM, Steve Hay
>> >>>> <st...@googlemail.com>
>> >>>> wrote:
>> >>>>>
>> >>>>> On 30 October 2013 18:24, Steve Hay <st...@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


Re: httpd24 on Windows?

Posted by Jeff Trawick <tr...@gmail.com>.
On Tue, Nov 5, 2013 at 4:07 AM, Steve Hay <st...@googlemail.com>wrote:

> On 5 November 2013 01:00, Steve Hay <st...@googlemail.com> wrote:
> > On 4 November 2013 16:02, Steve Hay <st...@googlemail.com> wrote:
> >> On 4 November 2013 15:38, Jeff Trawick <tr...@gmail.com> wrote:
> >>> On Mon, Nov 4, 2013 at 8:43 AM, Jeff Trawick <tr...@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 <st...@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).

As far as building with old tools (6.0):

I think this is accurate:
http://httpd.apache.org/docs/2.4/platform/win_compiling.html

I guess it diverges more and more as you use later tools.

-- 
Born in Roswell... married an alien...
http://emptyhammock.com/

Re: httpd24 on Windows?

Posted by Steve Hay <st...@googlemail.com>.
On 5 November 2013 01:00, Steve Hay <st...@googlemail.com> wrote:
> On 4 November 2013 16:02, Steve Hay <st...@googlemail.com> wrote:
>> On 4 November 2013 15:38, Jeff Trawick <tr...@gmail.com> wrote:
>>> On Mon, Nov 4, 2013 at 8:43 AM, Jeff Trawick <tr...@gmail.com> wrote:
>>>>
>>>> On Mon, Nov 4, 2013 at 4:22 AM, Steve Hay <st...@googlemail.com>
>>>> wrote:
>>>>>
>>>>> On 30 October 2013 18:24, Steve Hay <st...@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


Re: httpd24 on Windows?

Posted by Steve Hay <st...@googlemail.com>.
On 4 November 2013 16:02, Steve Hay <st...@googlemail.com> wrote:
> On 4 November 2013 15:38, Jeff Trawick <tr...@gmail.com> wrote:
>> On Mon, Nov 4, 2013 at 8:43 AM, Jeff Trawick <tr...@gmail.com> wrote:
>>>
>>> On Mon, Nov 4, 2013 at 4:22 AM, Steve Hay <st...@googlemail.com>
>>> wrote:
>>>>
>>>> On 30 October 2013 18:24, Steve Hay <st...@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...

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


Re: httpd24 on Windows?

Posted by Steve Hay <st...@googlemail.com>.
On 4 November 2013 15:38, Jeff Trawick <tr...@gmail.com> wrote:
> On Mon, Nov 4, 2013 at 8:43 AM, Jeff Trawick <tr...@gmail.com> wrote:
>>
>> On Mon, Nov 4, 2013 at 4:22 AM, Steve Hay <st...@googlemail.com>
>> wrote:
>>>
>>> On 30 October 2013 18:24, Steve Hay <st...@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.

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


Re: httpd24 on Windows?

Posted by Jeff Trawick <tr...@gmail.com>.
On Mon, Nov 4, 2013 at 8:43 AM, Jeff Trawick <tr...@gmail.com> wrote:

> On Mon, Nov 4, 2013 at 4:22 AM, Steve Hay <st...@googlemail.com>wrote:
>
>> On 30 October 2013 18:24, Steve Hay <st...@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?

>
>
>>
>> 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/
>



-- 
Born in Roswell... married an alien...
http://emptyhammock.com/

Re: httpd24 on Windows?

Posted by Jeff Trawick <tr...@gmail.com>.
On Mon, Nov 4, 2013 at 4:22 AM, Steve Hay <st...@googlemail.com>wrote:

> On 30 October 2013 18:24, Steve Hay <st...@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().


>
> 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/

Re: httpd24 on Windows?

Posted by Steve Hay <st...@googlemail.com>.
On 30 October 2013 18:24, Steve Hay <st...@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

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


Re: httpd24 on Windows?

Posted by Steve Hay <st...@googlemail.com>.
On 30 October 2013 11:07, Jan Kaluža <jk...@redhat.com> wrote:
> On 10/29/2013 12:52 PM, Jan Kaluža wrote:
>>
>> On 10/28/2013 10:05 AM, Steve Hay wrote:
>>>
>>> On 4 October 2013 18:04, Steve Hay <st...@googlemail.com> wrote:
>>>>
>>>> On 18 September 2013 12:31, Jan Kaluža <jk...@redhat.com> wrote:
>>>>>
>>>>> On 09/18/2013 12:46 PM, Steve Hay wrote:
>>>>>>
>>>>>>
>>>>>> On 18 September 2013 11:32, Jan Kaluža <jk...@redhat.com> wrote:
>>>>>>>
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> what's the state of mod_perl httpd24 branch on Windows currently? I
>>>>>>> somehow
>>>>>>> got lost in the updates and I'm not sure what's the current state.
>>>>>>>
>>>>>>> Does it compile and work properly if you build against httpd-2.2?
>>>>>>> If it
>>>>>>> does, maybe we could do the merge and think about release even
>>>>>>> when it
>>>>>>> does
>>>>>>> not work currently on Windows with httpd-2.4.
>>>>>>>
>>>>>>> Lot of people are probably interested in mod_perl for Linux and not
>>>>>>> releasing working code just because of Windows build seems to be
>>>>>>> bad idea
>>>>>>> to
>>>>>>> me. Maybe we could get more people to try fixing mod_perl on Windows
>>>>>>> using
>>>>>>> this strategy too.
>>>>>>>
>>>>>>
>>>>>> This sounds like a good plan, but can I get back to you on this in a
>>>>>> few days time? I'm currently waylaid with the release of perl-5.19.4
>>>>>> and I've forgotten myself where I got to with this on Windows!
>>>>>>
>>>>>
>>>>> Great :). I've just wanted to resurrect this discussion after a while.
>>>>>
>>>>
>>>> I've tried the current httpd24 branch with Apache Lounge's 2.4.6 and
>>>> my own build of Perl 5.19.4. The build works fine but the test suite
>>>> crashes httpd.exe in t/api/add_config.t ("free from wrong pool"),
>>>> which I'm sure was not happening for me previously.
>>>
>>>
>>> I've been looking more at this but haven't figured it out yet.
>>>
>>> Debugging the test server processing the URL
>>> http://localhost:8562/TestAPI__add_config/, I find that it crashes in
>>> modperl_cleanup_pnotes() - in Safefree() on the first call to
>>> Perl_hv_undef_flags():
>>>
>>>          if (header->interpreter != aTHX) {
>>>          Perl_croak_nocontext("panic: free from wrong pool, %p!=%p",
>>>                       header->interpreter, aTHX);
>>>          }
>>>
>>> The header->interpreter is the value saved away in cleanup_data->perl
>>> by modperl_pnotes_cleanup_data(), which is registered as the cleanup
>>> routine when the pnotes is made in modperl_pnotes(), so that's been
>>> correctly restored to aTHX in modperl_cleanup_pnotes(), but the aTHX
>>> in Safefree() is different and I don't know why, or how this was
>>> working before :-/
>>>
>>
>> Hm, I have no idea what's going on here, but it does not happen for me
>> with older Perl. The good thing is that Fedora 20 just updated to
>> Perl-5.18, so I will try to install F20 and Perl-5.18 and give it a try.
>> Will write you soon how it worked.
>
>
> The tests works on Linux even with Perl-5.18, so I presume it's caused by
> the Perl build options on Windows or it's Windows-only related bug...
>

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.

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


Re: httpd24 on Windows?

Posted by Jan Kaluža <jk...@redhat.com>.
On 10/29/2013 12:52 PM, Jan Kaluža wrote:
> On 10/28/2013 10:05 AM, Steve Hay wrote:
>> On 4 October 2013 18:04, Steve Hay <st...@googlemail.com> wrote:
>>> On 18 September 2013 12:31, Jan Kaluža <jk...@redhat.com> wrote:
>>>> On 09/18/2013 12:46 PM, Steve Hay wrote:
>>>>>
>>>>> On 18 September 2013 11:32, Jan Kaluža <jk...@redhat.com> wrote:
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> what's the state of mod_perl httpd24 branch on Windows currently? I
>>>>>> somehow
>>>>>> got lost in the updates and I'm not sure what's the current state.
>>>>>>
>>>>>> Does it compile and work properly if you build against httpd-2.2?
>>>>>> If it
>>>>>> does, maybe we could do the merge and think about release even
>>>>>> when it
>>>>>> does
>>>>>> not work currently on Windows with httpd-2.4.
>>>>>>
>>>>>> Lot of people are probably interested in mod_perl for Linux and not
>>>>>> releasing working code just because of Windows build seems to be
>>>>>> bad idea
>>>>>> to
>>>>>> me. Maybe we could get more people to try fixing mod_perl on Windows
>>>>>> using
>>>>>> this strategy too.
>>>>>>
>>>>>
>>>>> This sounds like a good plan, but can I get back to you on this in a
>>>>> few days time? I'm currently waylaid with the release of perl-5.19.4
>>>>> and I've forgotten myself where I got to with this on Windows!
>>>>>
>>>>
>>>> Great :). I've just wanted to resurrect this discussion after a while.
>>>>
>>>
>>> I've tried the current httpd24 branch with Apache Lounge's 2.4.6 and
>>> my own build of Perl 5.19.4. The build works fine but the test suite
>>> crashes httpd.exe in t/api/add_config.t ("free from wrong pool"),
>>> which I'm sure was not happening for me previously.
>>
>> I've been looking more at this but haven't figured it out yet.
>>
>> Debugging the test server processing the URL
>> http://localhost:8562/TestAPI__add_config/, I find that it crashes in
>> modperl_cleanup_pnotes() - in Safefree() on the first call to
>> Perl_hv_undef_flags():
>>
>>          if (header->interpreter != aTHX) {
>>          Perl_croak_nocontext("panic: free from wrong pool, %p!=%p",
>>                       header->interpreter, aTHX);
>>          }
>>
>> The header->interpreter is the value saved away in cleanup_data->perl
>> by modperl_pnotes_cleanup_data(), which is registered as the cleanup
>> routine when the pnotes is made in modperl_pnotes(), so that's been
>> correctly restored to aTHX in modperl_cleanup_pnotes(), but the aTHX
>> in Safefree() is different and I don't know why, or how this was
>> working before :-/
>>
>
> Hm, I have no idea what's going on here, but it does not happen for me
> with older Perl. The good thing is that Fedora 20 just updated to
> Perl-5.18, so I will try to install F20 and Perl-5.18 and give it a try.
> Will write you soon how it worked.

The tests works on Linux even with Perl-5.18, so I presume it's caused 
by the Perl build options on Windows or it's Windows-only related bug...

Jan Kaluza

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


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


Re: httpd24 on Windows?

Posted by Steve Hay <st...@googlemail.com>.
On 29 October 2013 11:52, Jan Kaluža <jk...@redhat.com> wrote:
> On 10/28/2013 10:05 AM, Steve Hay wrote:
>>
>> On 4 October 2013 18:04, Steve Hay <st...@googlemail.com> wrote:
>>>
>>> I've tried the current httpd24 branch with Apache Lounge's 2.4.6 and
>>> my own build of Perl 5.19.4. The build works fine but the test suite
>>> crashes httpd.exe in t/api/add_config.t ("free from wrong pool"),
>>> which I'm sure was not happening for me previously.
>>
>>
>> I've been looking more at this but haven't figured it out yet.
>>
>> Debugging the test server processing the URL
>> http://localhost:8562/TestAPI__add_config/, I find that it crashes in
>> modperl_cleanup_pnotes() - in Safefree() on the first call to
>> Perl_hv_undef_flags():
>>
>>          if (header->interpreter != aTHX) {
>>          Perl_croak_nocontext("panic: free from wrong pool, %p!=%p",
>>                       header->interpreter, aTHX);
>>          }
>>
>> The header->interpreter is the value saved away in cleanup_data->perl
>> by modperl_pnotes_cleanup_data(), which is registered as the cleanup
>> routine when the pnotes is made in modperl_pnotes(), so that's been
>> correctly restored to aTHX in modperl_cleanup_pnotes(), but the aTHX
>> in Safefree() is different and I don't know why, or how this was
>> working before :-/
>>
>
> Hm, I have no idea what's going on here, but it does not happen for me with
> older Perl. The good thing is that Fedora 20 just updated to Perl-5.18, so I
> will try to install F20 and Perl-5.18 and give it a try. Will write you soon
> how it worked.
>

I've just tried a couple more random (older) perls and have found that
it fails with 5.19.1 and 5.18.0 too, but works with 5.16.0.

However, I suspect the difference is the build configuration rather
than the version. That 5.16.0 has PERL_IMPLICIT_SYS disabled...

I will try current perls with that disabled, and older perls with it
enabled to check this out, but I'm already feeling like that's likely
to be the culprit.

I wonder if it would be worth getting the threading branch merged into
trunk and then update the 2.4 branch from trunk, so as to pull in
those threading fixes -- they might well sort this out. I'll start a
new thread (heh!...) to enquire about the status of that other branch.

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


Re: httpd24 on Windows?

Posted by Jan Kaluža <jk...@redhat.com>.
On 10/28/2013 10:05 AM, Steve Hay wrote:
> On 4 October 2013 18:04, Steve Hay <st...@googlemail.com> wrote:
>> On 18 September 2013 12:31, Jan Kaluža <jk...@redhat.com> wrote:
>>> On 09/18/2013 12:46 PM, Steve Hay wrote:
>>>>
>>>> On 18 September 2013 11:32, Jan Kaluža <jk...@redhat.com> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> what's the state of mod_perl httpd24 branch on Windows currently? I
>>>>> somehow
>>>>> got lost in the updates and I'm not sure what's the current state.
>>>>>
>>>>> Does it compile and work properly if you build against httpd-2.2? If it
>>>>> does, maybe we could do the merge and think about release even when it
>>>>> does
>>>>> not work currently on Windows with httpd-2.4.
>>>>>
>>>>> Lot of people are probably interested in mod_perl for Linux and not
>>>>> releasing working code just because of Windows build seems to be bad idea
>>>>> to
>>>>> me. Maybe we could get more people to try fixing mod_perl on Windows
>>>>> using
>>>>> this strategy too.
>>>>>
>>>>
>>>> This sounds like a good plan, but can I get back to you on this in a
>>>> few days time? I'm currently waylaid with the release of perl-5.19.4
>>>> and I've forgotten myself where I got to with this on Windows!
>>>>
>>>
>>> Great :). I've just wanted to resurrect this discussion after a while.
>>>
>>
>> I've tried the current httpd24 branch with Apache Lounge's 2.4.6 and
>> my own build of Perl 5.19.4. The build works fine but the test suite
>> crashes httpd.exe in t/api/add_config.t ("free from wrong pool"),
>> which I'm sure was not happening for me previously.
>
> I've been looking more at this but haven't figured it out yet.
>
> Debugging the test server processing the URL
> http://localhost:8562/TestAPI__add_config/, I find that it crashes in
> modperl_cleanup_pnotes() - in Safefree() on the first call to
> Perl_hv_undef_flags():
>
>          if (header->interpreter != aTHX) {
>          Perl_croak_nocontext("panic: free from wrong pool, %p!=%p",
>                       header->interpreter, aTHX);
>          }
>
> The header->interpreter is the value saved away in cleanup_data->perl
> by modperl_pnotes_cleanup_data(), which is registered as the cleanup
> routine when the pnotes is made in modperl_pnotes(), so that's been
> correctly restored to aTHX in modperl_cleanup_pnotes(), but the aTHX
> in Safefree() is different and I don't know why, or how this was
> working before :-/
>

Hm, I have no idea what's going on here, but it does not happen for me 
with older Perl. The good thing is that Fedora 20 just updated to 
Perl-5.18, so I will try to install F20 and Perl-5.18 and give it a try. 
Will write you soon how it worked.

Regards,
Jan Kaluza


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


Re: httpd24 on Windows?

Posted by Steve Hay <st...@googlemail.com>.
On 4 October 2013 18:04, Steve Hay <st...@googlemail.com> wrote:
> On 18 September 2013 12:31, Jan Kaluža <jk...@redhat.com> wrote:
>> On 09/18/2013 12:46 PM, Steve Hay wrote:
>>>
>>> On 18 September 2013 11:32, Jan Kaluža <jk...@redhat.com> wrote:
>>>>
>>>> Hi,
>>>>
>>>> what's the state of mod_perl httpd24 branch on Windows currently? I
>>>> somehow
>>>> got lost in the updates and I'm not sure what's the current state.
>>>>
>>>> Does it compile and work properly if you build against httpd-2.2? If it
>>>> does, maybe we could do the merge and think about release even when it
>>>> does
>>>> not work currently on Windows with httpd-2.4.
>>>>
>>>> Lot of people are probably interested in mod_perl for Linux and not
>>>> releasing working code just because of Windows build seems to be bad idea
>>>> to
>>>> me. Maybe we could get more people to try fixing mod_perl on Windows
>>>> using
>>>> this strategy too.
>>>>
>>>
>>> This sounds like a good plan, but can I get back to you on this in a
>>> few days time? I'm currently waylaid with the release of perl-5.19.4
>>> and I've forgotten myself where I got to with this on Windows!
>>>
>>
>> Great :). I've just wanted to resurrect this discussion after a while.
>>
>
> I've tried the current httpd24 branch with Apache Lounge's 2.4.6 and
> my own build of Perl 5.19.4. The build works fine but the test suite
> crashes httpd.exe in t/api/add_config.t ("free from wrong pool"),
> which I'm sure was not happening for me previously.

I've been looking more at this but haven't figured it out yet.

Debugging the test server processing the URL
http://localhost:8562/TestAPI__add_config/, I find that it crashes in
modperl_cleanup_pnotes() - in Safefree() on the first call to
Perl_hv_undef_flags():

        if (header->interpreter != aTHX) {
        Perl_croak_nocontext("panic: free from wrong pool, %p!=%p",
                     header->interpreter, aTHX);
        }

The header->interpreter is the value saved away in cleanup_data->perl
by modperl_pnotes_cleanup_data(), which is registered as the cleanup
routine when the pnotes is made in modperl_pnotes(), so that's been
correctly restored to aTHX in modperl_cleanup_pnotes(), but the aTHX
in Safefree() is different and I don't know why, or how this was
working before :-/

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