[Varnish] #243: Missing errorhandling code in cnt_lookup(), cache_center.c line 543 when using restart

Varnish varnish-bugs at projects.linpro.no
Fri Jun 6 23:32:43 CEST 2008


#243: Missing errorhandling code in cnt_lookup(), cache_center.c line 543 when
using restart
----------------------+-----------------------------------------------------
 Reporter:  drewr     |        Owner:  phk       
     Type:  defect    |       Status:  closed    
 Priority:  normal    |    Milestone:            
Component:  varnishd  |      Version:  trunk     
 Severity:  major     |   Resolution:  worksforme
 Keywords:            |  
----------------------+-----------------------------------------------------
Changes (by phk):

  * status:  new => closed
  * resolution:  => worksforme

Comment:

 The short explanation:

 You have run out of session workspace.

 Try increasing the parameter sess_workspace, that should fix it.

 The long explanation:

 When you do a restart, we start all over again, and amongst other things,
 that means rebuilding the hash string for the request, because in addition
 to selecting a different backend, one could also imagine trying a
 different hash strategy to find a matching object.

 Unfortunately, the hash is often one of the major memory consumers, and
 therefore this will put stress on the session workspace.

 In theory, a really inteligent VCL compiler could tell if it was safe to
 reuse the previously built hash, but that is not in the cards any time
 soon.

 The other relevant point is, if it is possible to release the memory used
 during the attempt that restarted, rather than just keep piling more on
 top of it.

 This is more feasible, but still a bit of nasty work, but I'll put it on
 the post-2 todo list.

 And yes, running out of session memory should be handled more gracefully.

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


More information about the varnish-bugs mailing list