]> err.no Git - varnish/commitdiff
Make sure we get the error messages from a dying child.
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Sun, 17 Sep 2006 09:06:08 +0000 (09:06 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Sun, 17 Sep 2006 09:06:08 +0000 (09:06 +0000)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1046 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/mgt_child.c

index b4f679bbe2af3cf7717f31e909665b3b57fc7cb3..8ff3babf3c5b75dc965e8b2db69e29fd7daa9705 100644 (file)
@@ -173,7 +173,9 @@ start_child(void)
        if (mgt_push_vcls_and_start(&i, &p)) {
                fprintf(stderr, "Pushing vcls failed:\n%s\n", p);
                free(p);
-               exit (2);
+               /* Pick up any stuff lingering on stdout/stderr */
+               child_listener(NULL, EV_RD);
+               exit(2);
        }
        child_state = CH_RUNNING;
 }
@@ -235,6 +237,9 @@ mgt_sigchld(struct ev *e, int what)
        fprintf(stderr, "Cache child died pid=%d status=0x%x\n", r, status);
        child_pid = -1;
 
+       /* Pick up any stuff lingering on stdout/stderr */
+       child_listener(NULL, EV_RD);
+
        if (child_state == CH_RUNNING) {
                child_state = CH_DIED;
                fprintf(stderr, "Clean child\n");