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

Issue 2087253002: Add ASan exemption when iterating cross-thread-persistents. (Closed)

Created:
4 years, 6 months ago by sof
Modified:
4 years, 6 months ago
Reviewers:
oilpan-reviews, haraken
CC:
chromium-reviews, blink-reviews, kouhei+heap_chromium.org, oilpan-reviews, Mads Ager (chromium)
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Add ASan exemption when iterating cross-thread-persistents. When running a termination GC or tracing, the set/region of live CrossThreadPersistent nodes are iterated over, checking if the objects they point to belong to the current thread. As heap objects can have CrossThreadPersistent<> fields, it is possible for there to be CrossThreadPersistent nodes which point back to heap objects about to be swept. When ASan is enabled, the page sweeping takes care of poisioning all to-be-swept objects first. The combination of the above two means that persistent iteration can try to inspect one of these poisoned objects, which will trigger an ASan error. The persistent will not be further used, as it doesn't belong to the thread. To accommodate this, we do disable ASan while performing the object lookup while iterating the CrossThreadPersistent node set. R= BUG=620754 Committed: https://crrev.com/04cff368a4228a43d484d6e71828d1f795518a39 Cr-Commit-Position: refs/heads/master@{#401354}

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1 line, -0 lines) Patch
M third_party/WebKit/Source/platform/heap/Persistent.h View 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 13 (3 generated)
sof
please take a look. If we can move to CrossThreadPersistent usage & underlying representation that ...
4 years, 6 months ago (2016-06-22 13:30:54 UTC) #2
haraken
Very well spotted... LGTM. > If we can move to CrossThreadPersistent usage & underlying representation ...
4 years, 6 months ago (2016-06-22 14:57:37 UTC) #3
haraken
Maybe I'm a bit confused. atomicGet() is called by prepareForThreadStateTermination(). Why can the region have ...
4 years, 6 months ago (2016-06-22 15:03:45 UTC) #4
sof
On 2016/06/22 15:03:45, haraken wrote: > Maybe I'm a bit confused. atomicGet() is called by ...
4 years, 6 months ago (2016-06-22 15:14:53 UTC) #5
haraken
On 2016/06/22 15:14:53, sof wrote: > On 2016/06/22 15:03:45, haraken wrote: > > Maybe I'm ...
4 years, 6 months ago (2016-06-22 15:27:38 UTC) #6
sof
On 2016/06/22 15:27:38, haraken wrote: > On 2016/06/22 15:14:53, sof wrote: > > On 2016/06/22 ...
4 years, 6 months ago (2016-06-22 15:31:40 UTC) #7
haraken
On 2016/06/22 15:31:40, sof wrote: > On 2016/06/22 15:27:38, haraken wrote: > > On 2016/06/22 ...
4 years, 6 months ago (2016-06-22 15:44:45 UTC) #8
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2087253002/1
4 years, 6 months ago (2016-06-22 18:09:41 UTC) #10
commit-bot: I haz the power
Committed patchset #1 (id:1)
4 years, 6 months ago (2016-06-22 18:20:31 UTC) #11
commit-bot: I haz the power
4 years, 6 months ago (2016-06-22 18:22:44 UTC) #13
Message was sent while issue was closed.
Patchset 1 (id:??) landed as
https://crrev.com/04cff368a4228a43d484d6e71828d1f795518a39
Cr-Commit-Position: refs/heads/master@{#401354}

Powered by Google App Engine
This is Rietveld 408576698