[INN] #121: innfeed crashes after a failed assertion

INN rra at stanford.edu
Thu Jan 8 18:27:58 UTC 2009


#121: innfeed crashes after a failed assertion
---------------------+------------------------------------------------------
 Reporter:  iulius   |       Owner:  eagle
     Type:  defect   |      Status:  new  
 Priority:  high     |   Milestone:  2.5.0
Component:  innfeed  |     Version:       
 Severity:  normal   |    Keywords:       
---------------------+------------------------------------------------------
 A long-standing issue in innfeed which sometimes crashes with:

 {{{
 2009-01-04 19:39:50 innfeed: assertion -- cxn != NULL -- failed in file
 connection.c line 1171
 2009-01-04 20:59:43 innfeed: assertion -- cxn != NULL -- failed in file
 connection.c line 1171
 }}}

 It comes from cxnCheckstate() in connection.c, called only once in host.c.
 We should check whether the connection is still here.  It may not have
 been affected during a for loop.  For instance, we have:

 {{{
     for (idx = 0 ; idx < host->maxConnections ; idx++)
       if (!host->cxnActive [idx] && !host->cxnSleeping [idx] &&
           (cxn = host->connections[idx]) != host->notThisCxn)
 }}}

 We could have a case where all the connections to a host are inactive and
 sleeping.  Therefore, cxn will still be NULL
 and passed to cxnCheckstate().


 Suggested patch:

 {{{
 Index: host.c
 ===================================================================
 --- host.c      (révision 8263)
 +++ host.c      (copie de travail)
 @@ -1783,7 +1783,7 @@
        delArticle (extraRef) ;

        remArticle (article,&host->processed,&host->processedTail) ;
 -      if (!cxnCheckstate (cxn))
 +      if (cxn == NULL || !cxnCheckstate (cxn))
          {
            host->artsToTape++ ;
            host->gArtsToTape++ ;
 }}}

-- 
Ticket URL: <http://inn.eyrie.org/trac/ticket/121>
INN <http://www.eyrie.org/~eagle/software/inn/>
InterNetNews


More information about the inn-bugs mailing list