TabLoaderTest.UsePageAlmostIdleSignal DCHECKs in unit_tests runs |
|||
Issue description
TabLoaderTest.UsePageAlmostIdleSignal crashes when it runs in unit_tests. If it runs standalone, it passes.
I think the previous test, TabLoaderTest.OnMemoryStateChange, affects the SessionRestoreStatsCollector global state, causing UsePageAlmostIdleSignal to fail a DCHECK.
out_linux/rel/unit_tests $TESTF=TabLoaderTest.\*
IMPORTANT DEBUGGING NOTE: batches of tests are run inside their
own process. For debugging a test inside a debugger, use the
--gtest_filter=<your_test_name> flag along with
--single-process-tests.
Using sharding settings from environment. This is shard 0/1
Using 1 parallel jobs.
Note: Google Test filter = TabLoaderTest.OnMemoryStateChange:TabLoaderTest.UsePageAlmostIdleSignal
[==========] Running 2 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 2 tests from TabLoaderTest
[ RUN ] TabLoaderTest.OnMemoryStateChange
[ OK ] TabLoaderTest.OnMemoryStateChange (20 ms)
[ RUN ] TabLoaderTest.UsePageAlmostIdleSignal
[71322:71322:1209/143920.468012:4079857799223:FATAL:session_restore_stats_collector.cc(130)] Check failed: !done_tracking_non_deferred_tabs_.
#0 0x7f06e3ad52cc base::debug::StackTrace::StackTrace()
#1 0x7f06e3aff21c logging::LogMessage::~LogMessage()
#2 0x00000344f97d SessionRestoreStatsCollector::TrackTabs()
#3 0x0000034566b9 TabLoader::RestoreTabs()
#4 0x00000269218c TabLoaderTest_UsePageAlmostIdleSignal_Test::TestBody()
#5 0x0000028d4496 testing::Test::Run()
#6 0x0000028d4f70 testing::TestInfo::Run()
#7 0x0000028d5457 testing::TestCase::Run()
#8 0x0000028dbb17 testing::internal::UnitTestImpl::RunAllTests()
#9 0x0000028db767 testing::UnitTest::Run()
#10 0x000002dadd52 base::TestSuite::Run()
#11 0x000002db06f7 base::(anonymous namespace)::LaunchUnitTestsInternal()
#12 0x000002db056b base::LaunchUnitTests()
#13 0x000002da5f58 main
#14 0x7f06d873bf45 __libc_start_main
#15 0x00000105302a _start
[71318:71321:1209/143920.634655:4079857966170:ERROR:kill_posix.cc(84)] Unable to terminate process group 71322: No such process (3)
[1/2] TabLoaderTest.OnMemoryStateChange (20 ms)
[2/2] TabLoaderTest.UsePageAlmostIdleSignal (CRASHED)
1 test crashed:
TabLoaderTest.UsePageAlmostIdleSignal (../../chrome/browser/sessions/tab_loader_unittest.cc:73)
,
Dec 12 2017
,
Dec 14 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4a2337dde676a76d4bfb99bf1d92bd0efda57e29 commit 4a2337dde676a76d4bfb99bf1d92bd0efda57e29 Author: Peiyong Lin <lpy@chromium.org> Date: Thu Dec 14 00:24:57 2017 [SessionRestore] Clean up TabLoader every time when a test case is torn down. Previously, we didn't reset |shared_tab_loader_| every time when a test cast got torn down, resulting in DCHECK failure when we tried to restore tabs in another test case. This patch resets |shared_tab_loader_| every time when a test cases is being torn down. BUG= 793625 Change-Id: Ic21faedd1748f6c9d26f1d493d97f7679c8e2dca Reviewed-on: https://chromium-review.googlesource.com/823250 Reviewed-by: Scott Violet <sky@chromium.org> Commit-Queue: lpy <lpy@chromium.org> Cr-Commit-Position: refs/heads/master@{#523949} [modify] https://crrev.com/4a2337dde676a76d4bfb99bf1d92bd0efda57e29/chrome/browser/sessions/tab_loader.h [modify] https://crrev.com/4a2337dde676a76d4bfb99bf1d92bd0efda57e29/chrome/browser/sessions/tab_loader_unittest.cc
,
Dec 14 2017
This should now be fixed.
,
Dec 14 2017
Thanks! |
|||
►
Sign in to add a comment |
|||
Comment 1 by michae...@chromium.org
, Dec 9 2017