INN 2.5.4 strange crash

Julien ÉLIE julien at trigofacile.com
Tue Feb 3 13:00:47 UTC 2015


Hi Petr,

>> However, I am still puzzled as for the origin of the error.
>> innfeed-neva2! is removed from sleeping (SCHANremove just before that 
>> log)
>> but is still considered to be sleeping the next run of the loop (and 
>> again
>> without Waker...).
> 
> I saw "blocked sleeping" before (for my two channels, innfeed-neva1 and
> innfeed-neva2 at varios times), but not in the time of crash.

They do not seem related then.


I do not see what a proper fix would be for that annoying crash.
As the state of the channel is not the one it should be, and appears to 
be
unusable even after removing its sleeping state, I suggest to just close 
it.

Could you please change in chan.c:

                     if (cp->Waker != NULL) {
                         (*cp->Waker)(cp);
                     } else {
                         warn("%s %d sleeping without Waker", 
CHANname(cp), fd);
                     }

to:

                     if (cp->Waker != NULL) {
                         (*cp->Waker)(cp);
                     } else {
                         name = CHANname(cp);
                         warn("%s %d sleeping without Waker", name, fd);
                         SITEchanclose(cp);
                         CHANclose(cp, name);
                     }

and tell us if it works better?
I hope you will see "%s %d sleeping without Waker" only once, then the 
channel
closes properly and reopens fine a bit later.

When you have such logs, please paste them so as to check the closing is 
fine.

-- 
Julien


More information about the inn-workers mailing list