diff --git a/src/srun/io.c b/src/srun/io.c index eecc1eae3a3ed09cc13d08a36befe52672cce2d9..6ce6adbdca4ca511657fde1500af647f6051095f 100644 --- a/src/srun/io.c +++ b/src/srun/io.c @@ -164,8 +164,12 @@ _io_thr_poll(void *job_arg) unsigned short revents = fds[i].revents; xassert(!(revents & POLLNVAL)); if (revents & POLLERR || revents & POLLHUP) { - error("poll error condition on fd %d", - fds[i].fd); + int err; + socklen_t size = sizeof(int); + getsockopt(fds[i].fd, SOL_SOCKET, + SO_ERROR, (void *)&err, &size); + error("poll error condition %d on fd %d", + err, fds[i].fd); _shutdown_fd_poll(&map[i]); }