StartNotify() must be called with cccd_value |
||||||||
Issue descriptionproximity-auth logs look like consistent failure to create a notification channel. Attached logs.
,
Jun 21 2018
Hi Bluetooth team - jhawkins@ has been consistently running into this issue, which has affected the stability of EasyUnlock. Can you look into this? Thanks!
,
Jun 22 2018
Hi Kyle, in the chrome log, it showed that
[1540:1540:0621/155338.024087:VERBOSE1:bluetooth_remote_gatt_characteristic_bluez.cc(348)] Failed to start notifications from characteristic: /org/bluez/hci0/dev_75_CF_0C_2C_65_09/service002e/char002f: org.freedesktop.DBus.Error.UnknownMethod, Method "StartNotify" with signature "" on interface "org.bluez.GattCharacteristic1" doesn't exist
The StartNotify methods is supposed to be called with cccd_value. Could you check if the StartNotify function is called that way? Thanks.
-----------
BTW, in the "messages" log, I still saw errors like
2018-06-21T15:28:31.542810-07:00 ERR bluetoothd[2393]: Device is disconnecting. StartNotify is not allowed.
which indicated that chrome was still trying to call StartNotify on a disconnecting device. Could you also help have someone take care of this issue?
,
Jun 22 2018
Thanks, Joseph! Joseph's first explanation (no cccd_value) seems to be a lower-level issue. Please see [1]: the Chrome API does not provide a way to pass any parameter. What layer is responsible for passing this parameter? I'm repurposing this bug to be this specific issue. Joseph's second explanation (StartNotify() called on disconnecting GATT connection) is its own separate bug: issue 847628. Miao is already looking into this issue. [1] https://cs.chromium.org/chromium/src/device/bluetooth/bluetooth_remote_gatt_characteristic.h?q=StartNotifySession
,
Jun 22 2018
For context, this issue is blocking development of SmartLock.
,
Jun 22 2018
Is there a specific change that can be rolled back? This breakage is pretty bad.
,
Jun 22 2018
,
Jun 25 2018
I believe Qiyu made a change in this part of code a couple of weeks ago. Qiyu, could you help take a look at this bug?
,
Jun 25 2018
I don't think cccd_value is an issue here. Notification session can be created even without a cccd_value. We maintain backward compatibility on that. However, it's indeed recommended for all clients that they use the newer API. https://cs.chromium.org/chromium/src/device/bluetooth/bluetooth_remote_gatt_characteristic.h?q=StartNotifySession&l=129
,
Jun 25 2018
I see. In that case, was Joseph's original interpretation in comment #3 incorrect? Is the main bug here issue 847628? If so, wasn't that bug around before M-69? It seems strange that this regression would be part of M-69 if that were the only root cause.
,
Jun 25 2018
Qiyu, from here https://crrev.com/c/1069774/18/src/gatt-client.c#1345, it looks like cccd_value is a mandatory parameter by bluetoothd, and there is still some caller in Chrome that doesn't pass in this param.
,
Jun 25 2018
Yup. I believe we fail to provide a default cccd_value in this case. I would send out a fix on this, but all clients are recommended to use the newer API.
,
Jun 25 2018
Hold on. We do provide a default value. What's the version of Chrome and ChromeOS on your image?
,
Jun 25 2018
James, please provide the information requested by qiyuh@ in comment #14 when you have a chance.
,
Jun 25 2018
I can confirm that this is not an issue on ToT. How old is the Chrome version you were testing? If your ChromeOS is up-to-date but your Chrome is outdated, backward compatibility is not guaranteed. Please just: 1. Update Chrome to ToT. 2. Use the newer API. https://cs.chromium.org/chromium/src/device/bluetooth/bluetooth_remote_gatt_characteristic.h?q=StartNotifySession&l=129 2 is optional but strongly recommended. Feel free to reopen if you still have the issue hanging around.
,
Jun 25 2018
,
Jun 25 2018
,
Jun 26 2018
Confirmed this is not an issue with latest Test release for Eve and updated trunk build. |
||||||||
►
Sign in to add a comment |
||||||||
Comment 1 by jhawkins@chromium.org
, Jun 21 2018