2022-06-21 19:00:21

by John Klug

[permalink] [raw]
Subject: [BUG] Use of gatttool causes scan to stop (permanently?)

I am using 5.4.199 currently with bluez 5.64 on an arm 32. The same problem occurs in earlier versions and kernels.

In bluetoothctl after the issue occurs the "show" command always says:
? ? Discovering: yes

And no scan data follows, even though we have many devices.

I have tried turning on duplicate data with bluetoothctl.

I see (manually typed in):
? [bluetooth]# scan on
? SetDiscoveryFilter success
? [bluetooth]# scan off
? Failed to stop discovery: org.bluez.Error.InProgress
? [bluetooth]# scan on
? Failed to start discovery: org.bluez.Error.InProgress
? [bluetooth]# scan off
? Failed to stop discovery: org.bluez.Error.InProgress
? [bluetooth]# scan on
? Failed to start discovery: org.bluez.Error.InProgress
? [bluetooth]# scan off
? Failed to stop discovery: org.bluez.Error.InProgress
? Failed to start discovery: org.freedesktop.DBus.Error.NoReply

gatttool can still connect and retrieve data.

btmon shows no activty except from gatttool, and none from scan

Here is a snippet of debug from bluetoothd:

? ? Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
agent.c:agent_disconnect() Agent :1.1113 disconnected
? ? Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
agent.c:remove_default_agent() Default agent cleared
? ? Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
adapter.c:set_mode() sending set mode command for index 0
? ? Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
agent.c:agent_destroy() agent :1.1113
? ? Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
agent.c:agent_unref() 0x13285c8: ref=3D0
? ? Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
adapter.c:discovery_disconnect() owner :1.1113
? ? Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
adapter.c:discovery_remove() owner :1.1113
? ? Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
adapter.c:discovery_free() 0x1321050
? ? Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
adapter.c:update_discovery_filter()
? ? Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
adapter.c:discovery_filter_to_mgmt_cp()
? ? Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
adapter.c:trigger_start_discovery()
? ? Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
adapter.c:cancel_passive_scanning()
? ? Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
adapter.c:start_discovery_timeout()
? ? Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
adapter.c:start_discovery_timeout() adapter->current_discovery_filter

Do you have any suggestions for further research into this problem?

John Klug


2022-06-21 19:15:23

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: Re: [BUG] Use of gatttool causes scan to stop (permanently?)

Hi John,

On Tue, Jun 21, 2022 at 12:00 PM John Klug <[email protected]> wrote:
>
> I am using 5.4.199 currently with bluez 5.64 on an arm 32. The same problem occurs in earlier versions and kernels.
>
> In bluetoothctl after the issue occurs the "show" command always says:
> Discovering: yes
>
> And no scan data follows, even though we have many devices.
>
> I have tried turning on duplicate data with bluetoothctl.
>
> I see (manually typed in):
> [bluetooth]# scan on
> SetDiscoveryFilter success
> [bluetooth]# scan off
> Failed to stop discovery: org.bluez.Error.InProgress
> [bluetooth]# scan on
> Failed to start discovery: org.bluez.Error.InProgress
> [bluetooth]# scan off
> Failed to stop discovery: org.bluez.Error.InProgress
> [bluetooth]# scan on
> Failed to start discovery: org.bluez.Error.InProgress
> [bluetooth]# scan off
> Failed to stop discovery: org.bluez.Error.InProgress
> Failed to start discovery: org.freedesktop.DBus.Error.NoReply
>
> gatttool can still connect and retrieve data.
>
> btmon shows no activty except from gatttool, and none from scan
>
> Here is a snippet of debug from bluetoothd:
>
> Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
> agent.c:agent_disconnect() Agent :1.1113 disconnected
> Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
> agent.c:remove_default_agent() Default agent cleared
> Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
> adapter.c:set_mode() sending set mode command for index 0
> Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
> agent.c:agent_destroy() agent :1.1113
> Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
> agent.c:agent_unref() 0x13285c8: ref=3D0
> Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
> adapter.c:discovery_disconnect() owner :1.1113
> Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
> adapter.c:discovery_remove() owner :1.1113
> Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
> adapter.c:discovery_free() 0x1321050
> Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
> adapter.c:update_discovery_filter()
> Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
> adapter.c:discovery_filter_to_mgmt_cp()
> Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
> adapter.c:trigger_start_discovery()
> Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
> adapter.c:cancel_passive_scanning()
> Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
> adapter.c:start_discovery_timeout()
> Jun 21 13:33:30 ecc8 daemon.debug bluetoothd[32170]: ../bluez-5.64/src/=
> adapter.c:start_discovery_timeout() adapter->current_discovery_filter
>
> Do you have any suggestions for further research into this problem?

Don't use gatttool, which has been deprecated, instead use
bluetoothctl (menu gatt) for GATT operations.

> John Klug



--
Luiz Augusto von Dentz