context_lost_tests flakes on Linux Debug (NVIDIA) |
||
Issue descriptioncontext_lost_tests has become flaky on Linux Debug (NVIDIA). GpuCrash_GPUProcessCrashesExactlyOncePerVisitToAboutGpuCrash is failing. The first failing run is here: https://ci.chromium.org/buildbot/chromium.gpu/Linux%20Debug%20%28NVIDIA%29/91506 Here is the crash stack: 0 chrome!CanPurgeBackgroundedRenderer [tab_manager.cc : 357 + 0x6] 1 chrome!PurgeBackgroundedTabsIfNeeded [tab_manager.cc : 493 + 0xc] 2 chrome!resource_coordinator::TabManager::UpdateTimerCallback() + 0x64 3 chrome!void base::internal::FunctorTraits<void (OAuth2TokenService::Fetcher::*)(), void>::Invoke<OAuth2TokenService::Fetcher*>(void (OAuth2TokenService::Fetcher::*)(), OAuth2TokenService::Fetcher*&&) + 0x7d 4 chrome!MakeItSo<safe_browsing::ExtendedReportingLevel (safe_browsing::ServicesDelegateImpl::*const &)() const, safe_browsing::ServicesDelegateImpl *> [bind_internal.h : 530 + 0x15] 5 chrome!RunImpl<safe_browsing::ExtendedReportingLevel (safe_browsing::ServicesDelegateImpl::*const &)() const, const std::__1::tuple<base::internal::UnretainedWrapper<safe_browsing::ServicesDelegateImpl> > &, 0> [bind_internal.h : 604 + 0x9] 6 chrome!base::internal::Invoker<base::internal::BindState<void (OAuth2TokenService::Fetcher::*)(), base::internal::UnretainedWrapper<OAuth2TokenService::Fetcher> >, void ()>::Run(base::internal::BindStateBase*) + 0x2c 7 libbase.so!base::RepeatingCallback<void ()>::Run() const & + 0x3d 8 libbase.so!base::Timer::RunScheduledTask() + 0x118 9 libbase.so!base::BaseTimerTaskInternal::Run() + 0x49 10 libbase.so!void base::internal::FunctorTraits<void (base::FileDescriptorWatcher::Controller::Watcher::*)(), void>::Invoke<base::FileDescriptorWatcher::Controller::Watcher*>(void (base::FileDescriptorWatcher::Controller::Watcher::*)(), base::FileDescriptorWatcher::Controller::Watcher*&&) + 0x7d 11 libbase.so!MakeItSo<void (base::BaseTimerTaskInternal::*)(), base::BaseTimerTaskInternal *> [bind_internal.h : 530 + 0x15] 12 libbase.so!RunImpl<void (base::BaseTimerTaskInternal::*)(), std::__1::tuple<base::internal::OwnedWrapper<base::BaseTimerTaskInternal> >, 0> [bind_internal.h : 604 + 0x9] 13 libbase.so!RunOnce [bind_internal.h : 572 + 0x5] 14 libbase.so!Run [callback.h : 95 + 0x9] 15 libbase.so!RunTask [task_annotator.cc : 61 + 0x5] 16 libbase.so!base::internal::IncomingTaskQueue::RunTask(base::PendingTask*) + 0xe9 17 libbase.so!base::MessageLoop::RunTask(base::PendingTask*) + 0x38b 18 libbase.so!DeferOrRunPendingTask [message_loop.cc : 407 + 0x13] 19 libbase.so!DoDelayedWork [message_loop.cc : 491 + 0xc] 20 libbase.so!base::MessagePumpGlib::HandleDispatch() + 0x77 21 libbase.so!base::(anonymous namespace)::WorkSourceDispatch(_GSource*, int (*)(void*), void*) + 0x21 22 libglib-2.0.so.0.4002.0 + 0x48e04 23 libglib-2.0.so.0.4002.0 + 0x57b40 24 libglib-2.0.so.0.4002.0 + 0x49048 25 libbase.so!base::RunLoop::ScopedDisallowRunningForTesting::~ScopedDisallowRunningForTesting() + 0x130 26 chrome + 0x1744000 27 chrome + 0x1744000 28 libglib-2.0.so.0.4002.0 + 0x490ec 29 libbase.so!base::MessagePumpGlib::Run(base::MessagePump::Delegate*) + 0x9f 30 libbase.so!Run [message_loop.cc : 346 + 0xc] 31 libbase.so!base::internal::LockImpl::Unlock() + 0x60 32 libbase.so!DebugDeallocate(void*, int) + 0xe5 33 libbase.so!MallocHook::GetDeleteHook() + 0x10 34 libbase.so!MallocHook::InvokeDeleteHook(void const*) + 0x31 35 libbase.so!tc_free + 0x23 36 libbase.so!(anonymous namespace)::TCFree(base::allocator::AllocatorDispatch const*, void*, void*) + 0x1d 37 libbase.so!ShimFree + 0x2f 38 libbase.so!base::Lock::Release() + 0x26 39 libbase.so!base::AutoLock::~AutoLock() + 0x2b 40 libbase.so!DetachFromSequence [sequence_checker_impl.cc : 49 + 0x5] 41 libbase.so!Run [run_loop.cc : 133 + 0x20] 42 libbase.so!tc_free + 0x23 43 libbase.so!(anonymous namespace)::TCFree(base::allocator::AllocatorDispatch const*, void*, void*) + 0x1d 44 libbase.so!ShimFree + 0x2f 45 libbase.so!free + 0x19 46 libc++.so!operator delete(void*) + 0x20 47 libc++.so!~basic_string [new : 236 + 0x5] 48 chrome!SetExecutionPhase [execution_phase.cc : 39 + 0xc] 49 libbase.so!base::internal::StrictNumeric<unsigned long> base::internal::CheckedNumeric<unsigned long>::ValueOrDie<unsigned long, base::internal::CheckOnFailure>() const + 0x55 50 libbase.so!base::time_internal::SaturatedAdd(base::TimeDelta, long) + 0x5d 51 libbase.so!base::Time::Time(long) + 0x28 52 libbase.so!base::time_internal::TimeBase<base::Time>::operator+(base::TimeDelta) const + 0x34 53 libbase.so!base::subtle::TimeTicksNowIgnoringOverride() + 0x3c 54 chrome!metrics::MetricsService::SetExecutionPhase(metrics::ExecutionPhase, PrefService*) + 0x34 55 chrome!ChromeBrowserMainParts::MainMessageLoopRun(int*) + 0x171 56 libbase.so!FactoryTimeGet [histogram.cc : 278 + 0xc] 57 libbase.so!base::Histogram::Add(int) + 0x21 58 libbase.so!base::HistogramBase::AddTime(base::TimeDelta const&) + 0x3a 59 libcontent.so!content::BrowserMainRunnerImpl::Initialize(content::MainFunctionParams const&)::ScopedHistogramTimer0::~ScopedHistogramTimer0() + 0xdc 60 libcontent.so!RunMainMessageLoopParts [browser_main_loop.cc : 1104 + 0xc] 61 libcontent.so!Initialize [browser_main_runner.cc : 149 + 0x11] 62 libbase.so!tcmalloc::PageHeap::GetDescriptor(unsigned long) const + 0x1d 63 libcontent.so!Run [browser_main_runner.cc : 160 + 0xc] 64 libbase.so!MallocBlock::Initialize(unsigned long, int) + 0x1e0 65 libbase.so!base::debug::ScopedLockAcquireActivity::ScopedLockAcquireActivity(base::internal::LockImpl const*) + 0x2d 66 libbase.so!MallocBlock::Allocate(unsigned long, int) + 0x207 67 libbase.so!MallocHook::InvokeNewHook(void const*, unsigned long) + 0x39 68 libbase.so!tc_malloc + 0x26 69 libbase.so!(anonymous namespace)::TCMalloc(base::allocator::AllocatorDispatch const*, unsigned long, void*) + 0x1d 70 libcontent.so!BrowserMainRunnerImpl [browser_main_runner.cc : 55 + 0xf] 71 libcontent.so!BrowserMain [browser_main.cc : 46 + 0x9] Here is the fifteen previous runs, the culprit is likely in there: https://test-results.appspot.com/revision_range?start=541416&end=541546 Looking now...
,
Mar 8 2018
Revert is here: https://crrev.com/c/955882 I was able to reproduce the failure within a couple of iterations when built with the GN configuration as the bot: https://ci.chromium.org/buildbot/chromium.gpu/GPU%20Linux%20Builder%20%28dbg%29/ $ gn args out/gpu # args $ ninja -C out/gpu chrome $ true ; while [ $? -eq 0 ] ; do content/test/gpu/run_gpu_integration_test.py context_lost --show-stdout --browser=exact --browser-executable='out/gpu/chrome' --passthrough -v --extra-browser-args='--enable-logging=stderr --js-flags=--expose-gc' --test-filter='GpuCrash_GPUProcessCrashesExactlyOncePerVisitToAboutGpuCrash'; done
,
Mar 8 2018
Thanks Kyle for tracking this down! Linked to the bugs associated with the CL you reverted. |
||
►
Sign in to add a comment |
||
Comment 1 by kylec...@chromium.org
, Mar 8 2018Owner: kylec...@chromium.org
Status: Started (was: Untriaged)