Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(92)

Issue 1403033003: Last set of fixes to make the src/mojo/edk pass the page cycler. (Closed)

Created:
5 years, 2 months ago by jam
Modified:
5 years, 2 months ago
Reviewers:
yzshen1
CC:
chromium-reviews, qsr+mojo_chromium.org, viettrungluu+watch_chromium.org, yzshen+watch_chromium.org, abarth-chromium, Aaron Boodman, darin (slow to review), ben+mojo_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Last set of fixes to make the src/mojo/edk pass the page cycler. -remove the different code paths in RawChannelWin for using IOCP or manual reset. We know we definitely can't use the former. The latter is too slow and we know for sure now that auto-reset works. -after calling CancelIO(Ex) synchronously wait for the result. Otherwise we would sometimes miss notification that a page was read, leading to gaps in in data read from the pipes. -call RegisterWaitForSingleObject directly instead of using ObjectWatcher, to make the above possible. It would have made the API for ObjectWatcher too ugly to add this support there. -ensure that if there's a pending post task to set the error state, it is serialized as well. otherwise the consumer of the mojo primitive will never see a peer-closed signal, leading to hangs. -ensure we don't call the delegate's OnError more than once. this could lead to UAFs. -ensure that the read/write lock are acquired before modifying pending_read_/pending_write_, otherwise there are races where the IO thread set it to false before calling into RawChannel::OnReadCompleted/OnWriteCompleted, and ReleaseHandle didn't see that there was pending IO BUG=478251 Committed: https://crrev.com/447c7923b1b92c978f5dc594939b407d6c4686c2 Cr-Commit-Position: refs/heads/master@{#354191}

Patch Set 1 #

Patch Set 2 : fix assert in debug builds #

Patch Set 3 : another small fix #

Total comments: 7

Patch Set 4 : undo code that called OnError only once #

Total comments: 2

Patch Set 5 : fixes now that OnError can be called multiple times #

Total comments: 6

Patch Set 6 : nit #

Unified diffs Side-by-side diffs Delta from patch set Stats (+287 lines, -316 lines) Patch
M mojo/edk/system/data_pipe_consumer_dispatcher.cc View 1 2 3 4 3 chunks +15 lines, -10 lines 0 comments Download
M mojo/edk/system/data_pipe_producer_dispatcher.cc View 1 2 3 4 3 chunks +11 lines, -4 lines 0 comments Download
M mojo/edk/system/dispatcher.h View 1 chunk +0 lines, -7 lines 0 comments Download
M mojo/edk/system/dispatcher.cc View 2 chunks +1 line, -6 lines 0 comments Download
M mojo/edk/system/message_pipe_dispatcher.cc View 1 2 3 4 3 chunks +11 lines, -0 lines 0 comments Download
M mojo/edk/system/raw_channel.h View 1 2 3 4 5 7 chunks +25 lines, -13 lines 0 comments Download
M mojo/edk/system/raw_channel.cc View 1 2 3 9 chunks +25 lines, -25 lines 0 comments Download
M mojo/edk/system/raw_channel_posix.cc View 1 2 3 3 chunks +10 lines, -11 lines 0 comments Download
M mojo/edk/system/raw_channel_win.cc View 25 chunks +189 lines, -240 lines 0 comments Download

Messages

Total messages: 15 (4 generated)
jam
5 years, 2 months ago (2015-10-14 00:54:55 UTC) #2
yzshen1
a few nits. I will wait for your update to do a second rounds of ...
5 years, 2 months ago (2015-10-14 18:23:46 UTC) #3
jam
ptal https://codereview.chromium.org/1403033003/diff/40001/mojo/edk/system/raw_channel.cc File mojo/edk/system/raw_channel.cc (right): https://codereview.chromium.org/1403033003/diff/40001/mojo/edk/system/raw_channel.cc#newcode339 mojo/edk/system/raw_channel.cc:339: pending_error_ = true; On 2015/10/14 18:23:45, yzshen1 wrote: ...
5 years, 2 months ago (2015-10-14 20:01:44 UTC) #4
yzshen1
https://codereview.chromium.org/1403033003/diff/40001/mojo/edk/system/raw_channel.h File mojo/edk/system/raw_channel.h (right): https://codereview.chromium.org/1403033003/diff/40001/mojo/edk/system/raw_channel.h#newcode227 mojo/edk/system/raw_channel.h:227: // Like above, except that the caller needs to ...
5 years, 2 months ago (2015-10-14 21:37:01 UTC) #5
jam
https://codereview.chromium.org/1403033003/diff/60001/mojo/edk/system/raw_channel.h File mojo/edk/system/raw_channel.h (right): https://codereview.chromium.org/1403033003/diff/60001/mojo/edk/system/raw_channel.h#newcode382 mojo/edk/system/raw_channel.h:382: // Acquires read_lock_ and calls OnReadCompleted. On 2015/10/14 21:37:00, ...
5 years, 2 months ago (2015-10-14 22:35:36 UTC) #6
yzshen1
lgtm
5 years, 2 months ago (2015-10-14 22:46:37 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1403033003/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1403033003/100001
5 years, 2 months ago (2015-10-14 23:00:01 UTC) #9
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_x64_rel_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_rel_ng/builds/117223)
5 years, 2 months ago (2015-10-15 00:04:12 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1403033003/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1403033003/100001
5 years, 2 months ago (2015-10-15 00:12:40 UTC) #13
commit-bot: I haz the power
Committed patchset #6 (id:100001)
5 years, 2 months ago (2015-10-15 01:24:34 UTC) #14
commit-bot: I haz the power
5 years, 2 months ago (2015-10-15 01:25:27 UTC) #15
Message was sent while issue was closed.
Patchset 6 (id:??) landed as
https://crrev.com/447c7923b1b92c978f5dc594939b407d6c4686c2
Cr-Commit-Position: refs/heads/master@{#354191}

Powered by Google App Engine
This is Rietveld 408576698