INN 2.5.4 strange crash

Julien ÉLIE julien at trigofacile.com
Mon Jan 19 20:55:55 UTC 2015


Hi Petr,

>> In your message, the backtrace also hints at line 1284 of chan.c:
>>     (*cp->Waker)(cp);
>> but I do not see why an error would happen here.
>> *cp->Waker is either SITEspoolwake or CHANwakeup but I do not see
>> what could be NULL there.
>
> After I rebuild INN with new flags ("-g -O0 -fno-inline"), I recently saw
> 2 segfaults:

Are you still regularly seeing segfaults?


> #0  0x0 in ?? ()
> (gdb) bt
> #0  0x0 in ?? ()
> #1  0x805b7f0 in CHANreadloop () at chan.c:1284
> #2  0x805db7b in main (ac=0, av=0xbfbfeec4) at innd.c:750
> (gdb)
>
> Line 1284 is still present in new gdb backtrace...

I'm puzzled again by that backtrace.

Just to be sure, do you have enough file descriptors on your system?
No line like
   "%s number of descriptors (%d) exceeding or equaling FD_SETSIZE (%d)"
   "free but was in WMASK"
   "free but was in RMASK"
in your news logs?


Well, though cp->Waker should not be NULL at that line, could you please 
try the following change and tell us whether the issue is still present?

--- chan.c	(révision 9776)
+++ chan.c	(copie de travail)
@@ -1278,7 +1278,7 @@
                      FD_CLR(fd, &channels.sleep_set);
                      close(fd);
                      cp->fd = -1;
-                } else {
+                } else if (cp->Waker != NULL) {
                      cp->LastActive = Now.tv_sec;
                      SCHANremove(cp);
                      (*cp->Waker)(cp);

-- 
Julien ÉLIE

« Ils ont de ces armes secrètes, les Gaulois, qui devraient être
   interdites par la commission internationale des Helvètes ! »
   (Astérix)


More information about the inn-workers mailing list