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

Issue 610960 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: May 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

GATT service objects disabled in Bluez 5.39

Project Member Reported by beaufort...@gmail.com, May 11 2016

Issue description

Google Chrome	52.0.2727.0 (Official Build) canary (32-bit)
Revision	99526c41079e7de62a26a9c2cb9619a78f4df60a-refs/heads/master@{#392210}
Platform	8302.0.0 (Official Build) canary-channel veyron_minnie

What steps will reproduce the problem?
1. Open Chrome OS Shell with [Ctrl] + [Alt] + T
2. Enter bt_console
3. Scan for nearby BLE devices, connect to one
4. Enter list-attributes

What is the expected result?
I should get the list of all services/characteristics/descriptors

What happens instead of that?
I get nothing

I think this is due to the fact even though we make GattService object non experimental in https://chromium.googlesource.com/chromiumos/third_party/bluez/+/ceee66d29c9733a3ed29e9a943b85b29de621c35%5E%21/#F0, it is disabled no matter what with http://git.kernel.org/cgit/bluetooth/bluez.git/commit/?id=8e493e8416e5525042b8b4a34eb2b7084725438b (in BlueZ 5.39)

The fix would be to apply a patch that reverts http://git.kernel.org/cgit/bluetooth/bluez.git/commit/?id=8e493e8416e5525042b8b4a34eb2b7084725438b

For info, in about:system, I'm seeing this error:
2016-05-11T09:05:14.798878+02:00 INFO bluetoothd[1669]: GATT service objects disabled



UserAgentString: Mozilla/5.0 (X11; CrOS armv7l 8302.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2727.0 Safari/537.36



 

Comment 1 by mcchou@chromium.org, May 11 2016

Cc: r...@chromium.org puthik@chromium.org ortuno@chromium.org josephsih@chromium.org snanda@chromium.org
Components: OS>Systems>Bluetooth
Labels: -Pri-3 M-52 Pri-2
Owner: mcchou@chromium.org
Status: Assigned (was: Unconfirmed)

Comment 2 by mcchou@chromium.org, May 11 2016

https://chromium-review.googlesource.com/#/c/344172/ is uploaded for this issue.

Comment 3 by mcchou@chromium.org, May 11 2016

Status: Started (was: Assigned)

Comment 4 by mcchou@chromium.org, May 11 2016

Cc: luiz.von...@intel.com
To enable this either start with -E, probably not recommended since it would enable everything that is experimental no only GATT, or then we need something like this:

diff --git a/src/gatt-client.c b/src/gatt-client.c
index 0cbacca..4819bfe 100644
--- a/src/gatt-client.c
+++ b/src/gatt-client.c
@@ -608,21 +608,18 @@ static DBusMessage *descriptor_write_value(DBusConnection *conn,
 }
 
 static const GDBusPropertyTable descriptor_properties[] = {
-	{ "UUID", "s", descriptor_get_uuid, NULL, NULL,
-					G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
-	{ "Characteristic", "o", descriptor_get_characteristic, NULL, NULL,
-					G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
-	{ "Value", "ay", descriptor_get_value, NULL, descriptor_value_exists,
-					G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
+	{ "UUID", "s", descriptor_get_uuid, NULL, NULL },
+	{ "Characteristic", "o", descriptor_get_characteristic, NULL, NULL },
+	{ "Value", "ay", descriptor_get_value, NULL, descriptor_value_exists },
 	{ }
 };
 
 static const GDBusMethodTable descriptor_methods[] = {
-	{ GDBUS_EXPERIMENTAL_ASYNC_METHOD("ReadValue",
+	{ GDBUS_ASYNC_METHOD("ReadValue",
 					GDBUS_ARGS({ "options", "a{sv}" }),
 					GDBUS_ARGS({ "value", "ay" }),
 					descriptor_read_value) },
-	{ GDBUS_EXPERIMENTAL_ASYNC_METHOD("WriteValue",
+	{ GDBUS_ASYNC_METHOD("WriteValue",
 					GDBUS_ARGS({ "value", "ay" },
 						{ "options", "a{sv}" }),
 					NULL,
@@ -1284,34 +1281,29 @@ static DBusMessage *characteristic_stop_notify(DBusConnection *conn,
 }
 
 static const GDBusPropertyTable characteristic_properties[] = {
-	{ "UUID", "s", characteristic_get_uuid, NULL, NULL,
-					G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
-	{ "Service", "o", characteristic_get_service, NULL, NULL,
-					G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
+	{ "UUID", "s", characteristic_get_uuid, NULL, NULL },
+	{ "Service", "o", characteristic_get_service, NULL, NULL },
 	{ "Value", "ay", characteristic_get_value, NULL,
-					characteristic_value_exists,
-					G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
+					characteristic_value_exists },
 	{ "Notifying", "b", characteristic_get_notifying, NULL,
-					characteristic_notifying_exists,
-					G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
-	{ "Flags", "as", characteristic_get_flags, NULL, NULL,
-					G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
+					characteristic_notifying_exists },
+	{ "Flags", "as", characteristic_get_flags, NULL, NULL },
 	{ }
 };
 
 static const GDBusMethodTable characteristic_methods[] = {
-	{ GDBUS_EXPERIMENTAL_ASYNC_METHOD("ReadValue",
+	{ GDBUS_ASYNC_METHOD("ReadValue",
 					GDBUS_ARGS({ "options", "a{sv}" }),
 					GDBUS_ARGS({ "value", "ay" }),
 					characteristic_read_value) },
-	{ GDBUS_EXPERIMENTAL_ASYNC_METHOD("WriteValue",
+	{ GDBUS_ASYNC_METHOD("WriteValue",
 					GDBUS_ARGS({ "value", "ay" },
 						{ "options", "a{sv}" }),
 					NULL,
 					characteristic_write_value) },
-	{ GDBUS_EXPERIMENTAL_ASYNC_METHOD("StartNotify", NULL, NULL,
+	{ GDBUS_ASYNC_METHOD("StartNotify", NULL, NULL,
 					characteristic_start_notify) },
-	{ GDBUS_EXPERIMENTAL_METHOD("StopNotify", NULL, NULL,
+	{ GDBUS_METHOD("StopNotify", NULL, NULL,
 					characteristic_stop_notify) },
 	{ }
 };

Comment 6 by mcchou@chromium.org, May 11 2016

Hello Luiz,

There has been a patch to pull APIs out of experimental at https://chromium.googlesource.com/chromiumos/third_party/bluez/+/250cd1607d370d8b9f1c4383aee08ab11635806a%5E%21/#F0

But http://git.kernel.org/cgit/bluetooth/bluez.git/commit/?id=8e493e8416e5525042b8b4a34eb2b7084725438b still prevents the create of service in GATT client. Therefore, does it make sense to revert the patch in upstream?
Alright, in that case you will need to remove that check, actually this should together in the same patch since otherwise that has no effect as you experienced.
Project Member

Comment 8 by bugdroid1@chromium.org, May 11 2016

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

commit f825f59044d5a77b72d2849e0c5d603dfac33ac0
Author: Miao Chou <mcchou@google.com>
Date: Wed May 11 07:50:06 2016

CHROMIUM: Revert "core/gatt-client: Fix printing errors if experimental is disabled"

This reverts commit 8e493e8416e5525042b8b4a34eb2b7084725438b.

This can prevent the creation of GATT service for the remote device, since the
experimental flag is not enabled in Chromium OS.

BUG= chromium:610960 
TEST=emerge bluez

Change-Id: I9f6bb0cfb765a265c739529bed75898402ab54f8
Reviewed-on: https://chromium-review.googlesource.com/344172
Commit-Ready: Miao-chen Chou <mcchou@chromium.org>
Tested-by: Miao-chen Chou <mcchou@chromium.org>
Reviewed-by: François Beaufort <fbeaufort@chromium.org>
Reviewed-by: Wei-Ning Huang <wnhuang@chromium.org>
Reviewed-by: Rahul Chaturvedi <rkc@chromium.org>
Reviewed-by: Miao-chen Chou <mcchou@chromium.org>

[modify] https://crrev.com/f825f59044d5a77b72d2849e0c5d603dfac33ac0/src/gatt-client.c

Comment 9 by mcchou@chromium.org, May 18 2016

Status: Fixed (was: Started)
Status: Verified (was: Fixed)
Project Member

Comment 11 by bugdroid1@chromium.org, Oct 4 2016

Labels: merge-merged-chromeos-5.41
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/bluez/+/7cada962405b389589dd2340dde53fac4f4c0640

commit 7cada962405b389589dd2340dde53fac4f4c0640
Author: Miao Chou <mcchou@google.com>
Date: Wed May 11 07:50:06 2016

CHROMIUM: Revert "core/gatt-client: Fix printing errors if experimental is disabled"

This reverts commit 8e493e8416e5525042b8b4a34eb2b7084725438b.

This can prevent the creation of GATT service for the remote device, since the
experimental flag is not enabled in Chromium OS.

BUG= chromium:610960 
TEST=emerge bluez

Old-Change-Id: I9f6bb0cfb765a265c739529bed75898402ab54f8
Change-Id: Ia88fa05a3d5eae204741767969c9130aec863ffa
Reviewed-on: https://chromium-review.googlesource.com/391348
Reviewed-by: Shyh-In Hwang <josephsih@chromium.org>
Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
Commit-Queue: Miao-chen Chou <mcchou@chromium.org>
Tested-by: Miao-chen Chou <mcchou@chromium.org>
Trybot-Ready: Miao-chen Chou <mcchou@chromium.org>

[modify] https://crrev.com/7cada962405b389589dd2340dde53fac4f4c0640/src/gatt-client.c

Sign in to add a comment