diff --git a/NEWS b/NEWS index 2798114f2e66441918daa22cf4c5929e327e6f4d..daa416ea83f7fb8ffbfa56523969fdabc383646e 100644 --- a/NEWS +++ b/NEWS @@ -234,6 +234,7 @@ documents those changes that are of interest to users and administrators. task/affinity and task/cgroup plugins used together. -- Fix version issue when packing GRES information between 2 different versions of Slurm. + -- Fix for srun hanging with OpenMPI and PMIx * Changes in Slurm 15.08.10 =========================== diff --git a/src/common/log.c b/src/common/log.c index 035105a0e39580d192115fe94dc53b794a8abb50..abaaed80b2d33507a79b1ca0981ab720b65ee1f8 100644 --- a/src/common/log.c +++ b/src/common/log.c @@ -265,7 +265,9 @@ static int _fd_writeable(int fd) * gone, but getting 0 back from a nonblocking read means just that. */ if ((ufds.revents & POLLHUP) || fstat(fd, &stat_buf) || - (S_ISSOCK(stat_buf.st_mode) && (recv(fd, &temp, 1, 0) == 0))) + ((S_ISSOCK(stat_buf.st_mode) && + (rc = recv(fd, &temp, 1, MSG_DONTWAIT) <= 0) && + (rc == 0 || (errno != EAGAIN))))) return -1; else if ((ufds.revents & POLLNVAL) || (ufds.revents & POLLERR)