diff options
-rw-r--r-- | docs/changes.xml | 7 | ||||
-rw-r--r-- | src/nxt_unit.c | 5 |
2 files changed, 11 insertions, 1 deletions
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. </para> </change> +<change type="bugfix"> +<para> +application processes could terminate unexpectedly under high load; the bug +had appeared in 1.19.0. +</para> +</change> + </changes> 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); |