[Expired for linux (Ubuntu) because there has been no activity for 60
days.]
** Changed in: linux (Ubuntu)
Status: Incomplete => Expired
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1761619
Title:
eventfd / poll interaction bug
Status in linux package in Ubuntu:
Expired
Bug description:
In 17.10, I'm running into a new problem. This didn't happen to me on
16.04.
I have some code that uses eventfds to signal things, and the code is
not working -- after writing the eventfd, it does not come back
readable from another thread using poll().
Here's a snippet from strace:
```
eventfd2(0, 0) = 5
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
write(1, "OPEN FD 5\n", 10OPEN FD 5
) = 10
write(5, "\1\0\0\0\0\0\0\0", 8) = 8
nanosleep({tv_sec=0, tv_nsec=100000000}, 0x7fffd0cea1a0) = 0
poll([{fd=5, events=POLLRDNORM}], 1, 100) = 0 (Timeout)
```
The write(1,... ) is debugging output. The nanosleep was intended to
see if sleeping a bit before polling would help. Note that the
write(5, ...) and the poll() come from different threads.
Note that using two descriptors from a pipe() (which I do for other
platforms) is fine, so this is some kind of issue specific to eventfd.
Also, trying to reproduce this with a simpler single threaded program
did not succeed. I'm wondering if there is some underlying cache
synchronization problem?
I'm testing this in a VMware Fusion virtual machine (Fusion 10.1.1)
running on 2017 macbook pro (underlying OS is macOS 10.13).
For now I'm going to switch back to pipes, since eventfd() seems
unreliable -- if you can spot anything obviously wrong about the
system call sequence above, I'd love to hear it.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1761619/+subscriptions
--
Mailing list: https://launchpad.net/~kernel-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp