Thread (10 messages) 10 messages, 2 authors, 2016-03-10

Re: Feature Request: Clean the cache upon device disconnection

flat view

From: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Date: 2016-03-10 10:54:04

Hi François,

On Thu, Mar 10, 2016 at 12:15 PM, François Beaufort
[off-list ref] wrote:
Here are failing bluetoothd and hcidump logs with BlueZ at commit
c8a81f43921cf417e270f3b6e0b0118cbc27a58d
git log c8a81f43921cf417e270f3b6e0b0118cbc27a58d
fatal: bad object c8a81f43921cf417e270f3b6e0b0118cbc27a58d

Seems like it is not a valid object, is this based on upstream?
http://pastebin.com/raw/i416k6aw
I can see the old services being removed and the new one being added:

old services:
bluetoothd[8323]: src/gatt-client.c:unregister_service() Removing GATT
service: /org/bluez/hci0/dev_F1_6F_DE_EC_F1_D6/service0012
bluetoothd[8323]: src/gatt-client.c:unregister_service() Removing GATT
service: /org/bluez/hci0/dev_F1_6F_DE_EC_F1_D6/service0016
bluetoothd[8323]: src/gatt-client.c:unregister_service() Removing GATT
service: /org/bluez/hci0/dev_F1_6F_DE_EC_F1_D6/service0019

new service:

bluetoothd[8323]: src/gatt-client.c:service_create() Exported GATT
service: /org/bluez/hci0/dev_F1_6F_DE_EC_F1_D6/service000c
bluetoothd[8323]: src/gatt-client.c:characteristic_create() Exported
GATT characteristic:
/org/bluez/hci0/dev_F1_6F_DE_EC_F1_D6/service000c/char000d
bluetoothd[8323]: src/gatt-client.c:characteristic_create() Exported
GATT characteristic:
/org/bluez/hci0/dev_F1_6F_DE_EC_F1_D6/service000c/char000f
bluetoothd[8323]: src/gatt-client.c:descriptor_create() Exported GATT
characteristic descriptor:
/org/bluez/hci0/dev_F1_6F_DE_EC_F1_D6/service000c/char000f/desc0011
bluetoothd[8323]: src/gatt-client.c:characteristic_create() Exported
GATT characteristic:
/org/bluez/hci0/dev_F1_6F_DE_EC_F1_D6/service000c/char0012

http://pastebin.com/raw/5dC9dFiP
So it fails here:

2016-03-10 11:11:49.083776 < ACL data: handle 32 flags 0x00 dlen 9
    ATT: Write req (0x12)
      handle 0x000b value  0x02 0x00
2016-03-10 11:11:49.118038 > ACL data: handle 32 flags 0x02 dlen 5
    ATT: Write resp (0x13)

It is trying to write to handle 0x000b which is not in the range of
the new services, in fact is probably the service changed
characteristic CCC:

bluetoothd[8323]: src/device.c:gatt_debug() start: 0x0008, end:
0x000b, uuid: 00001801-0000-1000-8000-00805f9b34fb

That is GATT service:

#define GATT_UUID "00001801-0000-1000-8000-00805f9b34fb"

So there is nothing in the logs related to the application, it is
perhaps something in the above layers, perhaps it could not be
detecting the service removal properly. I did a quick test here with
zephyr as peripheral and changing services do actually appear in
bluetoothctl.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help