[Varnish] #744: CLI repeats previous commands instead of executing the current one

Varnish varnish-bugs at varnish-cache.org
Sat Aug 21 15:40:50 CEST 2010


#744: CLI repeats previous commands instead of executing the current one
----------------------+-----------------------------------------------------
 Reporter:  tgr       |       Owner:  phk  
     Type:  defect    |      Status:  new  
 Priority:  normal    |   Milestone:       
Component:  varnishd  |     Version:  2.1.2
 Severity:  major     |    Keywords:  cli  
----------------------+-----------------------------------------------------

Comment(by phk):

 Ticket #754 was closed as duplicate of this ticket, it has a very useful
 typesecript.

 I think I can see how this could happen, but have not determined what the
 correct fix is yet.

 First, the "help" command output consists of two parts:  the stuff
 generated in the manager and the output from the same request when sent to
 the child.  This gives the impression that client responses are mixed up
 when they actually are not.

 What I suppose happen, is that we send a CLI command to the child which it
 takes longer than the cli_timeout param to serve, so the manager abandons
 the attempt to receive the response and returns CLIS_COMM.

 Next time we send a CLI command to the child, the previously un-received
 response is first in the pipeline, and we get the behaviour seen in the
 #754 typescript.

 The clean and easily understandable solution is to always treat CLI errors
 from the child as fatal, and restart the child on all such failures.

 This is somewhat draconian, and certainly will teach people to set the
 cli_timeout properly.

 I have not found any reasonable alternatives.

 Input welcome, while I try to implement this fix.

-- 
Ticket URL: <http://www.varnish-cache.org/ticket/744#comment:3>
Varnish <http://varnish-cache.org/>
The Varnish HTTP Accelerator




More information about the varnish-bugs mailing list