New issue
Advanced search Search tips

Issue 789144 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

DCHECK fails on boot

Project Member Reported by vkuzkokov@chromium.org, Nov 28 2017

Issue description

Chrome Version: ToT (6c24932cd7b611cee16d664cb9de62c327c162d0) with dcheck_always_on
OS: ChromeOS

What steps will reproduce the problem?
Boot

What is the expected result?
Login screen

What happens instead?
Nothing

I have veyron_minnie which cannon symbolize stacks.
So here's all I have:
[1:1:1128/153603.247632:VERBOSE1:zygote_main_linux.cc(601)] ZygoteMain: initializing 2 fork delegates
[1547:1547:1128/153603.352466:VERBOSE1:drm_display_host_manager.cc(89)] Failed to get DRM resources for '/dev/dri/card0': Invalid argument (22)
[1547:1547:1128/153603.356242:VERBOSE1:drm_device_handle.cc(83)] Succeeded authenticating /dev/dri/card1 in 1 ms with 1 attempt(s)
[1547:1547:1128/153603.359642:VERBOSE1:drm_util.cc(372)] Failed to get EDID blob for connector 32
[1791:1791:1128/153603.625280:ERROR:gpu_info.cc(103)] No active GPU found, returning primary GPU.
[1547:1547:1128/153603.632799:VERBOSE1:update_display_configuration_task.cc(69)] OnDisplaysUpdated: new_display_state=SINGLE new_power_state=ALL_ON flags=1 force_configure=1 display_count=1
[1547:1547:1128/153603.633757:VERBOSE1:display_configurator.cc(212)] EnterState: display=SINGLE power=ALL_ON
[1547:1547:1128/153603.633863:VERBOSE1:display_configurator.cc(1054)] OnConfigured: success=1 new_display_state=SINGLE new_power_state=ALL_ON
[1547:1774:1128/153603.651627:WARNING:name_value_pairs_parser.cc(55)] Key block_devmode already has value (error), ignoring new value: 0
[1547:1774:1128/153603.651843:WARNING:name_value_pairs_parser.cc(55)] Key ActivateDate already has value 2015-24, ignoring new value: 2015-24
[1547:1774:1128/153603.651878:WARNING:name_value_pairs_parser.cc(55)] Key block_devmode already has value (error), ignoring new value: 0
[1547:1774:1128/153603.651906:WARNING:name_value_pairs_parser.cc(55)] Key check_enrollment already has value 0, ignoring new value: 0
[1547:1547:1128/153603.656351:WARNING:statistics_provider.cc(285)] Statistics loaded after waiting 22ms.
[1547:1547:1128/153603.656423:ERROR:display_manager.cc(1735)] Could not find display:0
[1547:1547:1128/153603.933484:ERROR:input_method_manager_impl.cc(1031)] IMEEngine for "jkghodnilhceideoidjikpgommlajknk" is not registered
[1547:1547:1128/153603.937561:VERBOSE1:chrome_session_manager.cc(196)] Starting Chrome with login/oobe screen.
[1547:1547:1128/153603.937629:VERBOSE1:login_display_host_webui.cc(1342)] Showing OOBE screen: unknown
[1547:1547:1128/153603.949537:VERBOSE1:login_display_host_webui.cc(1415)] Current locale: en-US
[1547:1547:1128/153603.949854:VERBOSE1:input_events_blocker.cc(19)] InputEventsBlocker 0x129e4428 created.
[1547:1547:1128/153603.950787:VERBOSE1:login_display_host_webui.cc(525)] Login WebUI >> zero_delay: 0 wait_for_wp_load_: 1 wait_for_pods_: 0 init_webui_hidden_: 1
[1547:1547:1128/153603.982085:VERBOSE1:login_display_host_webui.cc(764)] Login WebUI >> sign in
[1547:1547:1128/153604.014481:VERBOSE1:login_display_host_webui.cc(1250)] Login WebUI >> login wnd is hidden on create
[1547:1783:1128/153604.023292:WARNING:child_process_launcher_helper_posix.cc(118)] Ignoring invalid file v8_context_snapshot.bin
[1547:1547:1128/153604.068438:VERBOSE1:login_display_host_webui.cc(774)] Starting sign in screen
[1547:1547:1128/153604.070009:VERBOSE1:input_events_blocker.cc(28)] InputEventsBlocker 0x129e4428 destroyed.
[1547:1547:1128/153604.104838:VERBOSE1:display_configurator.cc(902)] SetDisplayPower: power_state=ALL_ON flags=0, configure timer=Stopped
[1547:1547:1128/153604.121878:FATAL:weak_ptr.cc(26)] Check failed: sequence_checker_.CalledOnValidSequence(). WeakPtrs must be checked on the same sequenced thread.
[1871:1871:1128/153604.162277:ERROR:gpu_info.cc(103)] No active GPU found, returning primary GPU.

 
FYI, I don't hit this in debug build.
Owner: dcasta...@chromium.org
Seems I did something wrong. Here's trace:
#0 0x00000ab81200 base::debug::StackTrace::StackTrace()
#1 0x00000ab80760 base::debug::StackTrace::StackTrace()
#2 0x00000abba7b4 logging::LogMessage::~LogMessage()
#3 0x00000abca6e2 base::internal::WeakReference::Flag::IsValid()
#4 0x00000abca808 base::internal::WeakReference::is_valid()
#5 0x000005eec988 base::WeakPtr<>::get()
#6 0x000005eec90a base::WeakPtr<>::operator bool()
#7 0x000006348fda base::ObserverList<>::Iter::Iter()
#8 0x000006347560 base::ObserverList<>::begin()
#9 0x0000063457b8 ui::DrmGpuPlatformSupportHost::OnChannelEstablished()
#10 0x00000634967a _ZN4base8internal13FunctorTraitsIMN2ui25DrmGpuPlatformSupportHostEFvvEvE6InvokeIRKNS_7WeakPtrIS3_EEJEEEvS5_OT_DpOT0_
#11 0x000006349618 _ZN4base8internal12InvokeHelperILb1EvE8MakeItSoIRKMN2ui25DrmGpuPlatformSupportHostEFvvERKNS_7WeakPtrIS5_EEJEEEvOT_OT0_DpOT1_
#12 0x0000063495d8 _ZN4base8internal7InvokerINS0_9BindStateIMN2ui25DrmGpuPlatformSupportHostEFvvEJNS_7WeakPtrIS4_EEEEEFvvEE7RunImplIRKS6_RKNSt3__15tupleIJS8_EEEJLj0EEEEvOT_OT0_NSF_16integer_sequenceIjJXspT1_EEEE
#13 0x00000634955c _ZN4base8internal7InvokerINS0_9BindStateIMN2ui25DrmGpuPlatformSupportHostEFvvEJNS_7WeakPtrIS4_EEEEEFvvEE3RunEPNS0_13BindStateBaseE
#14 0x000005e60e70 _ZNO4base12OnceCallbackIFvvEE3RunEv
#15 0x00000ab830b0 base::debug::TaskAnnotator::RunTask()
#16 0x00000acf8c24 base::internal::IncomingTaskQueue::RunTask()
#17 0x00000abcd06a base::MessageLoop::RunTask()
#18 0x00000abcd266 base::MessageLoop::DeferOrRunPendingTask()
#19 0x00000abcd434 base::MessageLoop::DoWork()
#20 0x00000abd0fc4 base::MessagePumpLibevent::Run()
#21 0x00000abccb86 base::MessageLoop::Run()
#22 0x00000ac242b0 base::RunLoop::Run()
#23 0x00000a357cbc ChromeBrowserMainParts::MainMessageLoopRun()
#24 0x0000071e15bc content::BrowserMainLoop::RunMainMessageLoopParts()
#25 0x0000071e8e52 content::BrowserMainRunnerImpl::Run()
#26 0x0000071d9c6a content::BrowserMain()
#27 0x00000a327fa4 content::RunNamedProcessTypeMain()
#28 0x00000a329fd8 content::ContentMainRunnerImpl::Run()
#29 0x00000a3247a8 content::ContentServiceManagerMainDelegate::RunEmbedderProcess()
#30 0x00000a340e74 service_manager::Main()
#31 0x00000a32770a content::ContentMain()
#32 0x000005d45260 ChromeMain
#33 0x000005d4517a main
#34 0x0000a6a978a0 __libc_start_main

Cc: vkuzkokov@chromium.org dcasta...@chromium.org
Owner: rjkroege@chromium.org
Reassigning to rjkroege@ that knows DrmGpuPlatformSupportHost better than I do.

@#1: you say you don't hit this DCHECK in a debug build. Does it mean you hit it in a release build with dchekcs on?
Yes, I couldn't get a stack trace in release at first but here it is:
[3697:3697:1129/203827.738248:FATAL:weak_ptr.cc(26)] Check failed: sequence_checker_.CalledOnValidSequence(). WeakPtrs must be checked on the same sequenced thread.
#0 0x00000d939e2c base::debug::StackTrace::StackTrace()
#1 0x00000d94f4c8 logging::LogMessage::~LogMessage()
#2 0x00000d95579a base::internal::WeakReference::is_valid()
#3 0x00000bc9b34a base::ObserverList<>::Iter::Iter()
#4 0x00000bc998ec ui::DrmGpuPlatformSupportHost::OnChannelEstablished()
#5 0x00000bc9b722 _ZN4base8internal7InvokerINS0_9BindStateIMN2ui25DrmGpuPlatformSupportHostEFvvEJNS_7WeakPtrIS4_EEEEEFvvEE3RunEPNS0_13BindStateBaseE
#6 0x00000d93a420 base::debug::TaskAnnotator::RunTask()
#7 0x00000d9cbc82 base::internal::IncomingTaskQueue::RunTask()
#8 0x00000d957114 base::MessageLoop::RunTask()
#9 0x00000d9573ee base::MessageLoop::DeferOrRunPendingTask()
#10 0x00000d957594 base::MessageLoop::DoWork()
#11 0x00000d959238 base::MessagePumpLibevent::Run()
#12 0x00000d956bd6 base::MessageLoop::Run()
#13 0x00000d977cb8 base::RunLoop::Run()
#14 0x00000d667c9e ChromeBrowserMainParts::MainMessageLoopRun()
#15 0x00000c10ffee content::BrowserMainLoop::RunMainMessageLoopParts()
#16 0x00000c112594 content::BrowserMainRunnerImpl::Run()
#17 0x00000c10cf0e content::BrowserMain()
#18 0x00000d656578 content::ContentMainRunnerImpl::Run()
#19 0x00000d65e822 service_manager::Main()
#20 0x00000d6554d0 content::ContentMain()
#21 0x00000ba58624 ChromeMain
#22 0x0000afa6f8a0 __libc_start_main
FYI:
https://cs.chromium.org/chromium/src/ui/ozone/platform/drm/host/drm_gpu_platform_support_host.cc?l=123

Looks like thread-safeness issue.
This method runs on non-UI method according to the DCHECK at L112,
but it binds weakptr and PostTask()s to UI thread.
WeakPtr is signle-threaded object, and so it could be race.

Owner: sadrul@chromium.org
ObserverList gpu_thread_observers_ is not thread safe, and after crrev.com/c/2820463002 it is accessed from two different task runners.
Assigning to sadrul@ that was the original author of that CL.

Comment 7 by sadrul@chromium.org, Nov 30 2017

That has been the case before that CL. See issue 711333
BTW, I couldn't find a single bot that would fail this seemingly simple test.
Is that a concern at all?
Components: UI>Shell>LockScreen
Status: Assigned (was: Untriaged)
Labels: Hotlist-auth-tests

Sign in to add a comment