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

Issue 2650543004: VM: [GC] Array::MakeArray is racing with the sweeper. (Closed)

Created:
3 years, 11 months ago by Vyacheslav Egorov (Google)
Modified:
3 years, 10 months ago
Reviewers:
rmacnak, siva
CC:
reviews_dartlang.org, vm-dev_dartlang.org, siva
Target Ref:
refs/heads/master
Visibility:
Public.

Description

VM: [GC] Array::MakeArray is racing with the sweeper. Array::MakeArray can update tags and length of an array after tags were loaded by RawObject::Size() which leads to the inconsistency between size computed from these (stale) tags and SizeFromClass(). This race is benign in release mode and should only affect the assertion: if sweeper is using stale tags it will just think that a more memory is occupied by the array than it really occupies. Fixes https://github.com/dart-lang/sdk/issues/27988 R=rmacnak@google.com Committed: https://github.com/dart-lang/sdk/commit/e538af5a445ea03045b3d1de309283368591bbc2

Patch Set 1 #

Patch Set 2 : Add a workaround for the MakeArray race #

Unified diffs Side-by-side diffs Delta from patch set Stats (+13 lines, -1 line) Patch
M runtime/vm/raw_object.h View 1 1 chunk +13 lines, -1 line 0 comments Download

Messages

Total messages: 10 (5 generated)
Vyacheslav Egorov (Google)
Hi Ryan, Please take a look, Thanks!
3 years, 11 months ago (2017-01-21 18:34:34 UTC) #3
Vyacheslav Egorov (Google)
Heap::VisitObjects which is used for renumbering actually enumerates all objects (including corpses) so this fix ...
3 years, 11 months ago (2017-01-23 18:14:18 UTC) #4
Vyacheslav Egorov (Google)
PTAL
3 years, 11 months ago (2017-01-24 13:39:56 UTC) #7
rmacnak
LGTM
3 years, 11 months ago (2017-01-24 17:50:34 UTC) #8
Vyacheslav Egorov (Google)
3 years, 10 months ago (2017-01-30 11:04:29 UTC) #10
Message was sent while issue was closed.
Committed patchset #2 (id:20001) manually as
e538af5a445ea03045b3d1de309283368591bbc2 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698