summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--docs/changes.xml7
-rw-r--r--src/nxt_unit.c5
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);