[Varnish] #1330: VSL_Dispatch parameters 'fd' and 'spec' intermittently called with uninitialized values

Varnish varnish-bugs at varnish-cache.org
Mon Aug 19 17:07:36 CEST 2013

#1330: VSL_Dispatch parameters 'fd' and 'spec' intermittently called with
uninitialized values
 Reporter:  geoff       |       Owner:
     Type:  defect      |      Status:  new
 Priority:  high        |   Milestone:
Component:  varnishlog  |     Version:  3.0.3
 Severity:  major       |  Resolution:
 Keywords:              |

Comment (by geoff):

 In IRC we mentioned the possibility that the compiler may be interfering,
 maybe an inappropriate optimization. So here's how I build.

 First of all, my own environment, where I build to develop:

 $ uname -a
 Linux gsimmons 3.2.0-0.bpo.4-amd64 #1 SMP Debian 3.2.46-1~bpo60+1 x86_64

 $ gcc --version
 gcc (Debian 4.4.5-8) 4.4.5

 $ ./configure --enable-developer-warnings --enable-debugging-symbols
 --enable-extra-developer-warnings --enable-werror --enable-diagnostics

 For deployments on our test and live environments, we build RPMs on
 Redhat. The main difference in the configure step is just that it sets
 fewer debugging flags, and sets some paths (install prefix, runtime lib
 path etc.) to non-standard locations (masked here):

 $ uname -a
 Linux jenkins-dev-b03507 2.6.32-279.14.1.el6.x86_64 #1 SMP Mon Oct 15
 13:44:51 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux

 $ gcc --version
 gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4)

 $ CFLAGS=-m64
 ./configure --prefix=$XXXX_VARNISH_PREFIX --enable-debugging-symbols

 So the compilation call for one of the C sources looks like this:

 gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../.. -I../../include
 -I../../lib/libvgz -I../../include   -DVARNISH_STATE_DIR='"/var/opt
 /varnish-xxxxx/var/varnish"' -DVARNISH_VMOD_DIR='"/var/opt/varnish-
 xxxx/lib/varnish/vmods"' -DVARNISH_VCL_DIR='"/var/opt/varnish-
 xxxx/etc/varnish"' -m64 -pthread -O0 -g -fno-inline -Wextra -Wno-missing-
 field-initializers -Wno-sign-compare -MT varnishd-vsm.o -MD -MP -MF .deps
 /varnishd-vsm.Tpo -c -o varnishd-vsm.o `test -f 'vsm.c' || echo './'`vsm.c
 mv -f .deps/varnishd-vsm.Tpo .deps/varnishd-vsm.Po

 It sets {{{-O0}}}, which probably doesn't cause any troublesome
 optimizations. But I don't know what all those {{-M}} flags do, maybe one
 of them is the source of the trouble.

Ticket URL: <https://www.varnish-cache.org/trac/ticket/1330#comment:1>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator

More information about the varnish-bugs mailing list