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

Issue 1120943002: Various ASan exemptions to allow Oilpan pre-sweep poisoning of unmarkeds. (Closed)

Created:
5 years, 7 months ago by sof
Modified:
4 years, 2 months ago
CC:
blink-reviews, Mads Ager (chromium), oilpan-reviews, blink-reviews-wtf_chromium.org, aandrey+blink_chromium.org, kouhei+heap_chromium.org, Mikhail
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Various ASan exemptions to allow Oilpan pre-sweep poisoning of unmarkeds. Heap objects must not access other dead objects while finalizing. To help catch out those that do, the Oilpan GC can now poison unmarked, to-be-swept objects. To be able to make use of that with ASan enabled, a couple of benign accesses that run afoul of that strict check are still needed & must be allowed to make this feasible. Here provided together -- the ones related to Timer stopping & removal from the timer heap aren't something we'd typically want to impose one the Blink codebase in general, but beside the goal of better ASan coverage, the timer heap will soon be removed and the need for these should fall away. (Reland of r195609, non-Oilpan compilation issue addressed.) R=haraken,tkent,yutak BUG=420515 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=195613

Patch Set 1 #

Total comments: 3

Patch Set 2 : add custom NO_SANITIZE_ADDRESS variation #

Total comments: 1

Patch Set 3 : avoid wtf/ => platform/ dependency. #

Total comments: 3

Patch Set 4 : fix ill-formed CPPery #

Patch Set 5 : rebased #

Patch Set 6 : comment sync #

Patch Set 7 : fix non-Oilpan ASan compilation #

Patch Set 8 : rebased #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+36 lines, -5 lines) Patch
M Source/platform/ThreadTimers.cpp View 1 3 chunks +2 lines, -1 line 0 comments Download
M Source/platform/Timer.h View 1 5 chunks +5 lines, -0 lines 0 comments Download
M Source/platform/Timer.cpp View 1 5 chunks +5 lines, -0 lines 0 comments Download
M Source/platform/heap/AddressSanitizer.h View 1 2 3 4 5 6 1 chunk +8 lines, -0 lines 1 comment Download
M Source/platform/heap/Handle.h View 1 2 chunks +2 lines, -0 lines 0 comments Download
M Source/platform/heap/ThreadState.cpp View 1 2 3 1 chunk +2 lines, -4 lines 0 comments Download
M Source/wtf/LinkedHashSet.h View 1 2 3 4 5 2 chunks +12 lines, -0 lines 0 comments Download

Messages

Total messages: 33 (8 generated)
haraken
I haven't looked at the timer heap, but the NO_SANITIZE_ADDRESS macros in the heap makes ...
5 years, 7 months ago (2015-05-01 15:12:32 UTC) #2
haraken
+yutak: This is a CL Sigbjorn created to suppress false-positive errors detected by ASan poisoning.
5 years, 7 months ago (2015-05-07 07:27:35 UTC) #4
haraken
LGTM (Let's add more information to the CL description.) If yutak is ok with landing ...
5 years, 7 months ago (2015-05-18 23:12:51 UTC) #5
Yuta Kitamura
I've found a few more places that use-after-poison happens on my Linux workstation. Now I'm ...
5 years, 7 months ago (2015-05-19 03:56:13 UTC) #6
Yuta Kitamura
With that said, I'd like to note that I still don't understand rationales of all ...
5 years, 7 months ago (2015-05-19 06:08:28 UTC) #7
sof
On 2015/05/19 03:56:13, Yuta Kitamura wrote: > I've found a few more places that use-after-poison ...
5 years, 7 months ago (2015-05-19 06:12:25 UTC) #8
sof
On 2015/05/19 06:12:25, sof wrote: > On 2015/05/19 03:56:13, Yuta Kitamura wrote: > > I've ...
5 years, 7 months ago (2015-05-19 13:34:00 UTC) #9
sof
https://codereview.chromium.org/1120943002/diff/20001/Source/wtf/LinkedHashSet.h File Source/wtf/LinkedHashSet.h (right): https://codereview.chromium.org/1120943002/diff/20001/Source/wtf/LinkedHashSet.h#newcode25 Source/wtf/LinkedHashSet.h:25: #include "platform/heap/AddressSanitizer.h" a layering/dependency violation per se.
5 years, 7 months ago (2015-05-19 13:36:45 UTC) #10
haraken
LGTM
5 years, 7 months ago (2015-05-19 23:08:16 UTC) #11
sof
Thanks. I've avoided the improper wtf/ dependency (tkent@: could you take a look, please?) + ...
5 years, 7 months ago (2015-05-20 06:18:58 UTC) #13
Yuta Kitamura
On 2015/05/20 06:18:58, sof wrote: > I've avoided the improper wtf/ dependency (tkent@: could you ...
5 years, 7 months ago (2015-05-20 06:37:29 UTC) #14
tkent
lgtm We may move (a part of) platform/heap/AddressSanitizer.h to wtf/. https://codereview.chromium.org/1120943002/diff/40001/Source/platform/heap/ThreadState.cpp File Source/platform/heap/ThreadState.cpp (right): https://codereview.chromium.org/1120943002/diff/40001/Source/platform/heap/ThreadState.cpp#newcode899 ...
5 years, 7 months ago (2015-05-20 06:46:43 UTC) #15
sof
On 2015/05/20 06:37:29, Yuta Kitamura wrote: > On 2015/05/20 06:18:58, sof wrote: > > I've ...
5 years, 7 months ago (2015-05-20 06:48:15 UTC) #16
Yuta Kitamura
(My last comment was based on an assumption that there's no Oilpan+ASAN bots out there... ...
5 years, 7 months ago (2015-05-20 06:58:22 UTC) #17
sof
https://codereview.chromium.org/1120943002/diff/40001/Source/platform/heap/ThreadState.cpp File Source/platform/heap/ThreadState.cpp (right): https://codereview.chromium.org/1120943002/diff/40001/Source/platform/heap/ThreadState.cpp#newcode899 Source/platform/heap/ThreadState.cpp:899: #if ENABLE(OILPAN On 2015/05/20 06:46:43, tkent wrote: > append ...
5 years, 7 months ago (2015-05-20 06:59:14 UTC) #18
sof
On 2015/05/20 06:58:22, Yuta Kitamura wrote: > (My last comment was based on an assumption ...
5 years, 7 months ago (2015-05-20 07:00:36 UTC) #19
sof
On 2015/05/20 06:46:43, tkent wrote: > lgtm > We may move (a part of) platform/heap/AddressSanitizer.h ...
5 years, 7 months ago (2015-05-20 07:01:30 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1120943002/100001
5 years, 7 months ago (2015-05-20 08:24:09 UTC) #23
commit-bot: I haz the power
Committed patchset #6 (id:100001) as https://src.chromium.org/viewvc/blink?view=rev&revision=195609
5 years, 7 months ago (2015-05-20 10:28:49 UTC) #24
sof
A revert of this CL (patchset #6 id:100001) has been created in https://codereview.chromium.org/1144933004/ by sigbjornf@opera.com. ...
5 years, 7 months ago (2015-05-20 11:05:41 UTC) #25
sof
relanding, non-Oilpan compilation error fixed. Verified locally to build.
5 years, 7 months ago (2015-05-20 12:02:27 UTC) #26
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1120943002/140001
5 years, 7 months ago (2015-05-20 12:02:50 UTC) #29
commit-bot: I haz the power
Committed patchset #8 (id:140001) as https://src.chromium.org/viewvc/blink?view=rev&revision=195613
5 years, 7 months ago (2015-05-20 13:09:38 UTC) #30
Nico
https://codereview.chromium.org/1120943002/diff/140001/Source/platform/heap/AddressSanitizer.h File Source/platform/heap/AddressSanitizer.h (right): https://codereview.chromium.org/1120943002/diff/140001/Source/platform/heap/AddressSanitizer.h#newcode60 Source/platform/heap/AddressSanitizer.h:60: #define NO_LAZY_SWEEP_SANITIZE_ADDRESS NO_SANITIZE_ADDRESS Now that oilpan is on, do ...
4 years, 2 months ago (2016-10-02 00:54:40 UTC) #32
haraken
4 years, 2 months ago (2016-10-03 02:47:39 UTC) #33
Message was sent while issue was closed.
On 2016/10/02 00:54:40, Nico (mostly away until Oct 3) wrote:
>
https://codereview.chromium.org/1120943002/diff/140001/Source/platform/heap/A...
> File Source/platform/heap/AddressSanitizer.h (right):
> 
>
https://codereview.chromium.org/1120943002/diff/140001/Source/platform/heap/A...
> Source/platform/heap/AddressSanitizer.h:60: #define
> NO_LAZY_SWEEP_SANITIZE_ADDRESS NO_SANITIZE_ADDRESS
> Now that oilpan is on, do we still need this alternative spelling of
> NO_SANITIZE_ADDRESS?

You're right. Will be fixed in https://codereview.chromium.org/2390553002/.

Powered by Google App Engine
This is Rietveld 408576698