[Varnish] #1848: vev's asynchronous signal handling poses problems for manager process

Varnish varnish-bugs at varnish-cache.org
Thu Jan 28 00:31:03 CET 2016


#1848: vev's asynchronous signal handling poses problems for manager process
------------------------+----------------------
 Reporter:  dho         |       Type:  defect
   Status:  new         |   Priority:  normal
Milestone:              |  Component:  varnishd
  Version:  trunk       |   Severity:  minor
 Keywords:  vev signal  |
------------------------+----------------------
 Long version is available at [https://www.varnish-
 cache.org/lists/pipermail/varnish-dev/2016-January/008758.html]

 Vev handles signals by recording them, and processing them as "events"
 asynchronously in its main event loop. When consumers of vev use syscalls
 that cannot be restarted, the behavior they should exhibit is unclear
 (consider the manager getting SIGCHLD while waiting for a CLI response,
 perhaps).

 In particular, the manager process receiving a signal while waiting for a
 response from a stuck CLI can cause both the manager and child processes
 to hang indefinitely. Depending on the state of the system, behaviors
 range from "works as expected" to CLI desync to hung processes.

 Not sure what the best strategy for patching is; the issue probably
 doesn't matter much. The best thing I've come up with so far is to have a
 flag on vevsig that allows one to force vev to handle that signal
 synchronously. Thoughts?

-- 
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1848>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator



More information about the varnish-bugs mailing list