diff options
author | Lokesh Gidra <lokeshgidra@google.com> | 2019-12-05 11:03:34 -0800 |
---|---|---|
committer | Lokesh Gidra <lokeshgidra@google.com> | 2019-12-05 11:41:39 -0800 |
commit | 726e2dd6db60968b36c1d03feab236edc8fa806b (patch) | |
tree | 78b379652ed945f44051856a27e1597b6c7a65db /test/ProfileTestMultiDex/Main.java | |
parent | e3f775bace85f4fe02dfd4042091d2f7d6fcbc25 (diff) |
Read thread-local mark-stack inside critical section
Reading thread-local mark-stack outside mark_stack_lock_'s critical
section (CS) and then adding it to pooled_mark_stacks_ vector in the CS
leads to concurrency issue. A destroying mutator reads its mark-stack
and then waits on mark_stack_lock_ as concurrently running GC-thread
revokes the mutator's mark-stack. Eventually, when mutator resumes, it
adds the same mark-stack again to the pooled_mark_stacks_ vector.
Therefore, reading the thread-local mark-stack should also be performed
inside the mark_stack_lock_'s CS.
Test: art/test/testrunner/testrunner.py
Bug: 140119552
Change-Id: I1daf7131e380699cd6bfcc8bfe2f2db52b661bd6
Diffstat (limited to 'test/ProfileTestMultiDex/Main.java')
0 files changed, 0 insertions, 0 deletions