Commit f9fccc04 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Try fixing the u00001 instability by retrying polls which fail

with EINTR.

I suspect the underlying issue is that SIGCHLD is being sent
to a random thread and that happens to be the s1 thread on some
platforms.
parent b8d70b07
......@@ -387,6 +387,8 @@ http_rxchar(struct http *hp, int n, int eof)
pfd[0].events = POLLIN;
pfd[0].revents = 0;
i = poll(pfd, 1, hp->timeout);
if (i < 0 && errno == EINTR)
continue;
if (i == 0)
vtc_log(hp->vl, hp->fatal,
"HTTP rx timeout (fd:%d %u ms)",
......@@ -1215,6 +1217,8 @@ cmd_http_expect_close(CMD_ARGS)
fds[0].events = POLLIN | POLLERR;
fds[0].revents = 0;
i = poll(fds, 1, hp->timeout);
if (i < 0 && errno == EINTR)
continue;
if (i == 0)
vtc_log(vl, hp->fatal, "Expected close: timeout");
if (i != 1 || !(fds[0].revents & (POLLIN|POLLERR)))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment