[Varnish] #132: Varnish 1.1 dies with assert error in SES_Delete

Varnish varnish-bugs at projects.linpro.no
Tue Sep 11 15:05:34 CEST 2007


#132: Varnish 1.1 dies with assert error in SES_Delete
----------------------------------+-----------------------------------------
 Reporter:  anders                |        Owner:  phk          
     Type:  defect                |       Status:  new          
 Priority:  high                  |    Milestone:  Varnish 1.1.2
Component:  varnishd              |      Version:  1.1          
 Severity:  major                 |   Resolution:               
 Keywords:  core dump SES_Delete  |  
----------------------------------+-----------------------------------------
Comment (by janis.putrams):

 Hi!
 I put line

 {{{
 assert(!isnan(sp->t_end));
 }}}

 before all calls to SES_Delete().
 Overloaded one of the webservers and got several Assert errors. So far it
 happens only when SES_Delete is called from vca_return_session function.
 So, modified function looks like this:

 {{{
 void
 vca_return_session(struct sess *sp)
 {

     CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
     AZ(sp->obj);
     AZ(sp->vcl);
     if (sp->fd < 0) {
         assert(!isnan(sp->t_end));
         SES_Delete(sp);
     } else
          assert(sizeof sp == write(vca_pipes[1], &sp, sizeof sp));
 }

 }}}
 and Asser error is:

 {{{
 Child said (2, 4440): <<Assert error in vca_return_session(),
 cache_acceptor.c line 260:
   Condition(!isnan(sp->t_end)) not true.
   errno = 0 (Success)
 >>
 Cache child died pid=4440 status=0x86
 Clean child
 Child cleaned
 }}}

-- 
Ticket URL: <http://varnish.projects.linpro.no/ticket/132#comment:9>
Varnish <http://varnish.projects.linpro.no/>
The Varnish HTTP Accelerator


More information about the varnish-bugs mailing list