New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 855256 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

StartNotify() must be called with cccd_value

Project Member Reported by jhawkins@chromium.org, Jun 21 2018

Issue description

proximity-auth logs look like consistent failure to create a notification channel.

Attached logs.
 
messages
3.6 MB View Download
chrome
2.1 MB View Download
ui.LATEST
30.1 KB Download
btsnoop.log
987 KB View Download
dmesg.log
248 KB View Download
proximity_auth_logs_2018-06-21T22_56_23.545Z.txt
174 KB View Download
Cc: mcchou@chromium.org sonnysasaka@chromium.org josephsih@chromium.org dmitrygr@chromium.org jlklein@chromium.org jhawkins@chromium.org hansberry@chromium.org
Labels: OS-Chrome
Status: Available (was: Untriaged)
Summary: Repeated failure to start notification session (was: SmartLock Setup consistently failing)
Hi Bluetooth team - jhawkins@ has been consistently running into this issue, which has affected the stability of EasyUnlock. Can you look into this? Thanks!
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?
Summary: StartNotify() must be called with cccd_value (was: Repeated failure to start notification session)
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
Cc: -josephsih@chromium.org
Labels: RegressedIn-69
Owner: josephsih@chromium.org
Status: Assigned (was: Available)
For context, this issue is blocking development of SmartLock.
Is there a specific change that can be rolled back?  This breakage is pretty bad.
Cc: r...@chromium.org
Owner: qiyuh@chromium.org
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?

Comment 9 by qiyuh@chromium.org, 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

Comment 10 Deleted

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.
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.

Comment 13 by qiyuh@chromium.org, 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.

Comment 14 by qiyuh@chromium.org, Jun 25 2018

Hold on. We do provide a default value.

What's the version of Chrome and ChromeOS on your image?
James, please provide the information requested by qiyuh@ in comment #14 when you have a chance.

Comment 16 by qiyuh@chromium.org, 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.

Comment 17 by qiyuh@chromium.org, Jun 25 2018

Status: Fixed (was: Assigned)

Comment 18 by qiyuh@chromium.org, Jun 25 2018

Status: WontFix (was: Fixed)
Confirmed this is not an issue with latest Test release for Eve and updated trunk build.

Sign in to add a comment