Package: varnish
Version: 2.1.3-8
Severity: normal
Tags: patch

If the VCL has errors the reload-vcl script exits successfully anyway. I've
tested with both 2.1 from squeeze and 3.0.2, with both bash and dash.

The problem seems to be that the exitstatus variable disappears after the if
$varnishadm ... vcl.load block. I suspect this is due to the redirect through
grep that causes the block to run in a subshell.

I'm attaching a patch that moves this grep to the place where the logfile is
output instead, which avoids the subshell.



-- System Information:
Debian Release: 6.0.4
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages varnish depends on:
ii  adduser                   3.112+nmu2     add and remove users and groups
ii  gcc                       4:4.4.5-1      The GNU C compiler
ii  libc6                     2.11.3-2       Embedded GNU C Library: Shared lib
ii  libc6-dev [libc-dev]      2.11.3-2       Embedded GNU C Library: Developmen
ii  libncurses5               5.7+20100313-5 shared libraries for terminal hand
ii  libvarnish1               2.1.3-8        shared libraries for Varnish

varnish recommends no packages.

varnish suggests no packages.

-- no debconf information
--- debian/reload-vcl.orig      2012-03-21 13:36:32.174223469 +0100
+++ debian/reload-vcl   2012-03-21 13:37:09.669963485 +0100
@@ -160,12 +160,12 @@
 else
     printf "$msg_compile_failed" $vcl_label $vcl_file
     exitstatus=1
-fi | grep -v "^$" > $logfile
+fi > $logfile
 
 # Blather
 if [ -z "${quiet}" -o -n "$exitstatus" ]
 then
-    cat >&2 $logfile
+    grep -v '^$' >&2 $logfile
 fi
 
 # Cleanup

Reply via email to