Chromium Code Reviews
Help | Chromium Project | Gerrit Changes | Sign in
(49)

Issue 1174463003: Oilpan: Disable lazy seeping for ImageLoaders (Closed)

Created:
4 years, 10 months ago by haraken
Modified:
4 years, 10 months ago
Reviewers:
oilpan-reviews, sof
CC:
blink-reviews, tyoshino+watch_chromium.org, Nate Chapin, gavinp+loader_chromium.org
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Oilpan: Disable lazy seeping for ImageLoaders We must run the destructor in the eager sweeping phase and call m_image->removeClient(this). Otherwise, the ImageResource can invoke didAddClient() for the ImageLoader that is about to die in the current lazy sweeping, and the didAddClient() can access on-heap objects that have already been finalized in the current lazy sweeping. BUG= Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=196762

Patch Set 1 #

Total comments: 2

Patch Set 2 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+14 lines, -19 lines) Patch
M Source/core/loader/ImageLoader.h View 1 1 chunk +7 lines, -0 lines 0 comments Download
M Source/core/loader/ImageLoader.cpp View 1 chunk +7 lines, -19 lines 0 comments Download

Messages

Total messages: 28 (3 generated)
haraken
As commented in https://codereview.chromium.org/1151163002/#msg13, Heap::willObjectBeLazilySwept can return a wrong result in some edge cases. I ...
4 years, 10 months ago (2015-06-09 11:03:47 UTC) #2
sof
On 2015/06/09 11:03:47, haraken wrote: > As commented in https://codereview.chromium.org/1151163002/#msg13, > Heap::willObjectBeLazilySwept can return a ...
4 years, 10 months ago (2015-06-09 11:06:38 UTC) #3
haraken
On 2015/06/09 11:06:38, sof wrote: > On 2015/06/09 11:03:47, haraken wrote: > > As commented ...
4 years, 10 months ago (2015-06-09 11:13:30 UTC) #4
sof
On 2015/06/09 11:13:30, haraken wrote: > On 2015/06/09 11:06:38, sof wrote: > > On 2015/06/09 ...
4 years, 10 months ago (2015-06-09 11:18:15 UTC) #5
haraken
I haven't yet figured out what's going on, but two comments. https://codereview.chromium.org/1174463003/diff/1/Source/core/loader/ImageLoader.h File Source/core/loader/ImageLoader.h (right): ...
4 years, 10 months ago (2015-06-09 11:53:18 UTC) #6
haraken
Identified the root cause :) See the CL description.
4 years, 10 months ago (2015-06-09 12:14:45 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1174463003/20001
4 years, 10 months ago (2015-06-09 12:15:41 UTC) #10
sof
On 2015/06/09 11:18:15, sof wrote: > On 2015/06/09 11:13:30, haraken wrote: > > On 2015/06/09 ...
4 years, 10 months ago (2015-06-09 12:16:58 UTC) #11
haraken
On 2015/06/09 12:16:58, sof wrote: > On 2015/06/09 11:18:15, sof wrote: > > On 2015/06/09 ...
4 years, 10 months ago (2015-06-09 12:20:48 UTC) #12
sof
On 2015/06/09 12:20:48, haraken wrote: > On 2015/06/09 12:16:58, sof wrote: > > On 2015/06/09 ...
4 years, 10 months ago (2015-06-09 12:39:27 UTC) #13
haraken
> Yes, no problem there -- but the chain of calls that trigger this isn't ...
4 years, 10 months ago (2015-06-09 12:55:14 UTC) #14
sof
On 2015/06/09 12:39:27, sof wrote: > On 2015/06/09 12:20:48, haraken wrote: > > On 2015/06/09 ...
4 years, 10 months ago (2015-06-09 13:07:47 UTC) #15
haraken
On 2015/06/09 13:07:47, sof wrote: > On 2015/06/09 12:39:27, sof wrote: > > On 2015/06/09 ...
4 years, 10 months ago (2015-06-09 13:15:09 UTC) #16
sof
On 2015/06/09 12:55:14, haraken wrote: > > Yes, no problem there -- but the chain ...
4 years, 10 months ago (2015-06-09 13:17:48 UTC) #17
commit-bot: I haz the power
Committed patchset #2 (id:20001) as https://src.chromium.org/viewvc/blink?view=rev&revision=196762
4 years, 10 months ago (2015-06-09 13:26:04 UTC) #18
sof
On 2015/06/09 13:15:09, haraken wrote: > On 2015/06/09 13:07:47, sof wrote: > > ... > ...
4 years, 10 months ago (2015-06-09 14:23:40 UTC) #19
sof
I suspected this would happen at some point, but eagerly finalizing ImageLoader might access another ...
4 years, 10 months ago (2015-06-10 09:23:40 UTC) #20
sof
On 2015/06/10 09:23:40, sof wrote: > I suspected this would happen at some point, but ...
4 years, 10 months ago (2015-06-10 10:35:47 UTC) #21
haraken
On 2015/06/10 10:35:47, sof wrote: > On 2015/06/10 09:23:40, sof wrote: > > I suspected ...
4 years, 10 months ago (2015-06-10 10:37:28 UTC) #22
sof
On 2015/06/10 10:37:28, haraken wrote: > On 2015/06/10 10:35:47, sof wrote: > > On 2015/06/10 ...
4 years, 10 months ago (2015-06-10 10:59:37 UTC) #23
haraken
On 2015/06/10 10:59:37, sof wrote: > On 2015/06/10 10:37:28, haraken wrote: > > On 2015/06/10 ...
4 years, 10 months ago (2015-06-10 11:14:15 UTC) #24
sof
On 2015/06/10 11:14:15, haraken wrote: > On 2015/06/10 10:59:37, sof wrote: > > On 2015/06/10 ...
4 years, 10 months ago (2015-06-10 11:33:09 UTC) #25
sof
On 2015/06/10 11:33:09, sof wrote: > On 2015/06/10 11:14:15, haraken wrote: > > On 2015/06/10 ...
4 years, 10 months ago (2015-06-10 11:38:10 UTC) #26
haraken
(Let me think about the pre-finalizer issues a bit more.) BTW, this bug was use-after-free ...
4 years, 10 months ago (2015-06-10 13:30:10 UTC) #27
sof
4 years, 10 months ago (2015-06-10 14:03:35 UTC) #28
Message was sent while issue was closed.
On 2015/06/10 13:30:10, haraken wrote:
> (Let me think about the pre-finalizer issues a bit more.)
> 
> BTW, this bug was use-after-free errors caused by lazy sweeping. That is
scary.
> 
> To detect those use-after-frees errors more easily, I implemented a mechanism
to
> defer reusing free lists for one GC cycle
> (https://codereview.chromium.org/1176003002/). This mechanism has been working
> only on ASan builds in a half-baked state, but the CL enables the mechanism in
> all ENABLE(ASSERT) builds. Hope it helps.

The ASan poisoning for the eager heap is as strict as it can be, but fully agree
with the above.

Powered by Google App Engine
This is Rietveld 408576698