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

Issue 2565283008: Fix race condition with CancelCheck(). (Closed)

Created:
4 years ago by Scott Hess - ex-Googler
Modified:
3 years, 11 months ago
CC:
chromium-reviews, vakh+watch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Fix race condition with CancelCheck(). In V4LocalDatabaseManager, HandleCheck() does a PostTask() to PerformFullHashCheck(), which adds the check to pending_clients_. If the caller calls CancelCheck() before posted task runs, the check won't be cancelled. BUG=660293 Review-Url: https://codereview.chromium.org/2565283008 Cr-Commit-Position: refs/heads/master@{#441730} Committed: https://chromium.googlesource.com/chromium/src/+/2bce5de9484c07967bda1ffecff891c85423b659

Patch Set 1 #

Total comments: 6

Patch Set 2 : Add some tests. #

Total comments: 10

Patch Set 3 : rebase #

Patch Set 4 : reqs for each platform. #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+112 lines, -8 lines) Patch
M components/safe_browsing_db/v4_local_database_manager.cc View 1 2 3 chunks +14 lines, -6 lines 0 comments Download
M components/safe_browsing_db/v4_local_database_manager_unittest.cc View 1 2 3 4 chunks +98 lines, -2 lines 4 comments Download

Messages

Total messages: 44 (22 generated)
Scott Hess - ex-Googler
I set out to write a test which would show OnCheckBrowseUrlResult() getting called after a ...
4 years ago (2016-12-13 23:57:12 UTC) #4
Nathan Parker
Nice catch. Do you think this could cause the crashes we were seeing? I have ...
4 years ago (2016-12-14 18:03:04 UTC) #7
Scott Hess - ex-Googler
On 2016/12/14 18:03:04, Nathan Parker wrote: > Nice catch. Do you think this could cause ...
4 years ago (2016-12-14 20:45:58 UTC) #8
Scott Hess - ex-Googler
https://codereview.chromium.org/2565283008/diff/1/components/safe_browsing_db/v4_local_database_manager.cc File components/safe_browsing_db/v4_local_database_manager.cc (right): https://codereview.chromium.org/2565283008/diff/1/components/safe_browsing_db/v4_local_database_manager.cc#newcode597 components/safe_browsing_db/v4_local_database_manager.cc:597: // Steal the queue to protect against reentrant CancelCheck() ...
4 years ago (2016-12-14 20:56:33 UTC) #9
Scott Hess - ex-Googler
Add some tests.
4 years ago (2016-12-15 01:05:14 UTC) #10
Scott Hess - ex-Googler
OK, tests. https://codereview.chromium.org/2565283008/diff/1/components/safe_browsing_db/v4_local_database_manager.cc File components/safe_browsing_db/v4_local_database_manager.cc (right): https://codereview.chromium.org/2565283008/diff/1/components/safe_browsing_db/v4_local_database_manager.cc#newcode604 components/safe_browsing_db/v4_local_database_manager.cc:604: RespondToClient(std::move(it)); Ha, it took some work, but ...
4 years ago (2016-12-15 01:14:13 UTC) #12
Nathan Parker
lgtm https://codereview.chromium.org/2565283008/diff/20001/components/safe_browsing_db/v4_local_database_manager_unittest.cc File components/safe_browsing_db/v4_local_database_manager_unittest.cc (right): https://codereview.chromium.org/2565283008/diff/20001/components/safe_browsing_db/v4_local_database_manager_unittest.cc#newcode104 components/safe_browsing_db/v4_local_database_manager_unittest.cc:104: manager_to_cancel_->CancelCheck(this); On 2016/12/15 01:14:13, Scott Hess wrote: > ...
4 years ago (2016-12-16 22:37:13 UTC) #16
vakh (use Gerrit instead)
lgtm Thanks for finding and fixing this issue! https://codereview.chromium.org/2565283008/diff/20001/components/safe_browsing_db/v4_local_database_manager_unittest.cc File components/safe_browsing_db/v4_local_database_manager_unittest.cc (right): https://codereview.chromium.org/2565283008/diff/20001/components/safe_browsing_db/v4_local_database_manager_unittest.cc#newcode372 components/safe_browsing_db/v4_local_database_manager_unittest.cc:372: EXPECT_FALSE(client.result_received_); ...
3 years, 11 months ago (2017-01-03 22:26:01 UTC) #18
Scott Hess - ex-Googler
rebase
3 years, 11 months ago (2017-01-05 00:01:21 UTC) #19
Scott Hess - ex-Googler
OK, giving this a rebase. I think the breaks were probably a merge conflict which ...
3 years, 11 months ago (2017-01-05 00:02:14 UTC) #22
vakh (use Gerrit instead)
> Varun, did you have an opinion on this hard-coded URL? > > I'm somewhat ...
3 years, 11 months ago (2017-01-05 00:08:45 UTC) #23
Scott Hess - ex-Googler
On 2017/01/05 00:08:45, vakh (Varun Khaneja) wrote: > > Varun, did you have an opinion ...
3 years, 11 months ago (2017-01-05 01:23:11 UTC) #26
Scott Hess - ex-Googler
reqs for each platform.
3 years, 11 months ago (2017-01-05 18:25:20 UTC) #27
Scott Hess - ex-Googler
On 2017/01/05 01:23:11, Scott Hess wrote: > On 2017/01/05 00:08:45, vakh (Varun Khaneja) wrote: > ...
3 years, 11 months ago (2017-01-05 18:26:30 UTC) #30
Scott Hess - ex-Googler
On 2017/01/05 01:23:11, Scott Hess wrote: > On 2017/01/05 00:08:45, vakh (Varun Khaneja) wrote: > ...
3 years, 11 months ago (2017-01-05 18:26:30 UTC) #31
vakh (use Gerrit instead)
lgtm https://codereview.chromium.org/2565283008/diff/60001/components/safe_browsing_db/v4_local_database_manager_unittest.cc File components/safe_browsing_db/v4_local_database_manager_unittest.cc (right): https://codereview.chromium.org/2565283008/diff/60001/components/safe_browsing_db/v4_local_database_manager_unittest.cc#newcode377 components/safe_browsing_db/v4_local_database_manager_unittest.cc:377: // TODO(shess): Modify this to use a mock ...
3 years, 11 months ago (2017-01-05 18:31:42 UTC) #32
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2565283008/60001
3 years, 11 months ago (2017-01-05 19:28:26 UTC) #37
Scott Hess - ex-Googler
Sheriffs: This has a known platform-specific bit. I've covered all the platforms that the dry ...
3 years, 11 months ago (2017-01-05 19:29:44 UTC) #38
commit-bot: I haz the power
Committed patchset #4 (id:60001) as https://chromium.googlesource.com/chromium/src/+/2bce5de9484c07967bda1ffecff891c85423b659
3 years, 11 months ago (2017-01-05 19:34:00 UTC) #41
Nathan Parker
lgtm https://codereview.chromium.org/2565283008/diff/60001/components/safe_browsing_db/v4_local_database_manager_unittest.cc File components/safe_browsing_db/v4_local_database_manager_unittest.cc (right): https://codereview.chromium.org/2565283008/diff/60001/components/safe_browsing_db/v4_local_database_manager_unittest.cc#newcode381 components/safe_browsing_db/v4_local_database_manager_unittest.cc:381: "Cg8KCHVuaXR0ZXN0EgMxLjAaJwgBCAIIAwgGCAcICAgJCAoQBBAIGgcKBWVXGg-" wat. Proto wire formats vary by platform? ...
3 years, 11 months ago (2017-01-05 21:35:32 UTC) #42
Scott Hess - ex-Googler
https://codereview.chromium.org/2565283008/diff/60001/components/safe_browsing_db/v4_local_database_manager_unittest.cc File components/safe_browsing_db/v4_local_database_manager_unittest.cc (right): https://codereview.chromium.org/2565283008/diff/60001/components/safe_browsing_db/v4_local_database_manager_unittest.cc#newcode381 components/safe_browsing_db/v4_local_database_manager_unittest.cc:381: "Cg8KCHVuaXR0ZXN0EgMxLjAaJwgBCAIIAwgGCAcICAgJCAoQBBAIGgcKBWVXGg-" On 2017/01/05 21:35:32, Nathan Parker wrote: > wat. ...
3 years, 11 months ago (2017-01-05 23:23:12 UTC) #43
Scott Hess - ex-Googler
3 years, 11 months ago (2017-01-06 22:44:36 UTC) #44
Message was sent while issue was closed.
https://codereview.chromium.org/2565283008/diff/60001/components/safe_browsin...
File components/safe_browsing_db/v4_local_database_manager_unittest.cc (right):

https://codereview.chromium.org/2565283008/diff/60001/components/safe_browsin...
components/safe_browsing_db/v4_local_database_manager_unittest.cc:379: const
char* kReqs[] = {
QQ ... I kinda messed up my emacs init.el, so was having to do formatting
manually rather than using google-c-style.el.  So when git-cl said to run
git-cl-format to reform this, and it made it four-space indent, I was like
"What?  Maybe I just don't remember things right."

But now I've fixed things, and google-c-style.el definitely wants these to be
two-space indented.  Did something change?

Powered by Google App Engine
This is Rietveld 408576698