linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* RE: [BlueZ] device: Fix device removal on le-connection-abort-by-local
  2025-08-21 20:17 [PATCH BlueZ] " J. Nick Koston
@ 2025-08-21 20:32 ` bluez.test.bot
  0 siblings, 0 replies; 3+ messages in thread
From: bluez.test.bot @ 2025-08-21 20:32 UTC (permalink / raw)
  To: linux-bluetooth, nick

[-- Attachment #1: Type: text/plain, Size: 382 bytes --]

This is an automated email and please do not reply to this email.

Dear Submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
While preparing the CI tests, the patches you submitted couldn't be applied to the current HEAD of the repository.

----- Output -----


Please resolve the issue and submit the patches again.


---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH BlueZ] device: Fix device removal on le-connection-abort-by-local
@ 2025-08-21 20:45 J. Nick Koston
  2025-08-21 22:06 ` [BlueZ] " bluez.test.bot
  0 siblings, 1 reply; 3+ messages in thread
From: J. Nick Koston @ 2025-08-21 20:45 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: luiz.dentz, J. Nick Koston, J . Nick Koston

When a LE connection fails with le-connection-abort-by-local, temporary
devices are incorrectly removed from D-Bus, preventing clients from
retrying the connection.

The issue occurs when:
1. A connection attempt fails with ECONNABORTED (including the
   le-connection-abort-by-local case)
2. The device is added to the connect list for automatic retry
3. The temporary timer (30s by default) is not restarted
4. If the timer expires before the retry completes, the device is
   removed from D-Bus
5. Subsequent retry attempts fail with "device not found"

This commonly happens with devices that abort connections during
pairing or when incomplete GATT discovery triggers an abort.

The fix restarts the temporary timer when ECONNABORTED occurs, ensuring
the device remains available on D-Bus for the retry attempt. This
matches the behavior when new connection attempts are initiated, where
the timer is restarted to allow time for connection/pairing to complete.

Reproducer logs show:
- 14:19:37.374 - le-connection-abort-by-local, retry queued
- 14:19:56.343 - Device removed from D-Bus (~19s later)
- 14:19:56.606 - Retry fails: device not found on D-Bus

With this fix, the device remains available for the retry, allowing
the connection to succeed on subsequent attempts.

Fixes: https://github.com/bluez/bluez/issues/1489
Signed-off-by: J. Nick Koston <nick@koston.org>
Signed-off-by: J. Nick Koston <nick@home-assistant.io>
---
 src/device.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/device.c b/src/device.c
index 0179c3dab..28803af38 100644
--- a/src/device.c
+++ b/src/device.c
@@ -6271,8 +6271,12 @@ static void att_connect_cb(GIOChannel *io, GError *gerr, gpointer user_data)
 	if (gerr) {
 		DBG("%s", gerr->message);
 
-		if (g_error_matches(gerr, BT_IO_ERROR, ECONNABORTED))
+		if (g_error_matches(gerr, BT_IO_ERROR, ECONNABORTED)) {
+			/* Restart temporary timer to prevent device removal */
+			if (device->temporary)
+				set_temporary_timer(device, btd_opts.tmpto);
 			goto done;
+		}
 
 		if (device_get_auto_connect(device)) {
 			DBG("Enabling automatic connections");
-- 
2.39.3 (Apple Git-145)


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* RE: [BlueZ] device: Fix device removal on le-connection-abort-by-local
  2025-08-21 20:45 [PATCH BlueZ] device: Fix device removal on le-connection-abort-by-local J. Nick Koston
@ 2025-08-21 22:06 ` bluez.test.bot
  0 siblings, 0 replies; 3+ messages in thread
From: bluez.test.bot @ 2025-08-21 22:06 UTC (permalink / raw)
  To: linux-bluetooth, nick

[-- Attachment #1: Type: text/plain, Size: 1261 bytes --]

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=994230

---Test result---

Test Summary:
CheckPatch                    PENDING   0.39 seconds
GitLint                       PENDING   0.43 seconds
BuildEll                      PASS      19.90 seconds
BluezMake                     PASS      2693.37 seconds
MakeCheck                     PASS      20.20 seconds
MakeDistcheck                 PASS      183.00 seconds
CheckValgrind                 PASS      238.18 seconds
CheckSmatch                   PASS      305.67 seconds
bluezmakeextell               PASS      128.29 seconds
IncrementalBuild              PENDING   0.40 seconds
ScanBuild                     PASS      908.29 seconds

Details
##############################
Test: CheckPatch - PENDING
Desc: Run checkpatch.pl script
Output:

##############################
Test: GitLint - PENDING
Desc: Run gitlint
Output:

##############################
Test: IncrementalBuild - PENDING
Desc: Incremental build with the patches in the series
Output:



---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-08-21 22:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-21 20:45 [PATCH BlueZ] device: Fix device removal on le-connection-abort-by-local J. Nick Koston
2025-08-21 22:06 ` [BlueZ] " bluez.test.bot
  -- strict thread matches above, loose matches on Subject: below --
2025-08-21 20:17 [PATCH BlueZ] " J. Nick Koston
2025-08-21 20:32 ` [BlueZ] " bluez.test.bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).