pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

2009Q4: apache22 (devel/apr) bug on solaris X86 32Bit



Hi,

when I was running apache22 with mod_proxy or mod_jk in conjunction with
tomcat the server seg faulted, and the following messages appeared in
the error log

[Wed Feb 24 10:53:37 2010] [notice] child pid 27462 exit signal Segmentation 
fault (11)
[Wed Feb 24 10:53:37 2010] [error] (11)Resource temporarily unavailable: 
apr_pollset_poll: (listen)
[Wed Feb 24 10:53:38 2010] [error] (11)Resource temporarily unavailable: 
apr_pollset_poll: (listen)
[Wed Feb 24 10:53:38 2010] [notice] child pid 27482 exit signal Segmentation 
fault (11)
[Wed Feb 24 10:53:38 2010] [notice] child pid 27475 exit signal Segmentation 
fault (11)

and the server did not respond in a decent time.

There seems to be a bug in apr's port_getn or the underlaying solaris kernel 
function, as mentioned here:

https://issues.apache.org/bugzilla/show_bug.cgi?id=48029

An appropriate patch is offered there, too:

http://svn.apache.org/viewvc/apr/apr/branches/1.3.x/poll/unix/port.c?r1=807269&r2=829803

I added the patch to devel/apr as devel/apr/patches/patch-aa

$NetBSD$

--- poll/unix/port.c.orig       2009-08-24 15:05:59.000000000 +0000
+++ poll/unix/port.c
@@ -101,8 +101,11 @@ static apr_status_t call_port_getn(int p
     }

     ret = port_getn(port, list, max, nget, tvptr);
+    /* Note: 32-bit port_getn() on Solaris 10 x86 returns large negative
+     * values instead of 0 when returning immediately.
+     */

-    if (ret < 0) {
+    if (ret == -1) {
         rv = apr_get_netos_error();

         switch(rv) {

br


-- 
ïHarald Strack, Dipl.Inf.(FH)
IT Development

ssystems
c/o todo GmbH
Alt-Moabit 60a
10555 Berlin

Tel:     +49 30 726 192 0
Fax:     +49 30 726 192 192
http://www.ssystems.de


Home | Main Index | Thread Index | Old Index