diff --git a/docs/changes.xml b/docs/changes.xml index f157e9bf..6bd30cab 100644 --- a/docs/changes.xml +++ b/docs/changes.xml @@ -48,6 +48,13 @@ appeared in 1.19.0. + + +application processes could terminate unexpectedly under high load; the bug +had appeared in 1.19.0. + + + diff --git a/src/nxt_unit.c b/src/nxt_unit.c index 2cdc75f8..39e7f076 100644 --- a/src/nxt_unit.c +++ b/src/nxt_unit.c @@ -3606,7 +3606,10 @@ nxt_unit_wait_shm_ack(nxt_unit_ctx_t *ctx) return NXT_UNIT_ERROR; } - res = nxt_unit_ctx_port_recv(ctx, ctx_impl->read_port, rbuf); + do { + res = nxt_unit_ctx_port_recv(ctx, ctx_impl->read_port, rbuf); + } while (res == NXT_UNIT_AGAIN); + if (res == NXT_UNIT_ERROR) { nxt_unit_read_buf_release(ctx, rbuf);