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

Issue 853037 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 15
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

ARC Bluetooth does not pick up active scan results after disconnect

Reported by steven.l...@makewonder.com, Jun 14 2018

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1 Safari/605.1.15
Platform: 10718.13.0 (Official Build) dev-channel kevin

Steps to reproduce the problem:
- Install and run “nRF Connect for Mobile” by Nordic Semiconductor ASA from the Google Play store on a Chromebook running OS M68 dev (68.0.3440.15) to be exact
- Turn on a BLE device which provides a 128-bit Service UUID in a BLE Active Scan Response.  Wonder Workshop robots (Dash, Dot or Cue) are examples of such a device.  See https://blog.bluetooth.com/advertising-works-part-1 for information about how 128-bit Service UUIDs are provided in the scan response.
- Find the device in the list of advertisements on the right.  It may be helpful to filter by device name, but this is not necessary
- Note that the device information contains a field “Complete list of 128-bit Service UUIDs”.  For WW robots, this is “af237777-879d-6186-1f49-deca0e85d9c1” or “af237778-879d-6186-1f49-deca0e85d9c1”
- Click on the CONNECT button to the right of the device name.
- Once connected, disconnect from the device by clicking the X next to device name near the top of the page
- Click on SCANNER in the upper left part of the page
- Click on SCAN in the upper right part of the page
- Find the device in the list of advertisements on the right

What is the expected behavior?
- The device’s 128-bit Service UUID is shown (as in attachments IMG_0047.jpg and IMG_0049.jpg)

What went wrong?
- The Service UUID is missing (as in attachments IMG_0048.jpg and IMG_0050.jpg)

Did this work before? N/A 

Does this work in other browsers? Yes

Chrome version: 68.0.3440.15 (Official Build) dev (32-bit)  Channel: dev
OS Version: 68.0.3440.15
Flash Version: 30.0.0.113 /opt/google/chrome/pepper/libpepflashplayer.so

- After disconnecting, the Service UUID does not show up in any android app until the Chromebook is rebooted
- After disconnecting, the Service UUID does not show up when attempting to access the device using a filtered scan in Web Bluetooth on the Chromebook’s Chrome browser
 
ARC_BLE_BUG.TXT
1.7 KB View Download
IMG_0047.jpg
1.7 MB View Download
IMG_0048.jpg
2.1 MB View Download
IMG_0049.jpg
1.6 MB View Download
IMG_0050.jpg
1.5 MB View Download
- This is related to https://bugs.chromium.org/p/chromium/issues/detail?id=828904
- The component are probably OS>Systems>Bluetooth and Platform>ARC, however the bug creation wizard did not allow me to select these
- qiyuh@chromium.org josephsih@chromium.org and/or mcchou@chromium.org have helped address other Chromebook ARC bluetooth issue
- I attempted to create a bluetooth log of the issue, however once adding the -d flag in /usr/bin/start_bluetoothd.sh, the bluetooth device no longer started
- Please contact me if you need one of our robots to reproduce or test

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

Owner: qiyuh@chromium.org

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

Thanks for reporting. It's quite encouraging that you somehow make https://bugs.chromium.org/p/chromium/issues/detail?id=841041 reproducible. Would you mind if you do a simple scan on that bug?

I would like to know two things now:

1. In reproducing this bug, does the issue look the same as the one mentioned above?
2. Have you encountered this issue previously?

Thanks!
Can you tell me more about this simple scan you request?  I'm not sure how to perform it.
I have noticed, in previous OS versions, that sometimes devices got lost.  However, I did not investigate in enough detail to say with certainty that this is the same issue.

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

Really sorry... My bad. Horrible wording.

I just want you to watch the video tapes in that bug. Does it look like the same issue as you reproduce this bug? Please let me know your answers to the following questions:

1. In reproducing this bug, does the issue look the same as the one mentioned above?
2. Have you encountered this issue previously?

Thanks you so much!
The issue could be the same, yes.  The service UUID does seem to disappear after connecting/disconnecting as shown in one of the videos.

Comment 8 by qiyuh@chromium.org, Jun 15 2018

HUGE.

I would try to reproduce it next week. Once I can reproduce this issue reliably, we should be able to fix it soon.

Lots of thanks go to you.

Comment 9 by qiyuh@chromium.org, Jun 15 2018

Cc: edwinmos...@gmail.com
+Edwin.

We have another developer reporting the same issue. Could you do me a favor to see whether you can reproduce it also following his steps? Thanks!
@qiyuh

Yeah sure. I will get back to you next week. From the looks of it, the issue is similar to the video I posted in https://bugs.chromium.org/p/chromium/issues/detail?id=841041 

 Issue 853038  has been merged into this issue.
Components: Platform>ARC
Components: Platform>Apps>ARC

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

In case developers want some early fix, I have a patch fixing this one.
https://chromium-review.googlesource.com/c/chromiumos/third_party/bluez/+/1102670

Before it's merged in, you have to manually build ChromeOS (specifically BlueZ) if you want to get a first try though.
Project Member

Comment 15 by bugdroid1@chromium.org, Jun 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/69e6a7872f1de61abdaee62d873f12a4c8340e6e

commit 69e6a7872f1de61abdaee62d873f12a4c8340e6e
Author: Qiyu Hu <qiyuh@google.com>
Date: Tue Jun 19 17:17:11 2018

arc: bluetooth: Fix a bug where we never send cached device as intended

SendCached.*() never works as our imagination goes.
Cached found devices are always ignored in SendDevices().

Also sends out paired devices in SendCachedDevicesFound(). A paired
device can still have different UUIDs from last time we report to
Android, which should get the latest UUID list as long as it's scanning.
As a matter of fact, the secure client test needs to know the updated
UUIDs on a paired device in order to figure out which one to connect to.

This has an impact on crbug/853037 and crbug/841041 also, as devices are
always paired before connected in BlueZ.

BUG=b:78593133, chromium:853037 , chromium:841041 
TEST=Confirm from logs that UUIDs are updated even for paired devices

Change-Id: I6f1dae8be9bb1eb9b0d8cb5c2a146ec07d4ee099
Reviewed-on: https://chromium-review.googlesource.com/1105559
Commit-Queue: Qiyu Hu <qiyuh@google.com>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568505}
[modify] https://crrev.com/69e6a7872f1de61abdaee62d873f12a4c8340e6e/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc
[modify] https://crrev.com/69e6a7872f1de61abdaee62d873f12a4c8340e6e/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.h

Project Member

Comment 16 by bugdroid1@chromium.org, Jun 19 2018

Labels: merge-merged-chromeos-5.44
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/bluez/+/33c9e8163c4b728bbf0d88e088f20eb4988ba7ae

commit 33c9e8163c4b728bbf0d88e088f20eb4988ba7ae
Author: Qiyu Hu <qiyuh@google.com>
Date: Tue Jun 19 21:38:47 2018

CHROMIUM: Merge eir_uuids into uuids

When service uuids are only availabe in eir (extended inquery response),
current implementation clears eir_uuids and refuses to update them once
service is resolved. Thus, it's impossible to retrieve those service
uuids once a device is connected, unless that device is removed from
BlueZ cache.

The effect of distinguishing uuids from eir_uuids is adding more code
and cost to maintain two lists only. Time to simplify this piece.

BUG= chromium:853037 , chromium:841041 
TEST=Cannot reproduce the missing service uuid bug anymore

Change-Id: Ia4659b055e24c4a572ab403fda375e460ad096e9
Reviewed-on: https://chromium-review.googlesource.com/1102670
Commit-Ready: Qiyu Hu <qiyuh@google.com>
Tested-by: Qiyu Hu <qiyuh@google.com>
Reviewed-by: Dmitry Grinberg <dmitrygr@google.com>

[modify] https://crrev.com/33c9e8163c4b728bbf0d88e088f20eb4988ba7ae/src/device.h
[modify] https://crrev.com/33c9e8163c4b728bbf0d88e088f20eb4988ba7ae/src/adapter.c
[modify] https://crrev.com/33c9e8163c4b728bbf0d88e088f20eb4988ba7ae/src/device.c

Can I get an indication when this change may make it into the dev channel?  69.0.3464.0 doesn't appear to have the fix.

I made a custom build, however ARC++ isn't supported on Chromium OS (https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/zg-ZDIYVhm0)

Thanks for your fix, btw.

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

Further changes are still needed to ensure we don't send GATT uuids as part of the scan result. However, things are broken only if you have a large number of GATT services. In other cases, it should be good to scan for service uuids after disconnection.

Comment 19 by qiyuh@chromium.org, Jun 21 2018

Status: Fixed (was: Unconfirmed)
All patches has been landed. Please allow a few days for the fix showing up in dev. If you want to try out early, you can switch to canary.

I would close this one for now. Feel free to reopen if this issue still hangs around.
Can this change be pushed to Chrome OS version 68?  We have discovered that this issue also affects our users via Web Bluetooth on version 67.  This bug did not affect users on version 66, so it appears to be a regression.
Cc: qiyuh@chromium.org
Labels: Merge-Request-68
Owner: bhthompson@chromium.org
Re-assign to Bernie for an M68 merge request.
Project Member

Comment 22 by sheriffbot@chromium.org, Jul 16

Labels: -Merge-Request-68 Hotlist-Merge-Review Merge-Review-68
This bug requires manual review: We are only 7 days from stable.
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), kariahda@(iOS), bhthompson@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Hotlist-Merge-Review -Merge-Review-68 Merge-Approved-68
Project Member

Comment 24 by bugdroid1@chromium.org, Jul 16

Labels: merge-merged-release-R68-10718.B
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/bluez/+/7459edbcbd0d2735827a96bb684260360f04562e

commit 7459edbcbd0d2735827a96bb684260360f04562e
Author: Qiyu Hu <qiyuh@google.com>
Date: Mon Jul 16 21:43:25 2018

CHROMIUM: Merge eir_uuids into uuids

When service uuids are only availabe in eir (extended inquery response),
current implementation clears eir_uuids and refuses to update them once
service is resolved. Thus, it's impossible to retrieve those service
uuids once a device is connected, unless that device is removed from
BlueZ cache.

The effect of distinguishing uuids from eir_uuids is adding more code
and cost to maintain two lists only. Time to simplify this piece.

BUG= chromium:853037 , chromium:841041 
TEST=Cannot reproduce the missing service uuid bug anymore

Change-Id: Ia4659b055e24c4a572ab403fda375e460ad096e9
Reviewed-on: https://chromium-review.googlesource.com/1102670
Commit-Ready: Qiyu Hu <qiyuh@google.com>
Tested-by: Qiyu Hu <qiyuh@google.com>
Reviewed-by: Dmitry Grinberg <dmitrygr@google.com>
(cherry picked from commit 33c9e8163c4b728bbf0d88e088f20eb4988ba7ae)
Reviewed-on: https://chromium-review.googlesource.com/1138981
Reviewed-by: Qiyu Hu <qiyuh@google.com>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
Commit-Queue: Qiyu Hu <qiyuh@google.com>

[modify] https://crrev.com/7459edbcbd0d2735827a96bb684260360f04562e/src/device.h
[modify] https://crrev.com/7459edbcbd0d2735827a96bb684260360f04562e/src/adapter.c
[modify] https://crrev.com/7459edbcbd0d2735827a96bb684260360f04562e/src/device.c

Project Member

Comment 25 by bugdroid1@chromium.org, Jul 16

Labels: -merge-approved-68 merge-merged-3440
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eba14ad88e7fa55f1ae3d24209893f94738815d1

commit eba14ad88e7fa55f1ae3d24209893f94738815d1
Author: Miao-chen Chou <mcchou@chromium.org>
Date: Mon Jul 16 22:30:45 2018

arc: bluetooth: Fix a bug where we never send cached device as intended

SendCached.*() never works as our imagination goes.
Cached found devices are always ignored in SendDevices().

Also sends out paired devices in SendCachedDevicesFound(). A paired
device can still have different UUIDs from last time we report to
Android, which should get the latest UUID list as long as it's scanning.
As a matter of fact, the secure client test needs to know the updated
UUIDs on a paired device in order to figure out which one to connect to.

This has an impact on crbug/853037 and crbug/841041 also, as devices are
always paired before connected in BlueZ.

BUG=b:78593133, chromium:853037 , chromium:841041 
TEST=Confirm from logs that UUIDs are updated even for paired devices
TBR=qiyuh@google.com

(cherry picked from commit 69e6a7872f1de61abdaee62d873f12a4c8340e6e)

Change-Id: I6f1dae8be9bb1eb9b0d8cb5c2a146ec07d4ee099
Reviewed-on: https://chromium-review.googlesource.com/1105559
Commit-Queue: Qiyu Hu <qiyuh@google.com>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#568505}
Reviewed-on: https://chromium-review.googlesource.com/1138434
Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
Cr-Commit-Position: refs/branch-heads/3440@{#686}
Cr-Branched-From: 010ddcfda246975d194964ccf20038ebbdec6084-refs/heads/master@{#561733}
[modify] https://crrev.com/eba14ad88e7fa55f1ae3d24209893f94738815d1/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc
[modify] https://crrev.com/eba14ad88e7fa55f1ae3d24209893f94738815d1/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.h

Project Member

Comment 26 by bugdroid1@chromium.org, Jul 23

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/bluez/+/0d576c388c30023b21ef559c018621b75af73ace

commit 0d576c388c30023b21ef559c018621b75af73ace
Author: Qiyu Hu <qiyuh@google.com>
Date: Mon Jul 23 20:24:54 2018

Revert "CHROMIUM: Merge eir_uuids into uuids"

This reverts commit 7459edbcbd0d2735827a96bb684260360f04562e.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> CHROMIUM: Merge eir_uuids into uuids
> 
> When service uuids are only availabe in eir (extended inquery response),
> current implementation clears eir_uuids and refuses to update them once
> service is resolved. Thus, it's impossible to retrieve those service
> uuids once a device is connected, unless that device is removed from
> BlueZ cache.
> 
> The effect of distinguishing uuids from eir_uuids is adding more code
> and cost to maintain two lists only. Time to simplify this piece.
> 
> BUG= chromium:853037 , chromium:841041 
> TEST=Cannot reproduce the missing service uuid bug anymore
> 
> Change-Id: Ia4659b055e24c4a572ab403fda375e460ad096e9
> Reviewed-on: https://chromium-review.googlesource.com/1102670
> Commit-Ready: Qiyu Hu <qiyuh@google.com>
> Tested-by: Qiyu Hu <qiyuh@google.com>
> Reviewed-by: Dmitry Grinberg <dmitrygr@google.com>
> (cherry picked from commit 33c9e8163c4b728bbf0d88e088f20eb4988ba7ae)
> Reviewed-on: https://chromium-review.googlesource.com/1138981
> Reviewed-by: Qiyu Hu <qiyuh@google.com>
> Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
> Commit-Queue: Qiyu Hu <qiyuh@google.com>

Bug:  chromium:853037 ,  chromium:841041 
Change-Id: Idad8354a5135e7a643e4b28d77ef6f1c4af24e8c
Reviewed-on: https://chromium-review.googlesource.com/1147401
Reviewed-by: Qiyu Hu <qiyuh@google.com>
Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
Commit-Queue: Qiyu Hu <qiyuh@google.com>
Tested-by: Qiyu Hu <qiyuh@google.com>

[modify] https://crrev.com/0d576c388c30023b21ef559c018621b75af73ace/src/device.h
[modify] https://crrev.com/0d576c388c30023b21ef559c018621b75af73ace/src/adapter.c
[modify] https://crrev.com/0d576c388c30023b21ef559c018621b75af73ace/src/device.c

Project Member

Comment 27 by bugdroid1@chromium.org, Jul 23

Labels: merge-merged-release-R69-10895.B
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/bluez/+/e2c9f59ca00f96eb50296b4294f9590816559e34

commit e2c9f59ca00f96eb50296b4294f9590816559e34
Author: Qiyu Hu <qiyuh@google.com>
Date: Mon Jul 23 20:37:27 2018

Revert "CHROMIUM: Merge eir_uuids into uuids"

This reverts commit 7459edbcbd0d2735827a96bb684260360f04562e.

Reason for revert: Breaking headset connection

Original change's description:
> CHROMIUM: Merge eir_uuids into uuids
> 
> When service uuids are only availabe in eir (extended inquery response),
> current implementation clears eir_uuids and refuses to update them once
> service is resolved. Thus, it's impossible to retrieve those service
> uuids once a device is connected, unless that device is removed from
> BlueZ cache.
> 
> The effect of distinguishing uuids from eir_uuids is adding more code
> and cost to maintain two lists only. Time to simplify this piece.
> 
> BUG= chromium:853037 , chromium:841041 
> TEST=Cannot reproduce the missing service uuid bug anymore
> 
> Change-Id: Ia4659b055e24c4a572ab403fda375e460ad096e9
> Reviewed-on: https://chromium-review.googlesource.com/1102670
> Commit-Ready: Qiyu Hu <qiyuh@google.com>
> Tested-by: Qiyu Hu <qiyuh@google.com>
> Reviewed-by: Dmitry Grinberg <dmitrygr@google.com>
> (cherry picked from commit 33c9e8163c4b728bbf0d88e088f20eb4988ba7ae)
> Reviewed-on: https://chromium-review.googlesource.com/1138981
> Reviewed-by: Qiyu Hu <qiyuh@google.com>
> Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
> Commit-Queue: Qiyu Hu <qiyuh@google.com>

Bug:  chromium:853037 ,  chromium:841041 
Change-Id: Idad8354a5135e7a643e4b28d77ef6f1c4af24e8c
Reviewed-on: https://chromium-review.googlesource.com/1147401
Reviewed-by: Qiyu Hu <qiyuh@google.com>
Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
Commit-Queue: Qiyu Hu <qiyuh@google.com>
Tested-by: Qiyu Hu <qiyuh@google.com>
(cherry picked from commit 0d576c388c30023b21ef559c018621b75af73ace)
Reviewed-on: https://chromium-review.googlesource.com/1147402

[modify] https://crrev.com/e2c9f59ca00f96eb50296b4294f9590816559e34/src/device.h
[modify] https://crrev.com/e2c9f59ca00f96eb50296b4294f9590816559e34/src/adapter.c
[modify] https://crrev.com/e2c9f59ca00f96eb50296b4294f9590816559e34/src/device.c

Sounds like this fix won’t be in 68.  Is that accurate?  If so, can we reopen this ticket?
Yup. We revert it due to a regressing issue. We still target to fix it in 68 though.
Project Member

Comment 30 by bugdroid1@chromium.org, Jul 24

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/bluez/+/7e13faff2b3bce0ceacf7c809746f073e43910e1

commit 7e13faff2b3bce0ceacf7c809746f073e43910e1
Author: Qiyu Hu <qiyuh@google.com>
Date: Tue Jul 24 19:44:12 2018

Revert "CHROMIUM: Merge eir_uuids into uuids"

This reverts commit 33c9e8163c4b728bbf0d88e088f20eb4988ba7ae.

Reason for revert: Breaks service probing on devices putting service uuids in EIR

Original change's description:
> CHROMIUM: Merge eir_uuids into uuids
>
> When service uuids are only availabe in eir (extended inquery response),
> current implementation clears eir_uuids and refuses to update them once
> service is resolved. Thus, it's impossible to retrieve those service
> uuids once a device is connected, unless that device is removed from
> BlueZ cache.
>
> The effect of distinguishing uuids from eir_uuids is adding more code
> and cost to maintain two lists only. Time to simplify this piece.
>
> BUG= chromium:853037 , chromium:841041 
> TEST=Cannot reproduce the missing service uuid bug anymore
>
> Change-Id: Ia4659b055e24c4a572ab403fda375e460ad096e9
> Reviewed-on: https://chromium-review.googlesource.com/1102670
> Commit-Ready: Qiyu Hu <qiyuh@google.com>
> Tested-by: Qiyu Hu <qiyuh@google.com>
> Reviewed-by: Dmitry Grinberg <dmitrygr@google.com>

Bug:  chromium:853037 ,  chromium:841041 
Change-Id: Ifb49aacc3227248282fc5df771daeabeb3794c2b
Reviewed-on: https://chromium-review.googlesource.com/1147600
Commit-Ready: Qiyu Hu <qiyuh@google.com>
Tested-by: Qiyu Hu <qiyuh@google.com>
Reviewed-by: Qiyu Hu <qiyuh@google.com>
Reviewed-by: Miao-chen Chou <mcchou@chromium.org>

[modify] https://crrev.com/7e13faff2b3bce0ceacf7c809746f073e43910e1/src/device.h
[modify] https://crrev.com/7e13faff2b3bce0ceacf7c809746f073e43910e1/src/adapter.c
[modify] https://crrev.com/7e13faff2b3bce0ceacf7c809746f073e43910e1/src/device.c

Project Member

Comment 31 by bugdroid1@chromium.org, Jul 25

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/bluez/+/6f62d1461e02a6911bb3a687d9cf71cb6957f5c7

commit 6f62d1461e02a6911bb3a687d9cf71cb6957f5c7
Author: Qiyu Hu <qiyuh@google.com>
Date: Wed Jul 25 07:14:55 2018

CHROMIUM: Merge eir_uuids into uuids

This is a reland of crrev.com/c/1102670.

crrev.com/c/1102670 merges eir_uuids into uuids. Due to the check of
duplicate uuids during profile probing, service uuids in eir are not
probed. As a result, those profiles become unavailable and cause
disconnection after pairing.

As profile probing involves only internal state lookup in BlueZ, we
can fix the issue by removing the duplicate uuid check. The only cost is
a few more CPU cycles.

BUG= chromium:853037 ,  chromium:841041 
TEST=Verify that the missing service UUID bug is no longer reproducible
     and no regression on connection is introduced
Change-Id: Icef35a24f2ebf290fc56482cdfcc96debee54482
Reviewed-on: https://chromium-review.googlesource.com/1148901
Commit-Ready: Qiyu Hu <qiyuh@google.com>
Tested-by: Qiyu Hu <qiyuh@google.com>
Reviewed-by: Miao-chen Chou <mcchou@chromium.org>

[modify] https://crrev.com/6f62d1461e02a6911bb3a687d9cf71cb6957f5c7/src/device.h
[modify] https://crrev.com/6f62d1461e02a6911bb3a687d9cf71cb6957f5c7/src/adapter.c
[modify] https://crrev.com/6f62d1461e02a6911bb3a687d9cf71cb6957f5c7/src/device.c

My tests show that beta version pushed earlier today 68.0.3440.76 still has this bug.  

My apologies if this information is already included in the ticket, however I am not privy to the meanings of the tags and bugdroid messages.
We reverted the fix due to a regression in both 68 and 69. We are now working on a reland to both branches.
Labels: Merge-Request-69
+Cindy, we need to merge this fix back to M69.

@Bernie and @Miao, we will reland this patch w/ the fix on the regression.
Cc: bhthompson@chromium.org
Owner: cindyb@chromium.org
Cc: mcchou@chromium.org
Project Member

Comment 38 by sheriffbot@chromium.org, Jul 26

Labels: -Merge-Request-69 Hotlist-Merge-Approved Merge-Approved-69
Your change meets the bar and is auto-approved for M69. Please go ahead and merge the CL to branch 3497 manually. Please contact milestone owner if you have questions.
Owners: amineer@(Android), kariahda@(iOS), cindyb@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 39 by bugdroid1@chromium.org, Jul 26

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/bluez/+/a5ca7848eda56c60758273ffa13338937c1411d1

commit a5ca7848eda56c60758273ffa13338937c1411d1
Author: Qiyu Hu <qiyuh@google.com>
Date: Thu Jul 26 17:47:58 2018

CHROMIUM: Merge eir_uuids into uuids

This is a reland of crrev.com/c/1102670.

crrev.com/c/1102670 merges eir_uuids into uuids. Due to the check of
duplicate uuids during profile probing, service uuids in eir are not
probed. As a result, those profiles become unavailable and cause
disconnection after pairing.

As profile probing involves only internal state lookup in BlueZ, we
can fix the issue by removing the duplicate uuid check. The only cost is
a few more CPU cycles.

BUG= chromium:853037 ,  chromium:841041 
TEST=Verify that the missing service UUID bug is no longer reproducible
     and no regression on connection is introduced
Change-Id: Icef35a24f2ebf290fc56482cdfcc96debee54482
Reviewed-on: https://chromium-review.googlesource.com/1148901
Commit-Ready: Qiyu Hu <qiyuh@google.com>
Tested-by: Qiyu Hu <qiyuh@google.com>
Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
(cherry picked from commit 6f62d1461e02a6911bb3a687d9cf71cb6957f5c7)
Reviewed-on: https://chromium-review.googlesource.com/1150303
Commit-Queue: Qiyu Hu <qiyuh@google.com>

[modify] https://crrev.com/a5ca7848eda56c60758273ffa13338937c1411d1/src/device.h
[modify] https://crrev.com/a5ca7848eda56c60758273ffa13338937c1411d1/src/adapter.c
[modify] https://crrev.com/a5ca7848eda56c60758273ffa13338937c1411d1/src/device.c

Labels: Merge-Request-68
We reverted the initial fix due to a regression on connection and pairing. A new patch has been merged to master and 69, crrev.com/c/1148901. We request a merge to 68 also. Please help take a look. Thank you!
Owner: bhthompson@chromium.org
Project Member

Comment 42 by sheriffbot@chromium.org, Jul 26

Labels: -Merge-Request-68 Hotlist-Merge-Review Merge-Review-68
This bug requires manual review: Request affecting a post-stable build
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), kariahda@(iOS), bhthompson@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Hotlist-Merge-Review -Merge-Review-68 Merge-Approved-68
Project Member

Comment 44 by bugdroid1@chromium.org, Jul 26

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/bluez/+/0487388899be7fb66c717083606ccfd4ab6429fb

commit 0487388899be7fb66c717083606ccfd4ab6429fb
Author: Qiyu Hu <qiyuh@google.com>
Date: Thu Jul 26 20:59:50 2018

CHROMIUM: Merge eir_uuids into uuids

This is a reland of crrev.com/c/1102670.

crrev.com/c/1102670 merges eir_uuids into uuids. Due to the check of
duplicate uuids during profile probing, service uuids in eir are not
probed. As a result, those profiles become unavailable and cause
disconnection after pairing.

As profile probing involves only internal state lookup in BlueZ, we
can fix the issue by removing the duplicate uuid check. The only cost is
a few more CPU cycles.

BUG= chromium:853037 ,  chromium:841041 
TEST=Verify that the missing service UUID bug is no longer reproducible
     and no regression on connection is introduced
Change-Id: Icef35a24f2ebf290fc56482cdfcc96debee54482
Reviewed-on: https://chromium-review.googlesource.com/1148901
Commit-Ready: Qiyu Hu <qiyuh@google.com>
Tested-by: Qiyu Hu <qiyuh@google.com>
Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
(cherry picked from commit 6f62d1461e02a6911bb3a687d9cf71cb6957f5c7)
Reviewed-on: https://chromium-review.googlesource.com/1150301
Commit-Queue: Qiyu Hu <qiyuh@google.com>

[modify] https://crrev.com/0487388899be7fb66c717083606ccfd4ab6429fb/src/device.h
[modify] https://crrev.com/0487388899be7fb66c717083606ccfd4ab6429fb/src/adapter.c
[modify] https://crrev.com/0487388899be7fb66c717083606ccfd4ab6429fb/src/device.c

Project Member

Comment 45 by sheriffbot@chromium.org, Jul 30

Cc: bhthompson@google.com
This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Merge-Approved-68 -Merge-Approved-69
Project Member

Comment 47 by bugdroid1@chromium.org, Aug 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/bluez/+/15b9c78bdac722010ffbfafc85aeb0d874f59cda

commit 15b9c78bdac722010ffbfafc85aeb0d874f59cda
Author: Bernie Thompson <bhthompson@chromium.org>
Date: Thu Aug 02 02:21:34 2018

Revert "CHROMIUM: Merge eir_uuids into uuids"

This reverts commit 6f62d1461e02a6911bb3a687d9cf71cb6957f5c7.

Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=870011

Original change's description:
> CHROMIUM: Merge eir_uuids into uuids
> 
> This is a reland of crrev.com/c/1102670.
> 
> crrev.com/c/1102670 merges eir_uuids into uuids. Due to the check of
> duplicate uuids during profile probing, service uuids in eir are not
> probed. As a result, those profiles become unavailable and cause
> disconnection after pairing.
> 
> As profile probing involves only internal state lookup in BlueZ, we
> can fix the issue by removing the duplicate uuid check. The only cost is
> a few more CPU cycles.
> 
> BUG= chromium:853037 ,  chromium:841041 
> TEST=Verify that the missing service UUID bug is no longer reproducible
>      and no regression on connection is introduced
> Change-Id: Icef35a24f2ebf290fc56482cdfcc96debee54482
> Reviewed-on: https://chromium-review.googlesource.com/1148901
> Commit-Ready: Qiyu Hu <qiyuh@google.com>
> Tested-by: Qiyu Hu <qiyuh@google.com>
> Reviewed-by: Miao-chen Chou <mcchou@chromium.org>

Bug:  chromium:853037 ,  chromium:841041 
Change-Id: I9f67e553288e9e72304202e8cb9d43d7985cebd9
Reviewed-on: https://chromium-review.googlesource.com/1159833
Reviewed-by: Bernie Thompson <bhthompson@chromium.org>
Commit-Queue: Bernie Thompson <bhthompson@chromium.org>
Tested-by: Bernie Thompson <bhthompson@chromium.org>

[modify] https://crrev.com/15b9c78bdac722010ffbfafc85aeb0d874f59cda/src/device.h
[modify] https://crrev.com/15b9c78bdac722010ffbfafc85aeb0d874f59cda/src/adapter.c
[modify] https://crrev.com/15b9c78bdac722010ffbfafc85aeb0d874f59cda/src/device.c

Project Member

Comment 48 by bugdroid1@chromium.org, Aug 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/bluez/+/baaff790f7ca37ca08d7ad9786ba4b3d6905b07b

commit baaff790f7ca37ca08d7ad9786ba4b3d6905b07b
Author: Bernie Thompson <bhthompson@chromium.org>
Date: Thu Aug 02 02:21:35 2018

Revert "CHROMIUM: Merge eir_uuids into uuids"

This reverts commit 6f62d1461e02a6911bb3a687d9cf71cb6957f5c7.

Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=870011

Original change's description:
> CHROMIUM: Merge eir_uuids into uuids
> 
> This is a reland of crrev.com/c/1102670.
> 
> crrev.com/c/1102670 merges eir_uuids into uuids. Due to the check of
> duplicate uuids during profile probing, service uuids in eir are not
> probed. As a result, those profiles become unavailable and cause
> disconnection after pairing.
> 
> As profile probing involves only internal state lookup in BlueZ, we
> can fix the issue by removing the duplicate uuid check. The only cost is
> a few more CPU cycles.
> 
> BUG= chromium:853037 ,  chromium:841041 
> TEST=Verify that the missing service UUID bug is no longer reproducible
>      and no regression on connection is introduced
> Change-Id: Icef35a24f2ebf290fc56482cdfcc96debee54482
> Reviewed-on: https://chromium-review.googlesource.com/1148901
> Commit-Ready: Qiyu Hu <qiyuh@google.com>
> Tested-by: Qiyu Hu <qiyuh@google.com>
> Reviewed-by: Miao-chen Chou <mcchou@chromium.org>

Bug:  chromium:853037 ,  chromium:841041 
Change-Id: I9f67e553288e9e72304202e8cb9d43d7985cebd9
Reviewed-on: https://chromium-review.googlesource.com/1159834
Reviewed-by: Bernie Thompson <bhthompson@chromium.org>
Commit-Queue: Bernie Thompson <bhthompson@chromium.org>
Tested-by: Bernie Thompson <bhthompson@chromium.org>

[modify] https://crrev.com/baaff790f7ca37ca08d7ad9786ba4b3d6905b07b/src/device.h
[modify] https://crrev.com/baaff790f7ca37ca08d7ad9786ba4b3d6905b07b/src/adapter.c
[modify] https://crrev.com/baaff790f7ca37ca08d7ad9786ba4b3d6905b07b/src/device.c

Owner: ----
Status: Assigned (was: Fixed)
This CL appears to have damaged the R68 release branch.

At this point unless this is a major regression, this bug is considered merge rejected for 68.
Project Member

Comment 51 by bugdroid1@chromium.org, Aug 2

Labels: merge-merged-stabilize-10718.71.B
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/bluez/+/2d9d500b283d0a20a0151c4c8fc826e637ad651c

commit 2d9d500b283d0a20a0151c4c8fc826e637ad651c
Author: Bernie Thompson <bhthompson@chromium.org>
Date: Thu Aug 02 02:25:49 2018

Revert "CHROMIUM: Merge eir_uuids into uuids"

This reverts commit 6f62d1461e02a6911bb3a687d9cf71cb6957f5c7.

Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=870011

Original change's description:
> CHROMIUM: Merge eir_uuids into uuids
> 
> This is a reland of crrev.com/c/1102670.
> 
> crrev.com/c/1102670 merges eir_uuids into uuids. Due to the check of
> duplicate uuids during profile probing, service uuids in eir are not
> probed. As a result, those profiles become unavailable and cause
> disconnection after pairing.
> 
> As profile probing involves only internal state lookup in BlueZ, we
> can fix the issue by removing the duplicate uuid check. The only cost is
> a few more CPU cycles.
> 
> BUG= chromium:853037 ,  chromium:841041 
> TEST=Verify that the missing service UUID bug is no longer reproducible
>      and no regression on connection is introduced
> Change-Id: Icef35a24f2ebf290fc56482cdfcc96debee54482
> Reviewed-on: https://chromium-review.googlesource.com/1148901
> Commit-Ready: Qiyu Hu <qiyuh@google.com>
> Tested-by: Qiyu Hu <qiyuh@google.com>
> Reviewed-by: Miao-chen Chou <mcchou@chromium.org>

Bug:  chromium:853037 ,  chromium:841041 
Change-Id: I9f67e553288e9e72304202e8cb9d43d7985cebd9
Reviewed-on: https://chromium-review.googlesource.com/1159837
Reviewed-by: Bernie Thompson <bhthompson@chromium.org>
Commit-Queue: Bernie Thompson <bhthompson@chromium.org>
Tested-by: Bernie Thompson <bhthompson@chromium.org>

[modify] https://crrev.com/2d9d500b283d0a20a0151c4c8fc826e637ad651c/src/device.h
[modify] https://crrev.com/2d9d500b283d0a20a0151c4c8fc826e637ad651c/src/adapter.c
[modify] https://crrev.com/2d9d500b283d0a20a0151c4c8fc826e637ad651c/src/device.c

This is a major regression for us, as the regression breaks connectivity to our devices with our currently deployed applications with many users.

Since this is a bug on the operating system level that requires a reboot of the system any time a device disconnects, there is no possible way for us to patch around this at an application level.
At this point I would be hesitant to take a fix in R68, while this bug breaks some devices, the fix broke BT in a much broader fashion (e.g. keyboards stopped working). 

We will still work toward fixing this, but the deployment to stable may be delayed while we get to a stable solution. 
Project Member

Comment 54 by bugdroid1@chromium.org, Aug 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/bluez/+/533d756c4dd407b36027968067ad459399695f1b

commit 533d756c4dd407b36027968067ad459399695f1b
Author: Bernie Thompson <bhthompson@chromium.org>
Date: Thu Aug 02 20:53:31 2018

Revert "CHROMIUM: Merge eir_uuids into uuids"

This reverts commit 6f62d1461e02a6911bb3a687d9cf71cb6957f5c7.

Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=870011

Original change's description:
> CHROMIUM: Merge eir_uuids into uuids
>
> This is a reland of crrev.com/c/1102670.
>
> crrev.com/c/1102670 merges eir_uuids into uuids. Due to the check of
> duplicate uuids during profile probing, service uuids in eir are not
> probed. As a result, those profiles become unavailable and cause
> disconnection after pairing.
>
> As profile probing involves only internal state lookup in BlueZ, we
> can fix the issue by removing the duplicate uuid check. The only cost is
> a few more CPU cycles.
>
> BUG= chromium:853037 ,  chromium:841041 
> TEST=Verify that the missing service UUID bug is no longer reproducible
>      and no regression on connection is introduced
> Change-Id: Icef35a24f2ebf290fc56482cdfcc96debee54482
> Reviewed-on: https://chromium-review.googlesource.com/1148901
> Commit-Ready: Qiyu Hu <qiyuh@google.com>
> Tested-by: Qiyu Hu <qiyuh@google.com>
> Reviewed-by: Miao-chen Chou <mcchou@chromium.org>

Bug:  chromium:853037 ,  chromium:841041 
Change-Id: I9f67e553288e9e72304202e8cb9d43d7985cebd9
Reviewed-on: https://chromium-review.googlesource.com/1159832
Commit-Ready: Bernie Thompson <bhthompson@chromium.org>
Tested-by: Bernie Thompson <bhthompson@chromium.org>
Reviewed-by: Bernie Thompson <bhthompson@chromium.org>

[modify] https://crrev.com/533d756c4dd407b36027968067ad459399695f1b/src/device.h
[modify] https://crrev.com/533d756c4dd407b36027968067ad459399695f1b/src/adapter.c
[modify] https://crrev.com/533d756c4dd407b36027968067ad459399695f1b/src/device.c

Cc: pbath...@chromium.org harpreet@chromium.org
Project Member

Comment 56 by bugdroid1@chromium.org, Aug 8

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/bluez/+/7e730a02ca9e04ef673a54cf7cf0b366bf4a64b3

commit 7e730a02ca9e04ef673a54cf7cf0b366bf4a64b3
Author: Qiyu Hu <qiyuh@google.com>
Date: Wed Aug 08 01:09:06 2018

CHROMIUM: Change the semantic of UUIDs property in device

Keep the list of eir_uuids in property "UUID".
Avoid removing eir_uuids after service discovery.

So the semantic of UUIDs property in device changes in the following way:

1. Without this patch, UUIDs contains eir uuids only before service
   discovery. After service discovery, UUIDs contains service UUIDs BlueZ
   discovers.
2. With this patch, UUIDs contains eir uuids only before service
   discovery. After service discovery, UUIDs continas service UUIDs and
   eir_uuids.

BUG= chromium:853037 ,  chromium:841041 ,  chromium:870011 
TEST=Verify that the missing service UUIDs bug is no longer reproducible
     Pair and connect w/ baiscally all peripherals @pbathini can provide

Change-Id: Ifa2fcb4e074d8de10b6ed6902c36d451ebbea359
Reviewed-on: https://chromium-review.googlesource.com/1161543
Commit-Ready: Qiyu Hu <qiyuh@google.com>
Tested-by: Qiyu Hu <qiyuh@google.com>
Reviewed-by: Miao-chen Chou <mcchou@chromium.org>

[modify] https://crrev.com/7e730a02ca9e04ef673a54cf7cf0b366bf4a64b3/src/device.c
[modify] https://crrev.com/7e730a02ca9e04ef673a54cf7cf0b366bf4a64b3/doc/device-api.txt

Labels: Merge-Request-69
Project Member

Comment 58 by sheriffbot@chromium.org, Aug 8

Labels: -Merge-Request-69 Merge-Review-69 Hotlist-Merge-Review
This bug requires manual review: M69 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: amineer@(Android), kariahda@(iOS), cindyb@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Owner: qiyuh@chromium.org
qiyuh@ - is there any more work to be done on this bug? If not, please mark it as fixed so pbathini@ can help test/verify it.

Thanks
Need a merge back to 69, after pbathini@ verifies things still work.
FYI, this bug is still occurring in beta build 69.0.3497.35 (on Samsung Chromebook Pro)
Yup. Unfortunately I never got the approval to merge the fix on 69.
Status: Fixed (was: Assigned)
Could this fix still make it into 69 in a future build?  Thanks, btw.
I checked on 10971.0.0 build on eve and was able to pair , connect and use below devices

1.Bose AE2 headphones
2.Designer Mouse
3.Dell BT keyboard
4.Arteck BT 3.0 keyboard
5.Microsoft Universal Kb
6.Logitech M535 BT mouse
7.66 BTS headphones
8.HM 1200 headphones
qiyuh@ - you can proceed with the merge.
This bug is still reproducible in today's beta release 69.0.3497.58 (See attached screenshots).  Has the merged occurred?  
Screenshot 2018-08-24 at 9.27.21 AM.png
78.7 KB View Download
Screenshot 2018-08-24 at 9.28.33 AM.png
66.7 KB View Download
Owner: cindyb@chromium.org
@cindyb, could you help take a look at our merge request to 69 for this one?
Do we know if the fix was either
- not merged into the beta 69.0.3497.58 
or
- merged, and did not fix the issue ?
Nope. It's not merged yet.
Thank you, @qiyuh . Appears to still not be merged as of this morning's beta release  69.0.3497.73
Labels: -Merge-Review-69 Merge-Approved-69
Appears to have been merged, updating labels for M69.
Project Member

Comment 73 by sheriffbot@chromium.org, Sep 10

This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
This fix does not appear to be merged as of today's 69.0.3497.87 beta release.  The bug is still reproducible for me on a Samsung Chromebook Pro.  
Project Member

Comment 75 by bugdroid1@chromium.org, Sep 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/bluez/+/7950443b86cf0ef89a2473b62206fea68df8fae3

commit 7950443b86cf0ef89a2473b62206fea68df8fae3
Author: Qiyu Hu <qiyuh@google.com>
Date: Mon Sep 10 23:09:19 2018

CHROMIUM: Change the semantic of UUIDs property in device

Keep the list of eir_uuids in property "UUID".
Avoid removing eir_uuids after service discovery.

So the semantic of UUIDs property in device changes in the following way:

1. Without this patch, UUIDs contains eir uuids only before service
   discovery. After service discovery, UUIDs contains service UUIDs BlueZ
   discovers.
2. With this patch, UUIDs contains eir uuids only before service
   discovery. After service discovery, UUIDs continas service UUIDs and
   eir_uuids.

BUG= chromium:853037 ,  chromium:841041 ,  chromium:870011 
TEST=Verify that the missing service UUIDs bug is no longer reproducible
     Pair and connect w/ baiscally all peripherals @pbathini can provide

Change-Id: Ifa2fcb4e074d8de10b6ed6902c36d451ebbea359
Reviewed-on: https://chromium-review.googlesource.com/1161543
Commit-Ready: Qiyu Hu <qiyuh@google.com>
Tested-by: Qiyu Hu <qiyuh@google.com>
Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
(cherry picked from commit 7e730a02ca9e04ef673a54cf7cf0b366bf4a64b3)
Reviewed-on: https://chromium-review.googlesource.com/1216748
Commit-Queue: Qiyu Hu <qiyuh@google.com>
Reviewed-by: Sonny Sasaka <sonnysasaka@chromium.org>

[modify] https://crrev.com/7950443b86cf0ef89a2473b62206fea68df8fae3/src/device.c
[modify] https://crrev.com/7950443b86cf0ef89a2473b62206fea68df8fae3/doc/device-api.txt

Thank you!

Sign in to add a comment