Closed cosmos72 closed 4 years ago
go-zeromq/zmq4
has been tested w/ Go-1.14 and I didn't see that EINTR
issue.
(let me update #195 to also add Go-1.14)
Good to hear that. In the meantime, I found the place where I read about "Go runtime exposing more EINTR errors": Go 1.14 release notes
Alternatively, we could try to understand if it's a bug in zmq4 or in gophernotes, i.e. which of one should treat EINTR as "not really an error, just retry the system call" but doesn't
there's a thread on that on golang-{dev,nuts}
:
Thanks!
I fixed the most common case (poller.Poll()
returning syscall.EINTR
) in https://github.com/gopherdata/gophernotes/commit/7faaaffc304e8964a3e3c8b4a06585a9fb700af4
but reading from the threads you mention, EINTR is returned in many more cases
The following error is logged on jupyter standard output:
I suspect it's due to the Go runtime exposing more EINTR errors on interrupted system calls, and libzmq (or some other code) not properly handling them - POSIX specs state that system calls can (and most of the times should) be called again when it happens.
Maybe switching to
go-zeromq/zmq4
(see pull request https://github.com/gopherdata/gophernotes/pull/195) could fix this?