free_trash_chunk(tmptrash);
tmptrash = NULL;
}
- /* commit new admin status */
-
- s->cur_admin = s->next_admin;
}
else { /* server was still running */
check->health = 0; /* failure */
}
}
/* don't report anything when leaving drain mode and remaining in maintenance */
-
- s->cur_admin = s->next_admin;
}
if (!(s->next_admin & SRV_ADMF_MAINT)) {
free_trash_chunk(tmptrash);
tmptrash = NULL;
}
-
- /* commit new admin status */
-
- s->cur_admin = s->next_admin;
}
}
/* Re-set log strings to empty */
*s->adm_st_chg_cause = 0;
+
+ /* explicitly commit state changes (even if it was already applied implicitly
+ * by some lb state change function), so we don't miss anything
+ */
+ srv_lb_commit_status(s);
}
struct task *srv_cleanup_toremove_conns(struct task *task, void *context, unsigned int state)