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

Issue 1494503004: Reland of "[heap] Clean up stale store buffer entries for aborted pages." (Closed)

Created:
5 years ago by Michael Lippautz
Modified:
5 years ago
CC:
v8-reviews_googlegroups.com, Michael Hablich
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Reland of "[heap] Clean up stale store buffer entries for aborted pages." This reverts commit d4fc4a8cad0a8f94ea2a8bca7c76cebd8793395c. 1. Let X be the aborted slot (slot in an evacuated object in an aborted page) 2. Assume X contains pointer to Y and Y is in the new space, so X is in the store buffer. 3. Store buffer rebuilding will not filter out X (it checks InNewSpace(Y)). 4. The current mark-sweep finishes. The slot X is in free space and is also in the store buffer. 5. A string of length 9 "abcdefghi" is allocated in the new space. The string looks like |MAP|LENGTH|hgfedcba|NNNNNNNi| in memory, where NNNNNNN is previous garbage. Let's assume that NNNNNNN0 was pointing to a new space object before. 6. Scavenge happens. 7. Slot X is still in free space and in store buffer. [It causes scavenge of the object Y in store_buffer()->IteratePointersToNewSpace(&Scavenger::ScavengeObject). But it is not important]. 8. Our string is promoted and is allocated over the slot X, such that NNNNNNNi is written in X. 9. The scavenge finishes. 9. Another scavenge starts. 10. We crash in store_buffer()->IteratePointersToNewSpace(&Scavenger::ScavengeObject) when processing slot X, because it doesn't point to valid map. BUG=chromium:524425, chromium:564498 LOG=N R=hpayer@chromium.org, ulan@chromium.org Committed: https://crrev.com/fc6ff534003480e49dc481d9c665e961ab709c02 Cr-Commit-Position: refs/heads/master@{#32514}

Patch Set 1 : Base #

Patch Set 2 : Reorder sweeping (on main thread) and store buffer fixup phase #

Total comments: 2

Patch Set 3 : Reorder to the right place #

Unified diffs Side-by-side diffs Delta from patch set Stats (+19 lines, -9 lines) Patch
M src/heap/mark-compact.cc View 1 2 4 chunks +17 lines, -8 lines 0 comments Download
M src/heap/spaces.h View 1 chunk +2 lines, -1 line 0 comments Download

Messages

Total messages: 18 (8 generated)
Michael Lippautz
PTAL. Already running on bots that failed with the broken fix on the waterfall.
5 years ago (2015-12-02 12:31:40 UTC) #3
ulan
lgtm
5 years ago (2015-12-02 12:35:06 UTC) #4
Hannes Payer (out of office)
https://codereview.chromium.org/1494503004/diff/20001/src/heap/mark-compact.cc File src/heap/mark-compact.cc (right): https://codereview.chromium.org/1494503004/diff/20001/src/heap/mark-compact.cc#newcode3765 src/heap/mark-compact.cc:3765: The store buffer processing should go here, after sweeping ...
5 years ago (2015-12-02 12:45:18 UTC) #5
Hannes Payer (out of office)
lgtm, after moving it below sweeping aborted pages.
5 years ago (2015-12-02 12:56:48 UTC) #6
Michael Lippautz
https://codereview.chromium.org/1494503004/diff/20001/src/heap/mark-compact.cc File src/heap/mark-compact.cc (right): https://codereview.chromium.org/1494503004/diff/20001/src/heap/mark-compact.cc#newcode3765 src/heap/mark-compact.cc:3765: On 2015/12/02 12:45:18, Hannes Payer wrote: > The store ...
5 years ago (2015-12-02 13:04:19 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1494503004/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1494503004/40001
5 years ago (2015-12-02 13:04:23 UTC) #10
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1494503004/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1494503004/40001
5 years ago (2015-12-02 13:48:59 UTC) #13
commit-bot: I haz the power
Committed patchset #3 (id:40001)
5 years ago (2015-12-02 14:04:41 UTC) #15
commit-bot: I haz the power
Patchset 3 (id:??) landed as https://crrev.com/fc6ff534003480e49dc481d9c665e961ab709c02 Cr-Commit-Position: refs/heads/master@{#32514}
5 years ago (2015-12-02 14:05:02 UTC) #17
Michael Lippautz
5 years ago (2015-12-02 14:47:14 UTC) #18
Message was sent while issue was closed.
A revert of this CL (patchset #3 id:40001) has been created in
https://codereview.chromium.org/1492823002/ by mlippautz@chromium.org.

The reason for reverting is: Still failing on GC stress
 
https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux%20-%20gc%20s....

Powered by Google App Engine
This is Rietveld 408576698