[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
GNU/Linux
$ 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
CFLAGS=-m64
}}}
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
LDFLAGS=-Wl,-rpath=$XXXX_VARNISH_PREFIX/lib/varnish:$XXXX_VARNISH_PREFIX/lib
./configure --prefix=$XXXX_VARNISH_PREFIX --enable-debugging-symbols
--enable-tests
}}}
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