New issue
Advanced search Search tips

Issue 741788 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Fuchsia
Pri: 1
Type: Bug



Sign in to add a comment

MessageLoopForIOOn*Thread/FileDescriptorWatcherTest.DeleteController* tests crash

Project Member Reported by w...@chromium.org, Jul 12 2017

Issue description

We currently have the following reliable crashers in base_unittests:

[00021.766] 02336.02512> 5 tests crashed:
[00021.766] 02336.02512>     CancelableSyncSocket.CancelReceiveShutdown (../../base/sync_socket_unittest.cc:116)
[00021.766] 02336.02512>     MessageLoopForIOOnMainThread/FileDescriptorWatcherTest.DeleteControllerFromCallback/0 (../../base/files/file_descriptor_watcher_posix_unittest.cc:170)
[00021.766] 02336.02512>     MessageLoopForIOOnOtherThread/FileDescriptorWatcherTest.DeleteControllerAfterFileDescriptorReadable/0 (../../base/files/file_descriptor_watcher_posix_unittest.cc:170)
[00021.766] 02336.02512>     MessageLoopForIOOnOtherThread/FileDescriptorWatcherTest.DeleteControllerFromCallback/0 (../../base/files/file_descriptor_watcher_posix_unittest.cc:170)
[00021.766] 02336.02512>     MessageLoopTest.FileDescriptorWatcherOutlivesMessageLoop (../../base/message_loop/message_loop_unittest.cc:746)

The MessageLoop* entries are most likely new Debug-only crashers thanks to my https://chromium-review.googlesource.com/564739. Ooops.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jul 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/beff6adae6fa9a2c58c05cfa3f11b2ad159e0121

commit beff6adae6fa9a2c58c05cfa3f11b2ad159e0121
Author: Wez <wez@chromium.org>
Date: Thu Jul 13 22:52:59 2017

Fix Fuchsia FDWatcher::StopWatchingFileDescriptor semantics.

The FileDescriptorWatcher POSIX wrapper assumes that it is safe to call
StopWatchingFileDescriptor() on a MessageLoopForIO::FDWatcher instance
from within an FDWatcher event callback.

The Fuchsia implementation was incorrectly keeping a record of the
asynchronous IO |handle_| for the freshly-ended wait operation, which
was causing StopWatchingFileDescriptor to try to re-cancel the
already-ended wait.

Bug:  741788 
Change-Id: Id1572166fcdb166c6be5700ea7e137b486ebaf5d
Reviewed-on: https://chromium-review.googlesource.com/569278
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486508}
[modify] https://crrev.com/beff6adae6fa9a2c58c05cfa3f11b2ad159e0121/base/message_loop/message_pump_fuchsia.cc
[modify] https://crrev.com/beff6adae6fa9a2c58c05cfa3f11b2ad159e0121/base/message_loop/message_pump_fuchsia.h

Comment 2 by w...@chromium.org, Jul 13 2017

Status: Fixed (was: Started)

Sign in to add a comment