1. Create a FD handler with persistent=true
2. Wait for event
3. Call StopWatchingFileDescriptor() from the event handler
4. Observe that the event handler may be called again
This breaks net::SocketPosix when running net_unittests:
[3:271014704:0809/203437.240578:4737429:FATAL:socket_posix.cc(410)] Check failed: !read_if_ready_callback_.is_null().
The problem seems to be that MessagePumpFuchsia sets FileDescriptorWatcher::handle_ to MX_HANDLE_INVALID when calling event handler. StopWatchingFileDescriptor() is noop when handle_=MX_HANDLE_INVALID.
Comment 1 by bugdroid1@chromium.org
, Aug 12 2017