IncrementalMarkingTest.StackFrameDepthDisabled fails on first run |
|||
Issue descriptionblink_heap_unittests:IncrementalMarkingTest.StackFrameDepthDisabled fails on its first run in this suite, and has to be retried: [222/308] IncrementalMarkingTest.EnableDisableBarrier (0 ms) [ RUN ] IncrementalMarkingTest.StackFrameDepthDisabled [73477:73477:1019/220512.917344:1514700413943:FATAL:thread_state.cc(924)] Check failed: gc_phase_ == GCPhase::kNone (2 vs. 0) #0 0x00000347f8bf base::debug::StackTrace::StackTrace() #1 0x0000033e6eeb logging::LogMessage::~LogMessage() #2 0x000002bbd976 blink::ThreadState::SetGCPhase() #3 0x0000013e5b62 blink::incremental_marking_test::IncrementalMarkingScope::IncrementalMarkingScope() #4 0x0000013e59e6 blink::incremental_marking_test::IncrementalMarkingTest_StackFrameDepthDisabled_Test::TestBody() #5 0x00000150e792 testing::Test::Run() #6 0x00000150ef90 testing::TestInfo::Run() #7 0x00000150f4a7 testing::TestCase::Run() #8 0x00000151b6c7 testing::internal::UnitTestImpl::RunAllTests() #9 0x00000151b23d testing::UnitTest::Run() #10 0x0000034aaa51 base::TestSuite::Run() #11 0x000001421e4a runHelper() #12 0x0000034ad51d base::(anonymous namespace)::LaunchUnitTestsInternal() #13 0x0000034ad371 base::LaunchUnitTests() #14 0x000001421efe main #15 0x7fd1846092b1 __libc_start_main #16 0x0000012b502a _start [223/308] IncrementalMarkingTest.StackFrameDepthDisabled (CRASHED)
,
Oct 20
With StackFrameDepthDisabled the same suite fails on: [124/307] IncrementalMarkingTest.EnableDisableBarrier (0 ms) [ RUN ] IncrementalMarkingTest.ManualWriteBarrierTriggersWhenMarkingIsOn [17640:17640:1020/160510.122867:4404697742:FATAL:thread_state.cc(924)] Check failed: gc_phase_ == GCPhase::kNone (2 vs. 0) #0 0x00000347b7ef base::debug::StackTrace::StackTrace() #1 0x0000033e2e1b logging::LogMessage::~LogMessage() #2 0x000002bb98b6 blink::ThreadState::SetGCPhase() #3 0x0000013dbb62 blink::incremental_marking_test::IncrementalMarkingScope::IncrementalMarkingScope() #4 0x0000013dc7cf blink::incremental_marking_test::ExpectWriteBarrierFires::ExpectWriteBarrierFires() #5 0x0000013dc473 blink::incremental_marking_test::IncrementalMarkingTest_ManualWriteBarrierTriggersWhenMarkingIsOn_Test::TestBody() #6 0x000001504792 testing::Test::Run() #7 0x000001504f90 testing::TestInfo::Run() #8 0x0000015054a7 testing::TestCase::Run() #9 0x0000015116c7 testing::internal::UnitTestImpl::RunAllTests() #10 0x00000151123d testing::UnitTest::Run() #11 0x0000034a6981 base::TestSuite::Run() #12 0x000001417e4a runHelper() #13 0x0000034a944d base::(anonymous namespace)::LaunchUnitTestsInternal() #14 0x0000034a92a1 base::LaunchUnitTests() #15 0x000001417efe main #16 0x7f479e361f45 __libc_start_main #17 0x0000012ab02a _start This suggests that some preceding test is leaking the |gc_phase_| value. The test preceding the failed IncrementalMarkingTest.* tests is HeapTest.ShrinkVector, and running the suite with: --gtest_filter=HeapTest.ShrinkVector:IncrementalMarkingTest.* reproduces the failure reliably.
,
Oct 21
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/12d2a52b7c6ac8a9ffaa7ddf6f01d5e944539024 commit 12d2a52b7c6ac8a9ffaa7ddf6f01d5e944539024 Author: Wez <wez@chromium.org> Date: Sun Oct 21 03:51:29 2018 Disable HeapTest.ShrinkVector test, which leaks state. This test leaks process-global GCPhase state, potentially crashing tests which run later in the same process, e.g several IncrementalMarkingTest suite tests expect GCPhase to be None when they start executing. Bug: 897400, 879806 Change-Id: I8071fded78038b9c77a4cb6d3a5e1b258a4bbd49 Reviewed-on: https://chromium-review.googlesource.com/c/1292895 Commit-Queue: Wez <wez@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Cr-Commit-Position: refs/heads/master@{#601417} [modify] https://crrev.com/12d2a52b7c6ac8a9ffaa7ddf6f01d5e944539024/third_party/blink/renderer/platform/heap/heap_test.cc
,
Oct 22
I guess this one can be closed now? Please reopen otherwise.
,
Oct 22
Re #4: I would assume that someone will want to look into _why_ this test was causing later tests to fail, and fix & re-enable it, right?
,
Oct 22
BTW, when this gets resolved, please consider adding a post-test check that no global state got leaked by the test, e.g. see https://cs.chromium.org/chromium/src/base/test/test_suite.cc?l=110
,
Oct 25
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d52bfdeb3481d27b40476e2f7d4f886f089e2d9b commit d52bfdeb3481d27b40476e2f7d4f886f089e2d9b Author: Keishi Hattori <keishi@chromium.org> Date: Thu Oct 25 06:00:26 2018 Oilpan: IncrementalMarkingScope should finish in progress GCs first IncrementalMarkingScope may be created while a lazy sweep or incremental marking is in progress, because of a previous test or out of line allocation. We need to finish GC first so we won't hit a DCHECK. Bug: 897400 Change-Id: I26e9501eee9b4b943c7b6b26ce94c23c6365cc99 Reviewed-on: https://chromium-review.googlesource.com/c/1293100 Commit-Queue: Keishi Hattori <keishi@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#602621} [modify] https://crrev.com/d52bfdeb3481d27b40476e2f7d4f886f089e2d9b/third_party/blink/renderer/platform/heap/heap_test.cc [modify] https://crrev.com/d52bfdeb3481d27b40476e2f7d4f886f089e2d9b/third_party/blink/renderer/platform/heap/incremental_marking_test.cc |
|||
►
Sign in to add a comment |
|||
Comment 1 by w...@chromium.org
, Oct 20