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

Issue 788929 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Dec 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Windows bluetooth crashes on newly paired devices

Project Member Reported by cco3@chromium.org, Nov 27 2017

Issue description

If bluetooth discovery (polling) is running on Windows when a device is newly paired, we get a service record without a path, and this causes a crash.  (stack trace forthcoming)
 

Comment 1 by cco3@chromium.org, Nov 28 2017

New instance of issue:

---------------------------
Fatal error
---------------------------
[18144:14148:1128/110628.878:FATAL:bluetooth_remote_gatt_service_win.cc(37)] Check failed: !service_path_.empty(). 
Backtrace:
	base::debug::StackTrace::StackTrace [0x00000000009631D8+104] (C:\src\chromium\src\base\debug\stack_trace_win.cc:286)
	base::debug::StackTrace::StackTrace [0x0000000000961E1F+31] (C:\src\chromium\src\base\debug\stack_trace.cc:199)
	logging::LogMessage::~LogMessage [0x00000000009D8EB3+131] (C:\src\chromium\src\base\logging.cc:581)
	device::BluetoothRemoteGattServiceWin::BluetoothRemoteGattServiceWin [0x00000000219184D5+1029] (C:\src\chromium\src\device\bluetooth\bluetooth_remote_gatt_service_win.cc:38)
	device::BluetoothDeviceWin::UpdateGattServices [0x00000000218BBBE6+1382] (C:\src\chromium\src\device\bluetooth\bluetooth_device_win.cc:384)
	device::BluetoothDeviceWin::UpdateServices [0x00000000218BABA7+471] (C:\src\chromium\src\device\bluetooth\bluetooth_device_win.cc:319)
	device::BluetoothDeviceWin::Update [0x00000000218B782B+411] (C:\src\chromium\src\device\bluetooth\bluetooth_device_win.cc:274)
	device::BluetoothDeviceWin::BluetoothDeviceWin [0x00000000218B7525+421] (C:\src\chromium\src\device\bluetooth\bluetooth_device_win.cc:42)
	device::BluetoothAdapterWin::DevicesPolled [0x0000000021870827+1991] (C:\src\chromium\src\device\bluetooth\bluetooth_adapter_win.cc:264)
	device::BluetoothTaskManagerWin::OnDevicesPolled [0x000000002194B3D2+370] (C:\src\chromium\src\device\bluetooth\bluetooth_task_manager_win.cc:371)
	base::internal::FunctorTraits<void (device::BluetoothTaskManagerWin::*)(std::vector<std::unique_ptr<device::BluetoothTaskManagerWin::DeviceState,std::default_delete<device::BluetoothTaskManagerWin::DeviceState> >,std::allocator<std::unique_ptr<device::Blu [0x0000000021961306+134] (C:\src\chromium\src\base\bind_internal.h:194)
	base::internal::InvokeHelper<0,void>::MakeItSo<void (device::BluetoothTaskManagerWin::*const &)(std::vector<std::unique_ptr<device::BluetoothTaskManagerWin::DeviceState,std::default_delete<device::BluetoothTaskManagerWin::DeviceState> >,std::allocator<std [0x0000000021961196+118] (C:\src\chromium\src\base\bind_internal.h:277)
	base::internal::Invoker<base::internal::BindState<void (device::BluetoothTaskManagerWin::*)(std::vector<std::unique_ptr<device::BluetoothTaskManagerWin::DeviceState,std::default_delete<device::BluetoothTaskManagerWin::DeviceState> >,std::allocator<std::un [0x00000000219610DB+123] (C:\src\chromium\src\base\bind_internal.h:351)
	base::internal::Invoker<base::internal::BindState<void (device::BluetoothTaskManagerWin::*)(std::vector<std::unique_ptr<device::BluetoothTaskManagerWin::DeviceState,std::default_delete<device::BluetoothTaskManagerWin::DeviceState> >,std::allocator<std::un [0x0000000021960F6D+61] (C:\src\chromium\src\base\bind_internal.h:333)
	base::OnceCallback<void ()>::Run [0x00000000008E358E+94] (C:\src\chromium\src\base\callback.h:65)
	base::debug::TaskAnnotator::RunTask [0x000000000096794A+778] (C:\src\chromium\src\base\debug\task_annotator.cc:57)
	base::internal::IncomingTaskQueue::RunTask [0x0000000000A19580+224] (C:\src\chromium\src\base\message_loop\incoming_task_queue.cc:129)
	base::MessageLoop::RunTask [0x0000000000A249BA+986] (C:\src\chromium\src\base\message_loop\message_loop.cc:394)
	base::MessageLoop::DeferOrRunPendingTask [0x0000000000A254CC+92] (C:\src\chromium\src\base\message_loop\message_loop.cc:409)
	base::MessageLoop::DoWork [0x0000000000A25811+529] (C:\src\chromium\src\base\message_loop\message_loop.cc:450)
	base::MessagePumpForUI::DoRunLoop [0x0000000000A3283D+77] (C:\src\chromium\src\base\message_loop\message_pump_win.cc:173)
	base::MessagePumpWin::Run [0x0000000000A319DB+219] (C:\src\chromium\src\base\message_loop\message_pump_win.cc:58)
	base::MessageLoop::Run [0x0000000000A2409F+559] (C:\src\chromium\src\base\message_loop\message_loop.cc:347)
	base::RunLoop::Run [0x0000000000B2D722+530] (C:\src\chromium\src\base\run_loop.cc:117)
	ChromeBrowserMainParts::MainMessageLoopRun [0x000000000A2AFF0C+380] (C:\src\chromium\src\chrome\browser\chrome_browser_main.cc:1940)
	content::BrowserMainLoop::RunMainMessageLoopParts [0x00000000169A2382+466] (C:\src\chromium\src\content\browser\browser_main_loop.cc:1201)
	content::BrowserMainRunnerImpl::Run [0x00000000169BDA4A+362] (C:\src\chromium\src\content\browser\browser_main_runner.cc:141)
	content::BrowserMain [0x0000000016996636+262] (C:\src\chromium\src\content\browser\browser_main.cc:46)
	content::RunNamedProcessTypeMain [0x0000000019F17F9C+220] (C:\src\chromium\src\content\app\content_main_runner.cc:427)
	content::ContentMainRunnerImpl::Run [0x0000000019F18F1A+650] (C:\src\chromium\src\content\app\content_main_runner.cc:705)
	content::ContentServiceManagerMainDelegate::RunEmbedderProcess [0x0000000019F1404A+42] (C:\src\chromium\src\content\app\content_service_manager_main_delegate.cc:51)
	service_manager::Main [0x000000002DCD850D+1341] (C:\src\chromium\src\services\service_manager\embedder\main.cc:456)
	content::ContentMain [0x0000000019F17E02+82] (C:\src\chromium\src\content\app\content_main.cc:19)
	ChromeMain [0x0000000007797A23+419] (C:\src\chromium\src\chrome\app\chrome_main.cc:125)
	MainDllLoader::Launch [0x0000000140031194+1124] (C:\src\chromium\src\chrome\app\main_dll_loader_win.cc:199)
	wWinMain [0x0000000140023F39+1193] (C:\src\chromium\src\chrome\app\chrome_exe_main_win.cc:230)
	invoke_main [0x00000001402DACED+45] (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:123)
	__scrt_common_main_seh [0x00000001402DABA7+295] (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283)
	__scrt_common_main [0x00000001402DAA6E+14] (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:326)
	wWinMainCRTStartup [0x00000001402DAD79+9] (f:\dd\vctools\crt\vcstartup\src\startup\exe_wwinmain.cpp:17)
	BaseThreadInitThunk [0x00007FFC55358364+20]
	RtlUserThreadStart [0x00007FFC57847091+33]

Project Member

Comment 2 by bugdroid1@chromium.org, Nov 30 2017

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

commit 1e9b6a670da0e5c53dfb3282a71c5ce9049e161b
Author: Conley Owens <cco3@chromium.org>
Date: Thu Nov 30 01:51:52 2017

bluetooth: windows: Avoid pathless service records

There is a window of time between when GATT services are available for
enumeration and when service devices are available for enumeration.
This change ensures that we do not report that we have successfully
enumerated all the needed service devices when we have not.

BUG= 788929 , 507419 

Change-Id: Ife4fdefc7ebcbbf631094f4907365ce2da8002cc
Reviewed-on: https://chromium-review.googlesource.com/791827
Reviewed-by: Matt Reynolds <mattreynolds@chromium.org>
Reviewed-by: Vincent Scheib <scheib@chromium.org>
Commit-Queue: Vincent Scheib <scheib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520384}
[modify] https://crrev.com/1e9b6a670da0e5c53dfb3282a71c5ce9049e161b/device/bluetooth/bluetooth_task_manager_win.cc
[modify] https://crrev.com/1e9b6a670da0e5c53dfb3282a71c5ce9049e161b/device/bluetooth/bluetooth_task_manager_win.h

Comment 3 by scheib@chromium.org, Nov 30 2017

Status: Assigned (was: Untriaged)

Comment 4 by cco3@chromium.org, Dec 7 2017

Status: Fixed (was: Assigned)

Sign in to add a comment