You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Jeff Trawick <tr...@gmail.com> on 2014/02/20 13:52:34 UTC
modules calling ap_lingering_close()!!!
WSGI 3.4 daemon mode crashing with httpd 2.4.x...
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xaef17b70 (LWP 32761)]
0x08078a32 in update_child_status_internal ()
(gdb) where
#0 0x08078a32 in update_child_status_internal ()
#1 0x0809952d in ap_start_lingering_close ()
#2 0x080995a9 in ap_lingering_close ()
#3 0xb72d71c0 in wsgi_process_socket () from /usr/local/modules/mod_wsgi.so
#4 0xb72dadbd in wsgi_daemon_thread () from /usr/local/modules/mod_wsgi.so
#5 0xb772ec36 in dummy_worker () from /usr/local/lib/libapr-1.so.0
#6 0xb76b896e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#7 0xb7620ffe in clone () from /lib/tls/i686/cmov/libc.so.6
I'm just expressing surprise and giving a hint at the moment ;) Maybe I'll
find time soon to look in detail.
--
Born in Roswell... married an alien...
http://emptyhammock.com/
Re: modules calling ap_lingering_close()!!!
Posted by Jim Jagielski <ji...@jaguNET.com>.
Seems to me that they could also use that "slave" connection
just added to trunk ;)
That's 2 useful modules (mod_spdy and wsgi) that provide
some clues on what's needed to "break out" connections
from requests.
PS: An mpm should also provide an API to spin-out a thread...
On Feb 20, 2014, at 10:23 AM, Joe Orton <jo...@redhat.com> wrote:
> On Thu, Feb 20, 2014 at 07:52:34AM -0500, Jeff Trawick wrote:
>> WSGI 3.4 daemon mode crashing with httpd 2.4.x...
>>
>> Program received signal SIGSEGV, Segmentation fault.
>> [Switching to Thread 0xaef17b70 (LWP 32761)]
>> 0x08078a32 in update_child_status_internal ()
>> (gdb) where
>> #0 0x08078a32 in update_child_status_internal ()
>> #1 0x0809952d in ap_start_lingering_close ()
>> #2 0x080995a9 in ap_lingering_close ()
>
> Fixed in:
>
> http://code.google.com/p/modwsgi/source/detail?path=/mod_wsgi.c&name=mod_wsgi-3.X&r=bdbeacb88f348909845445e9d52eb7be401abaf1
>
> mod_wsgi does some surprising things with httpd interfaces which should
> probably be internal-only, or at least better documented API!
>
> Regards, Joe
>
Re: modules calling ap_lingering_close()!!!
Posted by Jeff Trawick <tr...@gmail.com>.
On Thu, Feb 20, 2014 at 10:23 AM, Joe Orton <jo...@redhat.com> wrote:
> On Thu, Feb 20, 2014 at 07:52:34AM -0500, Jeff Trawick wrote:
> > WSGI 3.4 daemon mode crashing with httpd 2.4.x...
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > [Switching to Thread 0xaef17b70 (LWP 32761)]
> > 0x08078a32 in update_child_status_internal ()
> > (gdb) where
> > #0 0x08078a32 in update_child_status_internal ()
> > #1 0x0809952d in ap_start_lingering_close ()
> > #2 0x080995a9 in ap_lingering_close ()
>
> Fixed in:
>
>
> http://code.google.com/p/modwsgi/source/detail?path=/mod_wsgi.c&name=mod_wsgi-3.X&r=bdbeacb88f348909845445e9d52eb7be401abaf1
>
> mod_wsgi does some surprising things with httpd interfaces which should
> probably be internal-only, or at least better documented API!
>
> Regards, Joe
>
Thanks!
--
Born in Roswell... married an alien...
http://emptyhammock.com/
Re: modules calling ap_lingering_close()!!!
Posted by Jeff Trawick <tr...@gmail.com>.
On Thu, Feb 20, 2014 at 6:24 PM, Graham Dumpleton <
graham.dumpleton@gmail.com> wrote:
>
>
>
> On 21 February 2014 02:23, Joe Orton <jo...@redhat.com> wrote:
>
>> On Thu, Feb 20, 2014 at 07:52:34AM -0500, Jeff Trawick wrote:
>> > WSGI 3.4 daemon mode crashing with httpd 2.4.x...
>> >
>> > Program received signal SIGSEGV, Segmentation fault.
>> > [Switching to Thread 0xaef17b70 (LWP 32761)]
>> > 0x08078a32 in update_child_status_internal ()
>> > (gdb) where
>> > #0 0x08078a32 in update_child_status_internal ()
>> > #1 0x0809952d in ap_start_lingering_close ()
>> > #2 0x080995a9 in ap_lingering_close ()
>>
>> Fixed in:
>>
>>
>> http://code.google.com/p/modwsgi/source/detail?path=/mod_wsgi.c&name=mod_wsgi-3.X&r=bdbeacb88f348909845445e9d52eb7be401abaf1
>>
>> mod_wsgi does some surprising things with httpd interfaces which should
>> probably be internal-only, or at least better documented API!
>>
>
> Crap. I thought those httpd 2.4 fixes were already in mod_wsgi 3.4.
>
> Another reason I have to get off my backside and release an updated
> version. Has been too long.
>
<2.4-nag>https://code.google.com/p/modwsgi/issues/detail?id=292</2.4-nag> (
:) )
>
> And yes mod_wsgi does lots of evil things which no doubt would be regarded
> as evil. Most come from daemon mode. One day I will simply rewrite daemon
> mode request handling to not be dependent on Apache request structures and
> then it will not be so bad.
>
> Graham
>
>
--
Born in Roswell... married an alien...
http://emptyhammock.com/
Re: modules calling ap_lingering_close()!!!
Posted by Joe Orton <jo...@redhat.com>.
On Fri, Feb 21, 2014 at 10:24:25AM +1100, Graham Dumpleton wrote:
> Crap. I thought those httpd 2.4 fixes were already in mod_wsgi 3.4.
>
> Another reason I have to get off my backside and release an updated
> version. Has been too long.
That would be very useful!
> And yes mod_wsgi does lots of evil things which no doubt would be regarded
> as evil. Most come from daemon mode. One day I will simply rewrite daemon
> mode request handling to not be dependent on Apache request structures and
> then it will not be so bad.
I don't think it is that bad, but since few other third-party modules
use the API like that, it's a going to be a bit fragile.
Regards, Joe
Re: modules calling ap_lingering_close()!!!
Posted by Graham Dumpleton <gr...@gmail.com>.
On 21 February 2014 02:23, Joe Orton <jo...@redhat.com> wrote:
> On Thu, Feb 20, 2014 at 07:52:34AM -0500, Jeff Trawick wrote:
> > WSGI 3.4 daemon mode crashing with httpd 2.4.x...
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > [Switching to Thread 0xaef17b70 (LWP 32761)]
> > 0x08078a32 in update_child_status_internal ()
> > (gdb) where
> > #0 0x08078a32 in update_child_status_internal ()
> > #1 0x0809952d in ap_start_lingering_close ()
> > #2 0x080995a9 in ap_lingering_close ()
>
> Fixed in:
>
>
> http://code.google.com/p/modwsgi/source/detail?path=/mod_wsgi.c&name=mod_wsgi-3.X&r=bdbeacb88f348909845445e9d52eb7be401abaf1
>
> mod_wsgi does some surprising things with httpd interfaces which should
> probably be internal-only, or at least better documented API!
>
Crap. I thought those httpd 2.4 fixes were already in mod_wsgi 3.4.
Another reason I have to get off my backside and release an updated
version. Has been too long.
And yes mod_wsgi does lots of evil things which no doubt would be regarded
as evil. Most come from daemon mode. One day I will simply rewrite daemon
mode request handling to not be dependent on Apache request structures and
then it will not be so bad.
Graham
Re: modules calling ap_lingering_close()!!!
Posted by Rainer Jung <ra...@kippdata.de>.
On 20.02.2014 18:24, Jeff Trawick wrote:
> BTW, do you know if there's a known collection of patches for 2.4
> support or for other critical fixes?
mod_wsgi is running on eos and reliably serves wiki.apache.org using the
following patch on top of 3.4 in combination with 2.4.4, 2.4.6 and 2.4.6
(over the months):
--- mod_wsgi.c 2012-08-23 03:10:44.000000000 +0000
+++ mod_wsgi.c 2013-05-01 17:40:01.083241157 +0000
@@ -10600,7 +10600,13 @@
* will add their own input/output filters to the chain.
*/
+#if AP_MODULE_MAGIC_AT_LEAST(20110619,0)
+ /* For 2.4 a NULL sbh pointer should work. */
+ sbh = NULL;
+#else
+ /* For 2.2 a dummy sbh pointer is needed. */
ap_create_sb_handle(&sbh, p, -1, 0);
+#endif
c = (conn_rec *)apr_pcalloc(p, sizeof(conn_rec));
@@ -12873,8 +12879,10 @@
* here for status but Apache 2.4 prohibits it now.
*/
- if (r->status == 200 && !strcmp(r->status_line, "200 Error"))
+ if (r->status == 200 && !strcmp(r->status_line, "200 Error")) {
+ r->status_line = NULL;
return HTTP_INTERNAL_SERVER_ERROR;
+ }
/*
* Look for 'Location' header and if an internal
Regards,
Rainer
Re: modules calling ap_lingering_close()!!!
Posted by Joe Orton <jo...@redhat.com>.
On Thu, Feb 20, 2014 at 12:24:23PM -0500, Jeff Trawick wrote:
> BTW, do you know if there's a known collection of patches for 2.4 support
> or for other critical fixes?
This shows what we have in Fedora, FWIW:
http://pkgs.fedoraproject.org/cgit/mod_wsgi.git/tree/
... all of which are in the upstream hg tree, except for the Python3
change which might not be.
Regards, Joe
Re: modules calling ap_lingering_close()!!!
Posted by Jeff Trawick <tr...@gmail.com>.
On Thu, Feb 20, 2014 at 10:23 AM, Joe Orton <jo...@redhat.com> wrote:
> On Thu, Feb 20, 2014 at 07:52:34AM -0500, Jeff Trawick wrote:
> > WSGI 3.4 daemon mode crashing with httpd 2.4.x...
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > [Switching to Thread 0xaef17b70 (LWP 32761)]
> > 0x08078a32 in update_child_status_internal ()
> > (gdb) where
> > #0 0x08078a32 in update_child_status_internal ()
> > #1 0x0809952d in ap_start_lingering_close ()
> > #2 0x080995a9 in ap_lingering_close ()
>
> Fixed in:
>
>
> http://code.google.com/p/modwsgi/source/detail?path=/mod_wsgi.c&name=mod_wsgi-3.X&r=bdbeacb88f348909845445e9d52eb7be401abaf1
>
> mod_wsgi does some surprising things with httpd interfaces which should
> probably be internal-only, or at least better documented API!
>
> Regards, Joe
>
BTW, do you know if there's a known collection of patches for 2.4 support
or for other critical fixes?
--
Born in Roswell... married an alien...
http://emptyhammock.com/
Re: modules calling ap_lingering_close()!!!
Posted by Jim Jagielski <ji...@jaguNET.com>.
That looks like an *old* diff/patch, fwiw.
On Feb 20, 2014, at 10:23 AM, Joe Orton <jo...@redhat.com> wrote:
> On Thu, Feb 20, 2014 at 07:52:34AM -0500, Jeff Trawick wrote:
>> WSGI 3.4 daemon mode crashing with httpd 2.4.x...
>>
>> Program received signal SIGSEGV, Segmentation fault.
>> [Switching to Thread 0xaef17b70 (LWP 32761)]
>> 0x08078a32 in update_child_status_internal ()
>> (gdb) where
>> #0 0x08078a32 in update_child_status_internal ()
>> #1 0x0809952d in ap_start_lingering_close ()
>> #2 0x080995a9 in ap_lingering_close ()
>
> Fixed in:
>
> http://code.google.com/p/modwsgi/source/detail?path=/mod_wsgi.c&name=mod_wsgi-3.X&r=bdbeacb88f348909845445e9d52eb7be401abaf1
>
> mod_wsgi does some surprising things with httpd interfaces which should
> probably be internal-only, or at least better documented API!
>
> Regards, Joe
>
Re: modules calling ap_lingering_close()!!!
Posted by Joe Orton <jo...@redhat.com>.
On Thu, Feb 20, 2014 at 07:52:34AM -0500, Jeff Trawick wrote:
> WSGI 3.4 daemon mode crashing with httpd 2.4.x...
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0xaef17b70 (LWP 32761)]
> 0x08078a32 in update_child_status_internal ()
> (gdb) where
> #0 0x08078a32 in update_child_status_internal ()
> #1 0x0809952d in ap_start_lingering_close ()
> #2 0x080995a9 in ap_lingering_close ()
Fixed in:
http://code.google.com/p/modwsgi/source/detail?path=/mod_wsgi.c&name=mod_wsgi-3.X&r=bdbeacb88f348909845445e9d52eb7be401abaf1
mod_wsgi does some surprising things with httpd interfaces which should
probably be internal-only, or at least better documented API!
Regards, Joe