Browse Source

[Minor] Slightly improve logging in case of termination

pull/3138/head
Vsevolod Stakhov 6 years ago
parent
commit
7d237da393
  1. 11
      src/libserver/rspamd_control.c
  2. 3
      src/lua/lua_worker.c
  3. 12
      src/rspamd.c

11
src/libserver/rspamd_control.c

@ -655,10 +655,15 @@ rspamd_control_default_worker_handler (EV_P_ ev_io *w, int revents)
r = recvmsg (w->fd, &msg, 0);
if (r == -1) {
msg_err ("cannot read request from the control socket: %s",
strerror (errno));
if (errno != EAGAIN && errno != EINTR) {
if (errno != ECONNRESET) {
/*
* In case of connection reset it means that main process
* has died, so do not pollute logs
*/
msg_err ("cannot read request from the control socket: %s",
strerror (errno));
}
ev_io_stop (cd->ev_base, &cd->io_ev);
close (w->fd);
}

3
src/lua/lua_worker.c

@ -841,7 +841,8 @@ lua_worker_spawn_process (lua_State *L)
/* Wait for parent to reply and exit */
rc = read (cbdata->sp[1], inbuf, sizeof (inbuf));
if (memcmp (inbuf, "\0\0\0\0", 4) == 0) {
if (rc >= sizeof (inbuf) &&
memcmp (inbuf, "\0\0\0\0", sizeof (inbuf)) == 0) {
exit (EXIT_SUCCESS);
}
else {

12
src/rspamd.c

@ -1092,11 +1092,13 @@ rspamd_cld_handler (EV_P_ ev_child *w, struct rspamd_main *rspamd_main,
close (wrk->srv_pipe[0]);
}
cmd.type = RSPAMD_CONTROL_CHILD_CHANGE;
cmd.cmd.child_change.what = rspamd_child_terminated;
cmd.cmd.child_change.pid = wrk->pid;
cmd.cmd.child_change.additional = w->rstatus;
rspamd_control_broadcast_srv_cmd (rspamd_main, &cmd, wrk->pid);
if (!rspamd_main->wanna_die) {
cmd.type = RSPAMD_CONTROL_CHILD_CHANGE;
cmd.cmd.child_change.what = rspamd_child_terminated;
cmd.cmd.child_change.pid = wrk->pid;
cmd.cmd.child_change.additional = w->rstatus;
rspamd_control_broadcast_srv_cmd (rspamd_main, &cmd, wrk->pid);
}
if (wrk->finish_actions) {
g_ptr_array_free (wrk->finish_actions, TRUE);

Loading…
Cancel
Save