Re: [RFC PATCH BlueZ 0/1] device: Fix rare ERR_BREDR_CONN_BUSY during connect

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Gently reminder, please check the patch.

On 14.04.2025 14:50, Oleg Lyovin wrote:
> Hello everyone,
> 
> While experimenting with a device acting as and A2DP Source, I have
> encountered the following very rare case during connection to an
> external speaker:
> 
>   1970-01-01 00:37:47 debug bluetoothd[240]: profiles/audio/sink.c:sink_set_state() State changed /org/bluez/hci0/dev_28_2B_B9_40_00_1B: SINK_STATE_CONNECTING -> SINK_STATE_DISCONNECTED
>   1970-01-01 00:37:47 debug bluetoothd[240]: profiles/audio/avdtp.c:avdtp_unref() 0x17c1350: ref=1
>   1970-01-01 00:37:47 debug bluetoothd[240]: profiles/audio/a2dp.c:channel_remove() chan 0x17ac468
>   1970-01-01 00:37:47 debug bluetoothd[240]: profiles/audio/avdtp.c:avdtp_unref() 0x17c1350: ref=0
>   1970-01-01 00:37:47 debug bluetoothd[240]: profiles/audio/avdtp.c:avdtp_free() 0x17c1350
>   1970-01-01 00:37:50 debug bluetoothd[240]: src/shared/mgmt.c:can_read_data() [0x0000] event 0x000c
>   1970-01-01 00:37:50 debug bluetoothd[240]: src/adapter.c:dev_disconnected() Device 28:2B:B9:40:00:1B disconnected, reason 2
>   1970-01-01 00:37:50 debug bluetoothd[240]: src/adapter.c:adapter_remove_connection() 
>   1970-01-01 00:37:50 debug bluetoothd[240]: src/device.c:device_remove_connection() connection removed while Connect() is waiting reply
>   1970-01-01 00:37:50 debug bluetoothd[240]: plugins/policy.c:disconnect_cb() reason 2
>   1970-01-01 00:37:50 debug bluetoothd[240]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr 28:2B:B9:40:00:1B type 0 status 0xe
>   1970-01-01 00:37:50 debug bluetoothd[240]: src/device.c:device_bonding_complete() bonding (nil) status 0x0e
>   1970-01-01 00:37:50 debug bluetoothd[240]: src/device.c:device_bonding_failed() status 14
> 
> Subsequent attempts to connect using bluetoothctl lead to
> "br-connection-busy":
>   [bluetooth]# connect 28:2B:B9:40:00:1B
>   Attempting to connect to 28:2B:B9:40:00:1B
>   Failed to connect: org.bluez.Error.InProgress br-connection-busy
> 
> The reason is that "connect_profiles" does the following check:
>   if (dev->pending || dev->connect || dev->browse)
>     return btd_error_in_progress_str(msg, ERR_BREDR_CONN_BUSY);
> 
> In the above scenario, "dev->pending" is not NULL. I have prepared
> the RFC patch that frees it when a disconnect occurs in the
> "device_remove_connection" code path. I'm not sure if this is the
> correct way to solve the issue, but with this patch it can no longer
> be reproduced.
> 
> Oleg Lyovin (1):
>   device: Fix rare ERR_BREDR_CONN_BUSY during connect
> 
>  src/device.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux