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

Issue 604710 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: May 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

FATAL:bluetooth_adapter_bluez.cc(127)] Check failed: profiles_.empty() causing flakiness in browser_tests

Project Member Reported by msramek@chromium.org, Apr 19 2016

Issue description

AffiliationCheck/UserAffiliationBrowserTest.PRE_Affiliated/1 is flaky on Linux ChromiumOS bot with low frequency (2 out of last 25 builds).

Instances of failure:
https://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Tests%20%28dbg%29%281%29/builds/13594
https://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Tests%20%28dbg%29%281%29/builds/13589

Output:
===================================
AffiliationCheck/UserAffiliationBrowserTest.PRE_Affiliated/1 (run #1):
[ RUN      ] AffiliationCheck/UserAffiliationBrowserTest.PRE_Affiliated/1
[26131:26131:0419/015657:WARNING:histogram_base.cc(131)] 45 histograms were created before reporting was enabled.
[1:1:0419/015700:ERROR:memory_mapped_file.cc(40)] Couldn't open /tmp/run5orWsa/out/Debug/chrome_material_200_percent.pak
[1:1:0419/015700:ERROR:data_pack.cc(80)] Failed to mmap datapack
[1:1:0419/015700:ERROR:memory_mapped_file.cc(40)] Couldn't open /tmp/run5orWsa/out/Debug/chrome_200_percent.pak
[1:1:0419/015700:ERROR:data_pack.cc(80)] Failed to mmap datapack
[1:1:0419/015700:WARNING:histogram_base.cc(131)] 3 histograms were created before reporting was enabled.
[26131:26131:0419/015701:ERROR:memory_mapped_file.cc(40)] Couldn't open /tmp/run5orWsa/out/Debug/chrome_material_200_percent.pak
[26131:26131:0419/015701:ERROR:data_pack.cc(80)] Failed to mmap datapack
[26131:26131:0419/015701:ERROR:memory_mapped_file.cc(40)] Couldn't open /tmp/run5orWsa/out/Debug/chrome_200_percent.pak
[26131:26131:0419/015701:ERROR:data_pack.cc(80)] Failed to mmap datapack
Xlib:  extension "RANDR" missing on display ":9".
[26131:26131:0419/015701:INFO:lock_state_controller.cc(95)] Constructing LockStateController instance 0x345945a3c8e0
[26131:26131:0419/015702:WARNING:child_account_service.cc(297)] User instance wasn't found while setting child account flag.
[26131:26131:0419/015702:WARNING:message_queue.cc(38)] Leaking 2 ports in unreceived messages
[26131:26131:0419/015702:INFO:power_button_observer.cc(37)] Creating PowerButtonObserver 0x345945472920
[26131:26131:0419/015702:INFO:lock_state_controller.cc(235)] LockStateController::OnLoginStateChanged login_status_: 0, status: 0
[26131:26131:0419/015702:ERROR:network_profile_handler.cc(83)] Manager properties returned from Shill don't contain the field Profiles
[26131:26131:0419/015702:ERROR:network_sms_handler.cc(417)] NetworkSmsHandler: No list value for: Devices
[26131:26131:0419/015702:WARNING:server_backed_state_keys_broker.cc(76)] Failed to obtain server-backed state keys.
[26131:26341:0419/015702:WARNING:freezer_cgroup_process_manager.cc(59)] Cgroup freezer does not exist or is not writable. Unable to freeze renderer processes.
[26131:26339:0419/015702:ERROR:device_status_collector.cc(125)] Unable to get volume status for /tmp/chromeos/media/archive
[26131:26339:0419/015702:ERROR:device_status_collector.cc(125)] Unable to get volume status for /usr/share/oem
[26131:26339:0419/015702:ERROR:device_status_collector.cc(125)] Unable to get volume status for /tmp/chromeos/media/removable
[26131:26131:0419/015702:WARNING:arc_bluetooth_bridge.cc(681)] no Bluetooth instance available
[26131:26131:0419/015702:WARNING:status_uploader.cc(164)] Starting status upload: have_device_status = 1
[26131:26131:0419/015702:WARNING:device_status_collector.cc(648)] Unable to read CPU temp information.
[26131:26131:0419/015702:INFO:power_button_observer.cc(69)] Destroying PowerButtonObserver 0x345945472920
[26131:26131:0419/015702:INFO:lock_state_controller.cc(101)] Destroying LockStateController instance 0x345945a3c8e0
[26131:26131:0419/015702:WARNING:pref_notifier_impl.cc(27)] pref observer found at shutdown plugins.always_authorize
[26131:26131:0419/015702:WARNING:pref_notifier_impl.cc(27)] pref observer found at shutdown plugins.allow_outdated
[26131:26131:0419/015702:WARNING:pref_notifier_impl.cc(27)] pref observer found at shutdown printing.enabled
[26131:26131:0419/015702:FATAL:bluetooth_adapter_bluez.cc(127)] Check failed: profiles_.empty().
#0 0x7fccbdc0cc1e base::debug::StackTrace::StackTrace()
#1 0x7fccbdc632fc logging::LogMessage::~LogMessage()
#2 0x7fccb6eef289 bluez::BluetoothAdapterBlueZ::Shutdown()
#3 0x7fccb6ec633a device::BluetoothAdapterFactory::Shutdown()
#4 0x000002949a42 chromeos::internal::DBusServices::~DBusServices()
#5 0x00000294996b std::default_delete<>::operator()()
#6 0x000002945dcc std::unique_ptr<>::reset()
#7 0x0000029458ea chromeos::ChromeBrowserMainPartsChromeos::PostDestroyThreads()
#8 0x7fccb7cc588c content::BrowserMainLoop::ShutdownThreadsAndCleanUp()
#9 0x7fccb7ccdf83 content::BrowserMainRunnerImpl::Shutdown()
#10 0x7fccb7cbdba3 content::BrowserMain()
#11 0x7fccb7ad3126 content::RunNamedProcessTypeMain()
#12 0x7fccb7ad5199 content::ContentMainRunnerImpl::Run()
#13 0x7fccb7ad25b2 content::ContentMain()
#14 0x00000267ebc3 content::BrowserTestBase::SetUp()
#15 0x000002624e48 InProcessBrowserTest::SetUp()
#16 0x00000080a74a _ZN7testing8internal12InvokeHelperIvNSt3tr15tupleIJEEEE12InvokeMethodIN10extensions33BluetoothPrivateApiTest_Pair_TestEMNS7_23BluetoothPrivateApiTestEFvvEEEvPT_T0_RKS4_
#17 0x00000282c0be testing::internal::HandleExceptionsInMethodIfSupported<>()
#18 0x000002821333 testing::Test::Run()
#19 0x000002821aa8 testing::TestInfo::Run()
#20 0x00000282204a testing::TestCase::Run()
#21 0x00000282739c testing::internal::UnitTestImpl::RunAllTests()
#22 0x00000283ce7a testing::internal::HandleSehExceptionsInMethodIfSupported<>()
#23 0x00000282d6ee testing::internal::HandleExceptionsInMethodIfSupported<>()
#24 0x00000282703f testing::UnitTest::Run()
#25 0x000002635611 RUN_ALL_TESTS()
#26 0x0000026346f8 base::TestSuite::Run()
#27 0x000002588422 ChromeTestSuiteRunner::RunTestSuite()
#28 0x000002588509 ChromeTestLauncherDelegate::RunTestSuite()
#29 0x000005a360c5 content::LaunchTests()
#30 0x000002588839 LaunchChromeTests()
#31 0x0000013aed05 main
#32 0x7fcca69e676d __libc_start_main
#33 0x000000760c85 <unknown>

 
Cc: r...@chromium.org bcwh...@chromium.org cmumford@chromium.org
Components: OS>Systems>Bluetooth
Status: Untriaged (was: Started)
+cc rkc@ Could your recent https://codereview.chromium.org/1872943002 touching bluetooth_adapter_bluez.cc be the cause?

+cc sheriffs

Comment 2 by r...@chromium.org, Apr 19 2016

All that CL does is fix a few unused includes. I am not sure how that could introduce any functional changes.

Cc: jamuraa@chromium.org
Labels: -Pri-2 M-52 Pri-1
Owner: steve...@chromium.org
Status: Started (was: Untriaged)
This is causing flakiness elsewhere also. Removal of profiles is asynchronous so that DCHECK is not valid (and unnecessary). I will fix it.

Cc: scheib@chromium.org
Summary: FATAL:bluetooth_adapter_bluez.cc(127)] Check failed: profiles_.empty() causing flakiness in browser_tests (was: AffiliationCheck/UserAffiliationBrowserTest.PRE_Affiliated/1 flaky on Linux ChromiumOS)
There is clearly a potential edge case here:

BluetoothAdapterBlueZ::ReleaseProfile(profile) ->
BluetoothAdapterProfileBlueZ::RemoveProfile() ->
BluetoothProfileManagerClient::UnregisterProfile()

... asynchronous DBus call ...

BluetoothAdapterBlueZ::RemoveProfile()
  delete profile
  profiles_.erase(profile->uuid())

If Shutdown() gets called before RemoveProfile() gets called, |profile| will still exist in |profiles_| and the DCHECK will get triggered.

The cleanest fix seems to be to move profiles to a separate 'released_profiles_' map in ReleaseProfile() and delete any members of that map in Shutdown().

I should have a CL up shortly.

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 22 2016

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

commit 3bfed672ec31b7f51390da4c6ba260942ea8df25
Author: stevenjb <stevenjb@chromium.org>
Date: Fri Apr 22 21:20:06 2016

Bluez: Move released profiles to a separate map.

This addresses an edge case where released profiles may not have been
removed before Shutdown. See issue for details.

BUG= 604710 

Review URL: https://codereview.chromium.org/1908253005

Cr-Commit-Position: refs/heads/master@{#389242}

[modify] https://crrev.com/3bfed672ec31b7f51390da4c6ba260942ea8df25/device/bluetooth/bluez/bluetooth_adapter_bluez.cc
[modify] https://crrev.com/3bfed672ec31b7f51390da4c6ba260942ea8df25/device/bluetooth/bluez/bluetooth_adapter_bluez.h

Comment 7 by ortuno@chromium.org, Apr 25 2016

Components: IO>Bluetooth

Comment 8 by ortuno@chromium.org, Apr 25 2016

Components: -OS>Systems>Bluetooth
Status: Fixed (was: Started)
Status: Verified (was: Fixed)
as per #6

Sign in to add a comment