You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 4, 2023. It is now read-only.
After first connection to a device, when there is no bluez cache for it, trying to use service.find() to look for a characteristic causes SIGSEGV
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x61c1e5e0, pid=1113, tid=1624364128
#
# JRE version: Java(TM) SE Runtime Environment (8.0_65-b17) (build 1.8.0_65-b17)
# Java VM: Java HotSpot(TM) Client VM (25.65-b01 mixed mode linux-arm )
# Problematic frame:
# C [libtinyb.so.0+0x6f5e0] tinyb::BluetoothEvent::get_type() const+0x14
#
I think this is caused by a race condition where an event is received from the d_bus and handled in BluetoothEventManager::on_interface_added which in turn calls BluetoothManager::handle_event
The following code iterates on the event list on one thread
After first connection to a device, when there is no bluez cache for it, trying to use service.find() to look for a characteristic causes SIGSEGV
I think this is caused by a race condition where an event is received from the d_bus and handled in
BluetoothEventManager::on_interface_addedwhich in turn callsBluetoothManager::handle_eventThe following code iterates on the event list on one thread
tinyb/src/BluetoothManager.cpp
Line 209 in 0cb6904
While the java call to the find method will trigger an addition of an event item to the list in another thread
tinyb/api/tinyb/BluetoothManager.hpp
Line 77 in 0cb6904