assertion -- cxn->writeBlockedTimerId == 0 is back

Russ Allbery rra at stanford.edu
Fri Oct 1 06:03:57 UTC 2004


Christophe Wolfhugel <wolf at oleane.net> writes:

> In recent snapshots :

> Aug  3 12:37:34 s5 innfeed[2255]: assertion -- cxn->writeBlockedTimerId == 0 -- failed in file connection.c line 3667

> I get a few per 24h (about 10).

> No more informations for now, investigation under progress.

I looked at this for a little while, and I see that in various places we
check to see if a write is pending as well as seeing if the queue is empty
before calling cxnIdle with a comment that some hosts return responses
before we're done sending data, but in other places we don't do this.

I wonder if making this uniform so that every place where we send an
article to a peer, we check for a pending write before marking the
connection idle would fix this problem.  It at least appears to be a
harmless fix.  I'm going to go ahead and make that fix and see if it
helps.

The other place that's suspicious is the code for handling the 400
response, which can, I think, leave a pending write timer.  But I don't
understand the code well enough to be sure.

-- 
Russ Allbery (rra at stanford.edu)             <http://www.eyrie.org/~eagle/>

    Please send questions to the list rather than mailing me directly.
     <http://www.eyrie.org/~eagle/faqs/questions.html> explains why.


More information about the inn-workers mailing list