diff --git a/src/common/slurm_protocol_socket_implementation.c b/src/common/slurm_protocol_socket_implementation.c index 672e0406381f20db8d498476766867f29350d2e9..1a257fbda8d3a921233a86db9b7aa7184ea96c1d 100644 --- a/src/common/slurm_protocol_socket_implementation.c +++ b/src/common/slurm_protocol_socket_implementation.c @@ -593,10 +593,14 @@ extern int _slurm_connect (int __fd, struct sockaddr const * __addr, ufds.events = POLLIN | POLLOUT; ufds.revents = 0; - rc = poll(&ufds, 1, 5000); +again: rc = poll(&ufds, 1, 5000); if (rc == -1) { /* poll failed */ - error("_slurm_connect poll failed: %m"); + if (errno == EINTR) { + verbose("_slurm_connect poll failed: %m"); + goto again; + } else + error("_slurm_connect poll failed: %m"); return -1; } else if (rc == 0) { /* poll timed out before any socket events */