[master] 82c00f6 Keep the child as "starting" until it's fully launched

Dridi Boukelmoune dridi at varnish-software.com
Thu Mar 8 11:02:07 UTC 2018


commit 82c00f6f37b708a9cc6780a921ead474180c233c
Author: Dridi Boukelmoune <dridi at varnish-software.com>
Date:   Tue Mar 6 22:15:49 2018 +0100

    Keep the child as "starting" until it's fully launched

diff --git a/bin/varnishd/mgt/mgt_child.c b/bin/varnishd/mgt/mgt_child.c
index 88acd0e..fe16d89 100644
--- a/bin/varnishd/mgt/mgt_child.c
+++ b/bin/varnishd/mgt/mgt_child.c
@@ -395,7 +395,6 @@ mgt_launch_child(struct cli *cli)
 
 	mgt_cli_start_child(child_cli_in, child_cli_out);
 	child_pid = pid;
-	child_state = CH_RUNNING;
 
 	if (mgt_push_vcls(cli, &u, &p)) {
 		VCLI_SetResult(cli, u);
@@ -414,6 +413,8 @@ mgt_launch_child(struct cli *cli)
 		MCH_Stop_Child();
 		return;
 	}
+
+	child_state = CH_RUNNING;
 }
 
 /*=====================================================================
@@ -575,7 +576,7 @@ void
 MCH_Cli_Fail(void)
 {
 
-	if (child_state != CH_RUNNING)
+	if (child_state != CH_RUNNING && child_state != CH_STARTING)
 		return;
 	if (child_pid < 0)
 		return;
@@ -597,7 +598,7 @@ void
 MCH_Stop_Child(void)
 {
 
-	if (child_state != CH_RUNNING)
+	if (child_state != CH_RUNNING && child_state != CH_STARTING)
 		return;
 
 	child_state = CH_STOPPING;


More information about the varnish-commit mailing list