0

I have varnish 4.1.2 installed, it starts fine from the command line but won't start when rebooting the server.

The syslog shows that the address is already in use (port 8080). There's nothing else installed on this server, it's a dedicated varnish server.

When starting from boot it looks like a panic occurs, here's the output from the panic.show in varnishadm

"Assert error in child_sigsegv_handler(), mgt/mgt_child.c line 282:
  Condition(Segmentation fault by instruction at 0x20bf68) not true.
thread = (cache-worker)
version = varnish-4.1.2 revision 0d7404e
ident = Linux,3.13.0-45-generic,x86_64,-junix,-smalloc,-smalloc,-hcritbit,epoll
Backtrace:
  0x433976: varnishd() [0x433976]
  0x452c43: varnishd() [0x452c43]
  0x7fdc2af61340: libpthread.so.0(+0x10340) [0x7fdc2af61340]
  0x43fba9: varnishd(VCL_DefaultDirector+0x19) [0x43fba9]
  0x436e05: varnishd(CNT_Request+0x9a5) [0x436e05]
  0x44e9d3: varnishd(HTTP1_Session+0xd3) [0x44e9d3]
  0x439d0d: varnishd(SES_Proto_Req+0x5d) [0x439d0d]
  0x4493d1: varnishd() [0x4493d1]
  0x44983b: varnishd() [0x44983b]
  0x7fdc2af59182: libpthread.so.0(+0x8182) [0x7fdc2af59182]
req = 0x7fdc2219a020 {
  vxid = 327766, step = R_STP_RECV,
  req_body = R_BODY_NONE,
  restarts = 0, esi_level = 0,
  sp = 0x7fdc2a1c0220 {
    fd = 22, vxid = 327765,
    client = 192.168.55.13 47216,
    step = S_STP_H1PROC,
  },
  worker = 0x7fdc2c2bac40 {
    stack = {0x7fdc2c2bb000 -> 0x7fdc2c2af000},
    ws = 0x7fdc2c2bae38 {
      id = \"wrk\",
      {s,f,r,e} = {0x7fdc2c2ba3e0,0x7fdc2c2ba3e0,(nil),+2040},
    },
    VCL::method = SYNTH,
    VCL::return = deliver,
    VCL::methods = {},
  },
  ws = 0x7fdc2219a200 {
    id = \"req\",
    {s,f,r,e} = {0x7fdc2219c000,+152,(nil),+57336},
  },
  http_conn = 0x7fdc2219a128 {
    fd = 22,
    doclose = NULL,
    ws = 0x7fdc2219a200,
    {rxbuf_b, rxbuf_e} = {0x7fdc2219c048, 0x7fdc2219c073},
    {pipeline_b, pipeline_e} = {(nil), (nil)},
    content_length = -1,
    body_status = none,
    first_byte_timeout = 0.000000,
    between_bytes_timeout = 0.000000,
  },
  http[req] = 0x7fdc2219a298 {
    ws[req] = 0x7fdc2219a200,
    hdrs {
      \"GET\",
      \"/ping\",
      \"HTTP/1.0\",
      \"Host: www.example.com\",
      \"X-Forwarded-For: 192.168.55.13\",
    },
  },
  vcl = {
    temp = warm
    srcname = {
"

The VCL file compiles file when using varnishd -C -f /etc/varnish/default.vcl

It looks like the master process is still running. Killing all the varnishd, varnishlog, and varnishncsa processes allows the service to start again.

  • Have to add that I'm using the puppet module from maxchk to manage the varnish install. I'm wondering if there could somehow be something wrong with the module managing the service, and attempting to start an already started instance. – Stephen Mahood Apr 23 '16 at 16:34
  • I've found that if the process is started interactively then the resulting pid file is /run/varnish.pid whereas if it is started from a reboot of the server the pid file is /run/S20varnish.pid, which doesn't exist – Stephen Mahood Apr 23 '16 at 17:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.