@@ -516,6 +516,13 @@ rspamd_srv_handler (gint fd, short what, gpointer ud) | |||
msg_err ("cannot read from worker's srv pipe: %s", | |||
strerror (errno)); | |||
} | |||
else if (r == 0) { | |||
/* | |||
* Usually this means that a worker is dead, so do not try to read | |||
* anything | |||
*/ | |||
event_del (&worker->srv_ev); | |||
} | |||
else if (r != sizeof (cmd)) { | |||
msg_err ("cannot read from worker's srv pipe incomplete command: %d", | |||
(gint) r); |
@@ -469,6 +469,9 @@ rspamd_fork_worker (struct rspamd_main *rspamd_main, | |||
case 0: | |||
/* Update pid for logging */ | |||
rspamd_log_update_pid (cf->type, rspamd_main->logger); | |||
/* Remove the inherited event base */ | |||
event_reinit (rspamd_main->ev_base); | |||
event_base_free (rspamd_main->ev_base); | |||
/* Lock statfile pool if possible XXX */ | |||
/* Init PRNG after fork */ | |||
rc = ottery_init (NULL); |