New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 734875 link

Starred by 2 users

Issue metadata

Status: Untriaged
Owner: ----
Cc:
EstimatedDays: ----
NextAction: 2019-07-09
OS: Linux
Pri: 3
Type: Bug



Sign in to add a comment

ProfileListDesktopBrowserTest.SignOut flaky with libc++

Project Member Reported by thomasanderson@chromium.org, Jun 20 2017

Issue description

Requires enabling libc++ with this patch: https://codereview.chromium.org/2933573002/#ps20001
Causes the following failure on dbg builds only:
https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_dbg_ng/builds/2740

I'm unable to reproduce the failure on my machine, but the bot does give the callstack below.  
Assigning to gab@ for triage since he recently touched browser_process_impl.cc(1355)


[ RUN      ] ProfileListDesktopBrowserTest.SignOut
Xlib:  extension "RANDR" missing on display ":99".
[2896:2896:0619/171712.642589:WARNING:password_store_factory.cc(250)] Using basic (unencrypted) store for password storage. See https://chromium.googlesource.com/chromium/src/+/master/docs/linux_password_storage.md for more information about password storage options.
[2896:2896:0619/171713.286976:WARNING:pref_notifier_impl.cc(28)] Init observer found at shutdown.
[2896:2896:0619/171713.306869:FATAL:browser_process_impl.cc(1355)] Check failed: base::RunLoop::IsRunningOnCurrentThread().
#0 0x7f32a10907cd base::debug::StackTrace::StackTrace()
#1 0x7f32a108ee0c base::debug::StackTrace::StackTrace()
#2 0x7f32a111f3ea logging::LogMessage::~LogMessage()
#3 0x0000042848a5 BrowserProcessImpl::Unpin()
#4 0x00000428452d BrowserProcessImpl::OnKeepAliveStateChanged()
#5 0x00000406a7ed KeepAliveRegistry::OnKeepAliveStateChanged()
#6 0x00000406abd2 KeepAliveRegistry::Unregister()
#7 0x00000406db9a ScopedKeepAlive::~ScopedKeepAlive()
#8 0x0000079409c7 UserManagerView::~UserManagerView()
#9 0x000007940ac9 UserManagerView::~UserManagerView()
#10 0x000000a62854 base::internal::PassedWrapper<>::~PassedWrapper()
#11 0x000000a63135 std::__1::__tuple_leaf<>::~__tuple_leaf()
#12 0x000007941ebf _ZNSt3__112__tuple_implINS_15__tuple_indicesIJLm0ELm1EEEEJN4base8internal13PassedWrapperINS_10unique_ptrI15UserManagerViewNS_14default_deleteIS7_EEEEEENS4_12OwnedWrapperINS3_9AutoResetIbEEEEEED2Ev
#13 0x000007941e85 _ZNSt3__15tupleIJN4base8internal13PassedWrapperINS_10unique_ptrI15UserManagerViewNS_14default_deleteIS5_EEEEEENS2_12OwnedWrapperINS1_9AutoResetIbEEEEEED2Ev
#14 0x000007941e53 _ZN4base8internal9BindStateIPFvNSt3__110unique_ptrI15UserManagerViewNS2_14default_deleteIS4_EEEEPNS_9AutoResetIbEEP7ProfileRKNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEJNS0_13PassedWrapperIS7_EENS0_12OwnedWrapperIS9_EEEED2Ev
#15 0x000007941e17 _ZN4base8internal9BindStateIPFvNSt3__110unique_ptrI15UserManagerViewNS2_14default_deleteIS4_EEEEPNS_9AutoResetIbEEP7ProfileRKNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEJNS0_13PassedWrapperIS7_EENS0_12OwnedWrapperIS9_EEEE7DestroyEPKNS0_13BindStateBaseE
#16 0x7f32a103eaa5 base::internal::BindStateBaseRefCountTraits::Destruct()
#17 0x7f32a103f568 base::RefCountedThreadSafe<>::Release()
#18 0x7f32a103f525 scoped_refptr<>::Release()
#19 0x7f32a103f4da scoped_refptr<>::~scoped_refptr()
#20 0x7f32a103ef95 base::internal::CallbackBase<>::~CallbackBase()
#21 0x0000008453e5 base::Callback<>::~Callback()
#22 0x00000081a3a5 base::Callback<>::~Callback()
#23 0x000000864085 std::__1::__tuple_leaf<>::~__tuple_leaf()
#24 0x000000dce013 _ZNSt3__112__tuple_implINS_15__tuple_indicesIJLm0ELm1ELm2EEEEJN4base8FilePathEPbNS3_8CallbackIFvvELNS3_8internal8CopyModeE1ELNS8_10RepeatModeE1EEEEED2Ev
#25 0x0000041133f5 _ZNSt3__15tupleIJN4base8FilePathEN8profiles17UserManagerActionENS1_8CallbackIFvP7ProfileRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEELNS1_8internal8CopyModeE1ELNSH_10RepeatModeE1EEEEED2Ev
#26 0x0000041133c3 _ZN4base8internal9BindStateIPFvRKNS_8FilePathEN8profiles17UserManagerActionERKNS_8CallbackIFvP7ProfileRKNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEES9_NS8_12CreateStatusEEJS2_S6_SM_EED2Ev
#27 0x000004113387 _ZN4base8internal9BindStateIPFvRKNS_8FilePathEN8profiles17UserManagerActionERKNS_8CallbackIFvP7ProfileRKNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEES9_NS8_12CreateStatusEEJS2_S6_SM_EE7DestroyEPKNS0_13BindStateBaseE
#28 0x7f32a103eaa5 base::internal::BindStateBaseRefCountTraits::Destruct()
#29 0x7f32a103f568 base::RefCountedThreadSafe<>::Release()
#30 0x7f32a103f525 scoped_refptr<>::Release()
#31 0x7f32a103f4da scoped_refptr<>::~scoped_refptr()
#32 0x7f32a103ef95 base::internal::CallbackBase<>::~CallbackBase()
#33 0x0000008453e5 base::Callback<>::~Callback()
#34 0x00000081a3a5 base::Callback<>::~Callback()
#35 0x000000c959bf std::__1::__vector_base<>::~__vector_base()
#36 0x000003c8b6e5 std::__1::vector<>::~vector()
#37 0x000003c876de ProfileManager::ProfileInfo::~ProfileInfo()
#38 0x0000037be55e linked_ptr<>::depart()
#39 0x0000037be505 linked_ptr<>::~linked_ptr()
#40 0x0000037be4d3 std::__1::pair<>::~pair()
#41 0x000003c8ba95 std::__1::__tree<>::destroy()
#42 0x000003c8ba28 std::__1::__tree<>::destroy()
#43 0x000003c8b9b7 std::__1::__tree<>::~__tree()
#44 0x000003c8b415 std::__1::map<>::~map()
#45 0x000003c75766 ProfileManager::~ProfileManager()
#46 0x000003c75919 ProfileManager::~ProfileManager()
#47 0x00000427a27f BrowserProcessImpl::StartTearDown()
#48 0x000004698e11 ChromeBrowserMainParts::PostMainMessageLoopRun()
#49 0x7f3298bdafef content::BrowserMainLoop::ShutdownThreadsAndCleanUp()
#50 0x7f3298be4100 content::BrowserMainRunnerImpl::Shutdown()
#51 0x7f3298bcf307 content::BrowserMain()
#52 0x7f329a7083f4 content::RunNamedProcessTypeMain()
#53 0x7f329a70b1f7 content::ContentMainRunnerImpl::Run()
#54 0x7f329a705fdd content::ContentServiceManagerMainDelegate::RunEmbedderProcess()
#55 0x7f328c0f7cfa service_manager::Main()
#56 0x7f329a70726f content::ContentMain()
#57 0x000004d0fed5 content::BrowserTestBase::SetUp()
#58 0x0000037ef7dd InProcessBrowserTest::SetUp()
#59 0x000000fa0c0e _ZN7testing8internal12InvokeHelperIvNSt3__15tupleIJEEEE12InvokeMethodI14ServiceProcessMS7_FvvEEEvPT_T0_RKS4_
#60 0x000001fbcd22 testing::internal::HandleExceptionsInMethodIfSupported<>()
#61 0x000001fa77d4 testing::Test::Run()
 
Blocking: 593874

Comment 2 by gab@chromium.org, Jun 21 2017

Owner: ----
Status: Untriaged (was: Assigned)
My tweaks to browser_process_impl.cc were mere mass refactors which should be no-ops.

The issue here appears to be that BrowserProcessImpl::Unpin() expects the be called while the main message loop is still running (which is important because it then invokes base::MessageLoop::current()->QuitWhenIdle(); based on that assumption).

However it seems the ScopedKeepAlive in UserManagerView makes the Unpin() happen too late (i.e. in PostMainMessageLoopRun() when UserManagerView is torn down per being released from a Closure that owns it from a map in ProfileManager).

I think you want to look around UserManagerView/ProfileManager and their use of ScopedKeepAlive for the culprit.
Cc: bauerb@chromium.org msarda@chromium.org anthonyvd@chromium.org
+profile OWNERS

Update: Just found out that --disable-gpu allows me to repro this locally
Status: Started (was: Untriaged)
Will give this one a shot
Project Member

Comment 6 by bugdroid1@chromium.org, Jun 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4251545513a2dc87e7d78ea76fadc676aa9fc448

commit 4251545513a2dc87e7d78ea76fadc676aa9fc448
Author: thomasanderson <thomasanderson@chromium.org>
Date: Tue Jun 27 18:44:32 2017

Disable ProfileListDesktopBrowserTest.SignOut on Linux

BUG=734875
R=msarda@chromium.org

Review-Url: https://codereview.chromium.org/2954963004
Cr-Commit-Position: refs/heads/master@{#482688}

[modify] https://crrev.com/4251545513a2dc87e7d78ea76fadc676aa9fc448/chrome/browser/profiles/profile_list_desktop_browsertest.cc

Status: Available (was: Started)
Blocking: -593874

Comment 9 by thakis@chromium.org, Jun 27 2017

Is the thinking here that this is a test-only problem and that this CHECK() won't happen in production?
That's what I'm hoping anyway.  I think the test itself needs some additional synchronization
Project Member

Comment 11 by sheriffbot@chromium.org, Jun 28 2018

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Pri-1 Pri-2
Status: Available (was: Untriaged)
Labels: Pri-3
NextAction: 2019-07-09
Downgrading P2s that haven't been modified in more than 6 months, which have no component or owner.
Status: Untriaged (was: Available)
Available, but no owner or component? Please find a component, as no one will ever find this without one.

Sign in to add a comment