Linux bluetooth development
 help / color / mirror / Atom feed
* [PATCH RESEND] shared/asha: send STOP without waiting for a response
@ 2026-10-28 13:30 Kyle Pepper
  2026-10-28 16:02 ` [RESEND] " bluez.test.bot
  2026-11-07  1:24 ` [PATCH BlueZ v2] shared/asha: Send STOP without " Kyle Pepper
  0 siblings, 2 replies; 5+ messages in thread
From: Kyle Pepper @ 2026-10-28 13:30 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Marcel Holtmann, Luiz Augusto von Dentz

STOP resets local state without consuming the ATT response. Use a Write
Command so an unresponsive renderer does not hold the request queue
until timeout.

Test command semantics, failure handling and peer STATUS notification.

Fixes: 9948168cca15 ("shared/asha: Don't wait for status notification on stop")
Assisted-by: OpenCode:gpt-6.1-sol
---
Resending unchanged after automated CI PR2664 expiry; no source changes.
Previous submission: https://lore.kernel.org/linux-bluetooth/20261013034345.513789-1-cochcoder@proton.me/
Earlier remote functional, lowercase checkpatch, Codacy Security Scan and
outer-CI failures remain unresolved. Historical local passes do not
establish remote success; no new hardware or functional test is claimed.

Submission review notes (not part of the commit message):
Local validation is for base 7428ca2df9356363079db0f48412c20cbdb9471f.
Compatibility with newer upstream tips has not been verified locally.
This topic uses the verified STOP introducing commit as its Fixes tag.
Existing N8 blocking-STOP failure evidence is retained; the new unit test
mocks setup and GATT writes, not hardware or daemon concurrency.

 .gitignore            |  1 +
 Makefile.am           |  6 +++
 src/shared/asha.c     |  5 ++-
 unit/test-asha-stop.c | 97 +++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 107 insertions(+), 2 deletions(-)
 create mode 100644 unit/test-asha-stop.c

diff --git a/.gitignore b/.gitignore
index 06b24735df..8a4195c05a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -112,6 +112,7 @@ unit/test-lib
 unit/test-mgmt
 unit/test-uhid
 unit/test-hfp
+unit/test-asha-stop
 unit/test-crypto
 unit/test-ecc
 unit/test-hog
diff --git a/Makefile.am b/Makefile.am
index f742458d11..6016913145 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -706,6 +706,12 @@ unit_test_avrcp_LDADD = lib/libbluetooth-internal.la \
 
 unit_tests += unit/test-hfp
 
+unit_tests += unit/test-asha-stop
+
+unit_test_asha_stop_SOURCES = unit/test-asha-stop.c
+unit_test_asha_stop_LDADD = src/libshared-glib.la \
+	lib/libbluetooth-internal.la $(GLIB_LIBS)
+
 unit_test_hfp_SOURCES = unit/test-hfp.c
 unit_test_hfp_LDADD = src/libshared-glib.la $(GLIB_LIBS)
 
diff --git a/src/shared/asha.c b/src/shared/asha.c
index 79bb29bf9a..0e6261d37d 100644
--- a/src/shared/asha.c
+++ b/src/shared/asha.c
@@ -284,8 +284,9 @@ unsigned int bt_asha_stop(struct bt_asha *asha)
 
 	asha->state = ASHA_STOPPED;
 
-	ret = asha_send_acp(asha, acp_stop_cmd, sizeof(acp_stop_cmd), NULL,
-			NULL);
+	/* State is reset below without waiting for an ATT response. */
+	ret = asha_send_acp_without_response(asha, acp_stop_cmd,
+			sizeof(acp_stop_cmd));
 	asha_set_send_status(asha, false);
 
 	/* We reset our state without waiting for a response */
diff --git a/unit/test-asha-stop.c b/unit/test-asha-stop.c
new file mode 100644
index 0000000000..5ef6d03623
--- /dev/null
+++ b/unit/test-asha-stop.c
@@ -0,0 +1,97 @@
+// SPDX-License-Identifier: LGPL-2.1-or-later
+#include <assert.h>
+
+/* Source-level mocks remain effective with link-time optimization. */
+#define bt_gatt_client_write_without_response test_write_command
+#define bt_gatt_client_write_value test_write_request
+#include "src/shared/asha.c"
+#undef bt_gatt_client_write_without_response
+#undef bt_gatt_client_write_value
+#include "src/shared/tester.h"
+
+static unsigned int commands, requests, peer_updates;
+static bool command_ok;
+
+void btd_error(uint16_t index, const char *format, ...)
+{
+}
+
+void btd_debug(uint16_t index, const char *format, ...)
+{
+}
+
+unsigned int test_write_command(struct bt_gatt_client *client, uint16_t handle,
+					bool signed_write,
+					const uint8_t *value, uint16_t length)
+{
+	assert(client && handle == 0x79 && !signed_write);
+
+	if (value[0] == 0x02) {
+		assert(length == 1);
+		commands++;
+		return command_ok;
+	}
+
+	assert(length == 2 && value[0] == 0x03 && value[1] == 0x00);
+	peer_updates++;
+	return 1;
+}
+
+unsigned int test_write_request(struct bt_gatt_client *client, uint16_t handle,
+				const uint8_t *value, uint16_t length,
+				bt_gatt_client_callback_t callback, void *data,
+				bt_gatt_client_destroy_func_t destroy)
+{
+	requests++;
+	return 1;
+}
+
+static void state_callback(int status, void *data)
+{
+	assert(false);
+}
+
+static void test_stop(const void *user_data)
+{
+	unsigned int fail;
+
+	for (fail = 0; fail < 2; fail++) {
+		struct bt_asha left = {
+			.client = (void *) 1, .acp_handle = 0x79,
+			.hisyncid = { 1 }, .state = ASHA_STARTED,
+			.state_cb = state_callback, .state_cb_data = (void *) 1,
+		};
+		struct bt_asha right = {
+			.client = (void *) 2, .acp_handle = 0x79,
+			.hisyncid = { 1 }, .right_side = true,
+			.state = ASHA_STARTED,
+		};
+
+		asha_devices = queue_new();
+		update_asha_set(&left, true);
+		update_asha_set(&right, true);
+		commands = requests = peer_updates = 0;
+		command_ok = !fail;
+		assert(bt_asha_stop(&left) == (fail ? (unsigned int) -1 : 0));
+		assert(commands == 1 && requests == 0 && peer_updates == 1);
+		assert(left.state == ASHA_STOPPED);
+		assert(right.state == ASHA_STARTED);
+		assert(!left.state_cb && !left.state_cb_data);
+
+		/* Repeated stop must not send another control command. */
+		assert(bt_asha_stop(&left) == 0);
+		assert(commands == 1 && requests == 0 && peer_updates == 1);
+		update_asha_set(&left, false);
+		update_asha_set(&right, false);
+		assert(!asha_devices);
+	}
+
+	tester_test_passed();
+}
+
+int main(int argc, char *argv[])
+{
+	tester_init(&argc, &argv);
+	tester_add("ASHA/stop/command", NULL, NULL, test_stop, NULL);
+	return tester_run();
+}

base-commit: 7428ca2df9356363079db0f48412c20cbdb9471f


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* RE: [RESEND] shared/asha: send STOP without waiting for a response
  2026-10-28 13:30 [PATCH RESEND] shared/asha: send STOP without waiting for a response Kyle Pepper
@ 2026-10-28 16:02 ` bluez.test.bot
  2026-11-07  1:24 ` [PATCH BlueZ v2] shared/asha: Send STOP without " Kyle Pepper
  1 sibling, 0 replies; 5+ messages in thread
From: bluez.test.bot @ 2026-10-28 16:02 UTC (permalink / raw)
  To: linux-bluetooth, cochcoder

[-- Attachment #1: Type: text/plain, Size: 1020 bytes --]

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/series/1195450/

---Test result---

Test Summary:
CheckPatch                    PASS      0.38 seconds
GitLint                       PASS      0.25 seconds
BuildEll                      PASS      13.56 seconds
BluezMake                     PASS      187.44 seconds
MakeCheck                     PASS      13.32 seconds
MakeDistcheck                 PASS      106.43 seconds
CheckValgrind                 PASS      170.71 seconds
CheckSmatch                   PASS      187.28 seconds
bluezmakeextell               PASS      68.42 seconds
TestFunctional                PASS      862.10 seconds
IncrementalBuild              PASS      184.77 seconds
ScanBuild                     PASS      639.15 seconds



https://github.com/bluez/bluez/pull/2727

---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH BlueZ v2] shared/asha: Send STOP without a response
  2026-10-28 13:30 [PATCH RESEND] shared/asha: send STOP without waiting for a response Kyle Pepper
  2026-10-28 16:02 ` [RESEND] " bluez.test.bot
@ 2026-11-07  1:24 ` Kyle Pepper
  2026-11-07  2:52   ` [BlueZ,v2] " bluez.test.bot
  2026-11-10 22:00   ` [PATCH BlueZ v2] " patchwork-bot+bluetooth
  1 sibling, 2 replies; 5+ messages in thread
From: Kyle Pepper @ 2026-11-07  1:24 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: marcel, luiz.dentz

Avoid leaving a STOP Write Request pending after local state has been
reset. Send a Write Command using the existing helper instead.

ASHA specifies Write with response for STOP; this changes that procedure
and needs renderer STOP/restart validation.

Fixes: 9948168cca15 ("shared/asha: Don't wait for status notification on stop")
Assisted-by: OpenCode:gpt-6.1-sol
Assisted-by: Codex:gpt-6
---
v2: Drop the standalone mock test and redundant state-reset comment.
Keep the unchanged regression harness as local evidence.
Previous submission: https://lore.kernel.org/linux-bluetooth/20261028133034.261833-1-cochcoder@proton.me/

The ASHA AudioControlPoint table specifies Write with response for STOP.
Maintainer agreement on this deviation and renderer STOP/restart evidence
remain open. The local mock cannot establish protocol interoperability.
https://source.android.com/docs/core/connect/bluetooth/asha#AudioControlPoint

Pristine source fails the expected local mock assertion. Sent and reduced
source pass; reduced source also passes ASan/UBSan and LTO. Full make check
was not rerun: the preceding baseline review reproduced an SDP linker
failure. No new hardware, remote CI or acceptance result is claimed.

 src/shared/asha.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/shared/asha.c b/src/shared/asha.c
index 79bb29bf9a..f1edc06444 100644
--- a/src/shared/asha.c
+++ b/src/shared/asha.c
@@ -284,8 +284,8 @@ unsigned int bt_asha_stop(struct bt_asha *asha)
 
 	asha->state = ASHA_STOPPED;
 
-	ret = asha_send_acp(asha, acp_stop_cmd, sizeof(acp_stop_cmd), NULL,
-			NULL);
+	ret = asha_send_acp_without_response(asha, acp_stop_cmd,
+					     sizeof(acp_stop_cmd));
 	asha_set_send_status(asha, false);
 
 	/* We reset our state without waiting for a response */

base-commit: a8067198717b38391ca183ed7f41a69ec4b81b6e
-- 
2.56.0



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* RE: [BlueZ,v2] shared/asha: Send STOP without a response
  2026-11-07  1:24 ` [PATCH BlueZ v2] shared/asha: Send STOP without " Kyle Pepper
@ 2026-11-07  2:52   ` bluez.test.bot
  2026-11-10 22:00   ` [PATCH BlueZ v2] " patchwork-bot+bluetooth
  1 sibling, 0 replies; 5+ messages in thread
From: bluez.test.bot @ 2026-11-07  2:52 UTC (permalink / raw)
  To: linux-bluetooth, cochcoder

[-- Attachment #1: Type: text/plain, Size: 54309 bytes --]

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/series/1204669/

---Test result---

Test Summary:
CheckPatch                    PASS      0.45 seconds
GitLint                       PASS      0.34 seconds
BuildEll                      PASS      20.69 seconds
BluezMake                     PASS      308.36 seconds
CheckSmatch                   PASS      305.59 seconds
bluezmakeextell               PASS      99.24 seconds
TestFunctional                FAIL      1256.59 seconds
IncrementalBuild              PASS      314.33 seconds
ScanBuild                     PASS      1175.58 seconds

Details
##############################
Test: TestFunctional - FAIL
Desc: Run test-functional
Output:
FAIL functional.test_bearer::test_bearer_le_conn_update[hosts14-vm2]: failed on teardown with "pytest_bluezenv.plugin.CoredumpWarning: Core dump: test-bluezenv-hosts14.1-bluetoothd-1794018178-189.core
        /usr/bin/gdb: warning: Couldn't determine a path for the index cache directory.
        [New LWP 189]
        [Thread debugging using libthread_db enabled]
        Using host libthread_db library "/usr/lib/x86_64-linux-gnu/libthread_db.so.1".
        Core was generated by `/home/runner/work/bluez/bluez/src/src/src/bluetoothd --nodetach -f /run/bluetoo'.
        Program terminated with signal SIGABRT, Aborted.
        #0  __pthread_kill_implementation (threadid=<optimized out>, signo=6, no_tid=0) at ./nptl/pthread_kill.c:44

        warning: 44	./nptl/pthread_kill.c: No such file or directory

        Thread 1 (Thread 0x7f775941b900 (LWP 189)):
        #0  __pthread_kill_implementation (threadid=<optimized out>, signo=6, no_tid=0) at ./nptl/pthread_kill.c:44
                tid = <optimized out>
                ret = 0
                pd = <optimized out>
                old_mask = {__val = {4412750543122677053}}
                ret = <optimized out>
        #1  __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:89
        No locals.
        #2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:100
        No locals.
        #3  0x00007f7759b76b7e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
                ret = <optimized out>
        #4  0x00007f7759b598ec in __GI_abort () at ./stdlib/abort.c:77
                act = {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 0x0}, sa_mask = {__val = {0, 135752491994784, 15224130631632757760, 140730258337728, 140730258338016, 140730258337872, 22, 140150579932112, 0, 140730258337808, 140150596777494, 140150571020288, 4096, 0, 15224130631632757760, 140150571270168}}, sa_flags = 1525293056, sa_restorer = 0x16}
        #5  0x00007f775a781a0f in __sanitizer::Abort () at ../../../../src/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp:165
        No locals.
        #6  0x00007f775a8a7c2d in __sanitizer::Die () at ../../../../src/libsanitizer/sanitizer_common/sanitizer_termination.cpp:58
        No locals.
        #7  0x00007f775a87c93c in __asan::ScopedInErrorReport::~ScopedInErrorReport (this=0x7ffe510eb186) at ../../../../src/libsanitizer/asan/asan_report.cpp:221
                buffer_copy = {buffer_ = {<__sanitizer::InternalMmapVectorNoCtor<char, false>> = {data_ = 0x7b77536e6000 '=' <repeats 65 times>, "\n==189==ERROR: AddressSanitizer: heap-use-after-free on address 0x7c87588e1720 at pc 0x562a8a5c9bed bp 0x7ffe510ebe00 sp 0x7ffe510ebdf0"..., capacity_bytes_ = 8192, size_ = 4282}, <No data fields>}}
                buffer_copy = <optimized out>
                l = <optimized out>
        #8  0x00007f775a87be02 in __asan::ReportGenericError (pc=94740709940205, bp=140730258341376, sp=sp@entry=140730258341360, addr=136920748136224, is_write=is_write@entry=false, access_size=8, fatal=true, exp=<optimized out>) at ../../../../src/libsanitizer/asan/asan_report.cpp:536
                in_report = {error_report_lock_ = {<No data fields>}, static current_error_ = {kind = __asan::kErrorKindGeneric, {Base = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, DeadlySignal = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, signal = {siginfo = 0xd346fa2600000002, context = 0x7c87588e1720, addr = 0, pc = 0, sp = 6154688135624, bp = 136920748136224, is_memory_access = 96, write_flag = __sanitizer::SignalContext::Unknown, is_true_faulting_addr = 192}}, DoubleFree = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, second_free_stack = 0xd346fa2600000002, addr_description = {addr = 136920748136224, alloc_tid = 0, free_tid = 0, alloc_stack_id = 456, free_stack_id = 1433, chunk_access = {bad_addr = 136920748136224, offset = 96, chunk_begin = 136920748136128, chunk_size = 232, user_requested_alignment = 8, access_type = 2, alloc_type = 1}}}, NewDeleteTypeMismatch = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, free_stack = 0xd346fa2600000002, addr_description = {addr = 136920748136224, alloc_tid = 0, free_tid = 0, alloc_stack_id = 456, free_stack_id = 1433, chunk_access = {bad_addr = 136920748136224, offset = 96, chunk_begin = 136920748136128, chunk_size = 232, user_requested_alignment = 8, access_type = 2, alloc_type = 1}}, delete_size = 140150568933808, delete_alignment = 140730258339472}, FreeNotMalloced = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, free_stack = 0xd346fa2600000002, addr_description = {data = {kind = 1485707040, {shadow = {addr = 0, kind = __asan::kShadowKindLow, shadow_byte = 0 '\000'}, heap = {addr = 0, alloc_tid = 0, free_tid = 6154688135624, alloc_stack_id = 1485707040, free_stack_id = 31879, chunk_access = {bad_addr = 96, offset = 136920748136128, chunk_begin = 232, chunk_size = 140728898445320, user_requested_alignment = 2480, access_type = 1, alloc_type = 1}}, stack = {addr = 0, tid = 0, offset = 6154688135624, frame_pc = 136920748136224, access_size = 96, frame_descr = 0x7c87588e16c0 "\231\005"}, global = {addr = 0, static kMaxGlobals = 4, globals = {{beg = 0, size = 6154688135624, size_with_redzone = 136920748136224, name = 0x60 <error: Cannot access memory at address 0x60>, module_name = 0x7c87588e16c0 "\231\005", has_dynamic_init = 232, gcc_location = 0x7ffe00006008, odr_indicator = 140150568933808}, {beg = 140730258339472, size = 2, size_with_redzone = 140150597345216, name = 0x7c57588e0b90 "\003\021", module_name = 0x7ffe510eb660 "\260\276\016Q\376\177", has_dynamic_init = 140150595696440, gcc_location = 0xa0, odr_indicator = 136714589703056}, {beg = 140150571421904, size = 140730258339456, size_with_redzone = 136714589703072, name = 0x562a8a4de590 <device_free> "\363\017\036\372USH\211\373H\203\354\030H\205\377\017\204-\n", module_name = 0x7ffe510ebf90 "", has_dynamic_init = 135752497090912, gcc_location = 0x7ffe510ebeb0, odr_indicator = 140150596625345}, {beg = 140730258339456, size = 130355885698, size_with_redzone = 140730258339472, name = 0x2 <error: Cannot access memory at address 0x2>, module_name = 0x7f775a86e400 <___interceptor_free(void*)+176> "D\213\215\314\367\377\377E\205\311t4H\211m\330A\203\371\001tzE\017\276\3061\311H\211\352H\211\306H\215\275\320\367\377\377\3502\026\001", has_dynamic_init = 94740708888200, gcc_location = 0x7ffe510ebe90, odr_indicator = 140730258341280}}, reg_sites = {1507073504, 32631, 1505897315, 32631}, access_size = 1, size = 237 '\355'}, wild = {addr = 0, access_size = 0}}}}}, AllocTypeMismatch = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, dealloc_stack = 0xd346fa2600000002, alloc_type = 1485707040, dealloc_type = 31879, addr_description = {data = {kind = __asan::kAddressKindWild, {shadow = {addr = 0, kind = (unknown: 0xc8), shadow_byte = 1 '\001'}, heap = {addr = 0, alloc_tid = 6154688135624, free_tid = 136920748136224, alloc_stack_id = 96, free_stack_id = 0, chunk_access = {bad_addr = 136920748136128, offset = 232, chunk_begin = 140728898445320, chunk_size = 140150568933808, user_requested_alignment = 1680, access_type = 3, alloc_type = 2}}, stack = {addr = 0, tid = 6154688135624, offset = 136920748136224, frame_pc = 96, access_size = 136920748136128, frame_descr = 0xe8 <error: Cannot access memory at address 0xe8>}, global = {addr = 0, static kMaxGlobals = 4, globals = {{beg = 6154688135624, size = 136920748136224, size_with_redzone = 96, name = 0x7c87588e16c0 "\231\005", module_name = 0xe8 <error: Cannot access memory at address 0xe8>, has_dynamic_init = 140728898445320, gcc_location = 0x7f7758e059b0, odr_indicator = 140730258339472}, {beg = 2, size = 140150597345216, size_with_redzone = 136714589703056, name = 0x7ffe510eb660 "\260\276\016Q\376\177", module_name = 0x7f775a78b738 <__sanitizer::Quarantine<__asan::QuarantineCallback, __asan::AsanChunk>::Put(__sanitizer::QuarantineCache<__asan::QuarantineCallback>*, __asan::QuarantineCallback, __asan::AsanChunk*, unsigned long)+248> "H\203;", has_dynamic_init = 160, gcc_location = 0x7c57588e0b90, odr_indicator = 140150571421904}, {beg = 140730258339456, size = 136714589703072, size_with_redzone = 94740708976016, name = 0x7ffe510ebf90 "", module_name = 0x7b77575dd160 "pU\216X\347{", has_dynamic_init = 140730258341552, gcc_location = 0x7f775a86e3c1 <___interceptor_free(void*)+113>, odr_indicator = 140730258339456}, {beg = 130355885698, size = 140730258339472, size_with_redzone = 2, name = 0x7f775a86e400 <___interceptor_free(void*)+176> "D\213\215\314\367\377\377E\205\311t4H\211m\330A\203\371\001tzE\017\276\3061\311H\211\352H\211\306H\215\275\320\367\377\377\3502\026\001", module_name = 0x562a8a4c8e88 <gatt_server_cleanup+200> "H\205\333t{\366\303\auvH\211\350H\301\350\003\200\270", has_dynamic_init = 140730258341520, gcc_location = 0x7ffe510ebda0, odr_indicator = 140150584909280}}, reg_sites = {1505897315, 32631, 1, 0}, access_size = 94740709940205, size = 0 '\000'}, wild = {addr = 0, access_size = 6154688135624}}}}}, MallocUsableSizeNotOwned = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, stack = 0xd346fa2600000002, addr_description = {data = {kind = 1485707040, {shadow = {addr = 0, kind = __asan::kShadowKindLow, shadow_byte = 0 '\000'}, heap = {addr = 0, alloc_tid = 0, free_tid = 6154688135624, alloc_stack_id = 1485707040, free_stack_id = 31879, chunk_access = {bad_addr = 96, offset = 136920748136128, chunk_begin = 232, chunk_size = 140728898445320, user_requested_alignment = 2480, access_type = 1, alloc_type = 1}}, stack = {addr = 0, tid = 0, offset = 6154688135624, frame_pc = 136920748136224, access_size = 96, frame_descr = 0x7c87588e16c0 "\231\005"}, global = {addr = 0, static kMaxGlobals = 4, globals = {{beg = 0, size = 6154688135624, size_with_redzone = 136920748136224, name = 0x60 <error: Cannot access memory at address 0x60>, module_name = 0x7c87588e16c0 "\231\005", has_dynamic_init = 232, gcc_location = 0x7ffe00006008, odr_indicator = 140150568933808}, {beg = 140730258339472, size = 2, size_with_redzone = 140150597345216, name = 0x7c57588e0b90 "\003\021", module_name = 0x7ffe510eb660 "\260\276\016Q\376\177", has_dynamic_init = 140150595696440, gcc_location = 0xa0, odr_indicator = 136714589703056}, {beg = 140150571421904, size = 140730258339456, size_with_redzone = 136714589703072, name = 0x562a8a4de590 <device_free> "\363\017\036\372USH\211\373H\203\354\030H\205\377\017\204-\n", module_name = 0x7ffe510ebf90 "", has_dynamic_init = 135752497090912, gcc_location = 0x7ffe510ebeb0, odr_indicator = 140150596625345}, {beg = 140730258339456, size = 130355885698, size_with_redzone = 140730258339472, name = 0x2 <error: Cannot access memory at address 0x2>, module_name = 0x7f775a86e400 <___interceptor_free(void*)+176> "D\213\215\314\367\377\377E\205\311t4H\211m\330A\203\371\001tzE\017\276\3061\311H\211\352H\211\306H\215\275\320\367\377\377\3502\026\001", has_dynamic_init = 94740708888200, gcc_location = 0x7ffe510ebe90, odr_indicator = 140730258341280}}, reg_sites = {1507073504, 32631, 1505897315, 32631}, access_size = 1, size = 237 '\355'}, wild = {addr = 0, access_size = 0}}}}}, SanitizerGetAllocatedSizeNotOwned = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, stack = 0xd346fa2600000002, addr_description = {data = {kind = 1485707040, {shadow = {addr = 0, kind = __asan::kShadowKindLow, shadow_byte = 0 '\000'}, heap = {addr = 0, alloc_tid = 0, free_tid = 6154688135624, alloc_stack_id = 1485707040, free_stack_id = 31879, chunk_access = {bad_addr = 96, offset = 136920748136128, chunk_begin = 232, chunk_size = 140728898445320, user_requested_alignment = 2480, access_type = 1, alloc_type = 1}}, stack = {addr = 0, tid = 0, offset = 6154688135624, frame_pc = 136920748136224, access_size = 96, frame_descr = 0x7c87588e16c0 "\231\005"}, global = {addr = 0, static kMaxGlobals = 4, globals = {{beg = 0, size = 6154688135624, size_with_redzone = 136920748136224, name = 0x60 <error: Cannot access memory at address 0x60>, module_name = 0x7c87588e16c0 "\231\005", has_dynamic_init = 232, gcc_location = 0x7ffe00006008, odr_indicator = 140150568933808}, {beg = 140730258339472, size = 2, size_with_redzone = 140150597345216, name = 0x7c57588e0b90 "\003\021", module_name = 0x7ffe510eb660 "\260\276\016Q\376\177", has_dynamic_init = 140150595696440, gcc_location = 0xa0, odr_indicator = 136714589703056}, {beg = 140150571421904, size = 140730258339456, size_with_redzone = 136714589703072, name = 0x562a8a4de590 <device_free> "\363\017\036\372USH\211\373H\203\354\030H\205\377\017\204-\n", module_name = 0x7ffe510ebf90 "", has_dynamic_init = 135752497090912, gcc_location = 0x7ffe510ebeb0, odr_indicator = 140150596625345}, {beg = 140730258339456, size = 130355885698, size_with_redzone = 140730258339472, name = 0x2 <error: Cannot access memory at address 0x2>, module_name = 0x7f775a86e400 <___interceptor_free(void*)+176> "D\213\215\314\367\377\377E\205\311t4H\211m\330A\203\371\001tzE\017\276\3061\311H\211\352H\211\306H\215\275\320\367\377\377\3502\026\001", has_dynamic_init = 94740708888200, gcc_location = 0x7ffe510ebe90, odr_indicator = 140730258341280}}, reg_sites = {1507073504, 32631, 1505897315, 32631}, access_size = 1, size = 237 '\355'}, wild = {addr = 0, access_size = 0}}}}}, CallocOverflow = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, stack = 0xd346fa2600000002, count = 136920748136224, size = 0}, ReallocArrayOverflow = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, stack = 0xd346fa2600000002, count = 136920748136224, size = 0}, PvallocOverflow = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, stack = 0xd346fa2600000002, size = 136920748136224}, InvalidAllocationAlignment = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, stack = 0xd346fa2600000002, alignment = 136920748136224}, InvalidAlignedAllocAlignment = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, stack = 0xd346fa2600000002, size = 136920748136224, alignment = 0}, InvalidPosixMemalignAlignment = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, stack = 0xd346fa2600000002, alignment = 136920748136224}, AllocationSizeTooBig = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, stack = 0xd346fa2600000002, user_size = 136920748136224, total_size = 0, max_size = 0}, RssLimitExceeded = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, stack = 0xd346fa2600000002}, OutOfMemory = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, stack = 0xd346fa2600000002, requested_size = 136920748136224}, StringFunctionMemoryRangesOverlap = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, stack = 0xd346fa2600000002, length1 = 136920748136224, length2 = 0, addr1_description = {data = {kind = __asan::kAddressKindWild, {shadow = {addr = 6154688135624, kind = (unknown: 0x20), shadow_byte = 23 '\027'}, heap = {addr = 6154688135624, alloc_tid = 136920748136224, free_tid = 96, alloc_stack_id = 1485706944, free_stack_id = 31879, chunk_access = {bad_addr = 232, offset = 140728898445320, chunk_begin = 140150568933808, chunk_size = 140730258339472, user_requested_alignment = 2, access_type = 0, alloc_type = 0}}, stack = {addr = 6154688135624, tid = 136920748136224, offset = 96, frame_pc = 136920748136128, access_size = 232, frame_descr = 0x7ffe00006008 <error: Cannot access memory at address 0x7ffe00006008>}, global = {addr = 6154688135624, static kMaxGlobals = 4, globals = {{beg = 136920748136224, size = 96, size_with_redzone = 136920748136128, name = 0xe8 <error: Cannot access memory at address 0xe8>, module_name = 0x7ffe00006008 <error: Cannot access memory at address 0x7ffe00006008>, has_dynamic_init = 140150568933808, gcc_location = 0x7ffe510eb690, odr_indicator = 2}, {beg = 140150597345216, size = 136714589703056, size_with_redzone = 140730258339424, name = 0x7f775a78b738 <__sanitizer::Quarantine<__asan::QuarantineCallback, __asan::AsanChunk>::Put(__sanitizer::QuarantineCache<__asan::QuarantineCallback>*, __asan::QuarantineCallback, __asan::AsanChunk*, unsigned long)+248> "H\203;", module_name = 0xa0 <error: Cannot access memory at address 0xa0>, has_dynamic_init = 136714589703056, gcc_location = 0x7f77590650d0, odr_indicator = 140730258339456}, {beg = 136714589703072, size = 94740708976016, size_with_redzone = 140730258341776, name = 0x7b77575dd160 "pU\216X\347{", module_name = 0x7ffe510ebeb0 "", has_dynamic_init = 140150596625345, gcc_location = 0x7ffe510eb680, odr_indicator = 130355885698}, {beg = 140730258339472, size = 2, size_with_redzone = 140150596625408, name = 0x562a8a4c8e88 <gatt_server_cleanup+200> "H\205\333t{\366\303\auvH\211\350H\301\350\003\200\270", module_name = 0x7ffe510ebe90 "`\321]Ww{", has_dynamic_init = 140730258341280, gcc_location = 0x7f7759d41de0 <_nl_C_locobj>, odr_indicator = 140150583733091}}, reg_sites = {1, 0, 2321325037, 22058}, access_size = 140730258341376, size = 240 '\360'}, wild = {addr = 6154688135624, access_size = 136920748136224}}}}, addr2_description = {data = {kind = 8, {shadow = {addr = 140150597056407, kind = __asan::kShadowKindLow, shadow_byte = 253 '\375'}, heap = {addr = 140150597056407, alloc_tid = 140730258357504, free_tid = 140730258341016, alloc_stack_id = 144516096, free_stack_id = 3544644134, chunk_access = {bad_addr = 140730258341216, offset = 140150596886397, chunk_begin = 136233553384840, chunk_size = 140150597320568, user_requested_alignment = 4095, access_type = 3, alloc_type = 3}}, stack = {addr = 140150597056407, tid = 140730258357504, offset = 140730258341016, frame_pc = 15224130631632757760, access_size = 140730258341216, frame_descr = 0x7f775a8adf7d <__sanitizer::DTLS_on_tls_get_addr(void*, void*, unsigned long, unsigned long)+125> "I\211\302H\205\300u\035\351\213"}, global = {addr = 140150597056407, static kMaxGlobals = 4, globals = {{beg = 140730258357504, size = 140730258341016, size_with_redzone = 15224130631632757760, name = 0x7ffe510ebd60 "H\024\216Xw|", module_name = 0x7f775a8adf7d <__sanitizer::DTLS_on_tls_get_addr(void*, void*, unsigned long, unsigned long)+125> "I\211\302H\205\300u\035\351\213", has_dynamic_init = 136233553384840, gcc_location = 0x7f775a917f78, odr_indicator = 65535}, {beg = 15224130631632757760, size = 140150575315128, size_with_redzone = 140150597320568, name = 0x7bd7588e7c10 "", module_name = 0x7ffe510ebf90 "", has_dynamic_init = 136164833917920, gcc_location = 0x7bd7588e7c08, odr_indicator = 136164833917968}, {beg = 94740709864628, size = 64, size_with_redzone = 16969062136364, name = 0x7bf7588e1620 "@\024\216Xw|", module_name = 0x7b77575dd200 "\0166\340E", has_dynamic_init = 135889956061648, gcc_location = 0x562a8a5c1472 <bt_att_chan_cancel+402>, odr_indicator = 11}, {beg = 136164833917968, size = 11, size_with_redzone = 94740709906232, name = 0x7c77588e1440 "", module_name = 0x7b77575dd260 "", has_dynamic_init = 16969062136384, gcc_location = 0x7ffe510ebd70, odr_indicator = 136852028658760}}, reg_sites = {1359921040, 32766, 1497479352, 32631}, access_size = 136577150750720, size = 160 '\240'}, wild = {addr = 140150597056407, access_size = 140730258357504}}}}, function = 0x7f775a846359 <___interceptor___tls_get_addr(void*)+89> "L\211\360H\213]\360L\213u\370\311\303f.\017\037\204"}, StringFunctionSizeOverflow = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, stack = 0xd346fa2600000002, addr_description = {data = {kind = 1485707040, {shadow = {addr = 0, kind = __asan::kShadowKindLow, shadow_byte = 0 '\000'}, heap = {addr = 0, alloc_tid = 0, free_tid = 6154688135624, alloc_stack_id = 1485707040, free_stack_id = 31879, chunk_access = {bad_addr = 96, offset = 136920748136128, chunk_begin = 232, chunk_size = 140728898445320, user_requested_alignment = 2480, access_type = 1, alloc_type = 1}}, stack = {addr = 0, tid = 0, offset = 6154688135624, frame_pc = 136920748136224, access_size = 96, frame_descr = 0x7c87588e16c0 "\231\005"}, global = {addr = 0, static kMaxGlobals = 4, globals = {{beg = 0, size = 6154688135624, size_with_redzone = 136920748136224, name = 0x60 <error: Cannot access memory at address 0x60>, module_name = 0x7c87588e16c0 "\231\005", has_dynamic_init = 232, gcc_location = 0x7ffe00006008, odr_indicator = 140150568933808}, {beg = 140730258339472, size = 2, size_with_redzone = 140150597345216, name = 0x7c57588e0b90 "\003\021", module_name = 0x7ffe510eb660 "\260\276\016Q\376\177", has_dynamic_init = 140150595696440, gcc_location = 0xa0, odr_indicator = 136714589703056}, {beg = 140150571421904, size = 140730258339456, size_with_redzone = 136714589703072, name = 0x562a8a4de590 <device_free> "\363\017\036\372USH\211\373H\203\354\030H\205\377\017\204-\n", module_name = 0x7ffe510ebf90 "", has_dynamic_init = 135752497090912, gcc_location = 0x7ffe510ebeb0, odr_indicator = 140150596625345}, {beg = 140730258339456, size = 130355885698, size_with_redzone = 140730258339472, name = 0x2 <error: Cannot access memory at address 0x2>, module_name = 0x7f775a86e400 <___interceptor_free(void*)+176> "D\213\215\314\367\377\377E\205\311t4H\211m\330A\203\371\001tzE\017\276\3061\311H\211\352H\211\306H\215\275\320\367\377\377\3502\026\001", has_dynamic_init = 94740708888200, gcc_location = 0x7ffe510ebe90, odr_indicator = 140730258341280}}, reg_sites = {1507073504, 32631, 1505897315, 32631}, access_size = 1, size = 237 '\355'}, wild = {addr = 0, access_size = 0}}}}, size = 140730258341376}, BadParamsToAnnotateContiguousContainer = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, stack = 0xd346fa2600000002, beg = 136920748136224, end = 0, old_mid = 0, new_mid = 6154688135624}, BadParamsToAnnotateDoubleEndedContiguousContainer = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, stack = 0xd346fa2600000002, storage_beg = 136920748136224, storage_end = 0, old_container_beg = 0, old_container_end = 6154688135624, new_container_beg = 136920748136224, new_container_end = 96}, BadParamsToCopyContiguousContainerAnnotations = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, stack = 0xd346fa2600000002, old_storage_beg = 136920748136224, old_storage_end = 0, new_storage_beg = 0, new_storage_end = 6154688135624}, ODRViolation = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, global1 = {beg = 15224130631488241666, size = 136920748136224, size_with_redzone = 0, name = 0x0, module_name = 0x599000001c8 <error: Cannot access memory at address 0x599000001c8>, has_dynamic_init = 136920748136224, gcc_location = 0x60, odr_indicator = 136920748136128}, global2 = {beg = 232, size = 140728898445320, size_with_redzone = 140150568933808, name = 0x7ffe510eb690 "", module_name = 0x2 <error: Cannot access memory at address 0x2>, has_dynamic_init = 140150597345216, gcc_location = 0x7c57588e0b90, odr_indicator = 140730258339424}, stack_id1 = 1517860664, stack_id2 = 32631}, InvalidPointerPair = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, pc = 15224130631488241666, bp = 136920748136224, sp = 0, addr1_description = {data = {kind = __asan::kAddressKindWild, {shadow = {addr = 6154688135624, kind = (unknown: 0x20), shadow_byte = 23 '\027'}, heap = {addr = 6154688135624, alloc_tid = 136920748136224, free_tid = 96, alloc_stack_id = 1485706944, free_stack_id = 31879, chunk_access = {bad_addr = 232, offset = 140728898445320, chunk_begin = 140150568933808, chunk_size = 140730258339472, user_requested_alignment = 2, access_type = 0, alloc_type = 0}}, stack = {addr = 6154688135624, tid = 136920748136224, offset = 96, frame_pc = 136920748136128, access_size = 232, frame_descr = 0x7ffe00006008 <error: Cannot access memory at address 0x7ffe00006008>}, global = {addr = 6154688135624, static kMaxGlobals = 4, globals = {{beg = 136920748136224, size = 96, size_with_redzone = 136920748136128, name = 0xe8 <error: Cannot access memory at address 0xe8>, module_name = 0x7ffe00006008 <error: Cannot access memory at address 0x7ffe00006008>, has_dynamic_init = 140150568933808, gcc_location = 0x7ffe510eb690, odr_indicator = 2}, {beg = 140150597345216, size = 136714589703056, size_with_redzone = 140730258339424, name = 0x7f775a78b738 <__sanitizer::Quarantine<__asan::QuarantineCallback, __asan::AsanChunk>::Put(__sanitizer::QuarantineCache<__asan::QuarantineCallback>*, __asan::QuarantineCallback, __asan::AsanChunk*, unsigned long)+248> "H\203;", module_name = 0xa0 <error: Cannot access memory at address 0xa0>, has_dynamic_init = 136714589703056, gcc_location = 0x7f77590650d0, odr_indicator = 140730258339456}, {beg = 136714589703072, size = 94740708976016, size_with_redzone = 140730258341776, name = 0x7b77575dd160 "pU\216X\347{", module_name = 0x7ffe510ebeb0 "", has_dynamic_init = 140150596625345, gcc_location = 0x7ffe510eb680, odr_indicator = 130355885698}, {beg = 140730258339472, size = 2, size_with_redzone = 140150596625408, name = 0x562a8a4c8e88 <gatt_server_cleanup+200> "H\205\333t{\366\303\auvH\211\350H\301\350\003\200\270", module_name = 0x7ffe510ebe90 "`\321]Ww{", has_dynamic_init = 140730258341280, gcc_location = 0x7f7759d41de0 <_nl_C_locobj>, odr_indicator = 140150583733091}}, reg_sites = {1, 0, 2321325037, 22058}, access_size = 140730258341376, size = 240 '\360'}, wild = {addr = 6154688135624, access_size = 136920748136224}}}}, addr2_description = {data = {kind = 8, {shadow = {addr = 140150597056407, kind = __asan::kShadowKindLow, shadow_byte = 253 '\375'}, heap = {addr = 140150597056407, alloc_tid = 140730258357504, free_tid = 140730258341016, alloc_stack_id = 144516096, free_stack_id = 3544644134, chunk_access = {bad_addr = 140730258341216, offset = 140150596886397, chunk_begin = 136233553384840, chunk_size = 140150597320568, user_requested_alignment = 4095, access_type = 3, alloc_type = 3}}, stack = {addr = 140150597056407, tid = 140730258357504, offset = 140730258341016, frame_pc = 15224130631632757760, access_size = 140730258341216, frame_descr = 0x7f775a8adf7d <__sanitizer::DTLS_on_tls_get_addr(void*, void*, unsigned long, unsigned long)+125> "I\211\302H\205\300u\035\351\213"}, global = {addr = 140150597056407, static kMaxGlobals = 4, globals = {{beg = 140730258357504, size = 140730258341016, size_with_redzone = 15224130631632757760, name = 0x7ffe510ebd60 "H\024\216Xw|", module_name = 0x7f775a8adf7d <__sanitizer::DTLS_on_tls_get_addr(void*, void*, unsigned long, unsigned long)+125> "I\211\302H\205\300u\035\351\213", has_dynamic_init = 136233553384840, gcc_location = 0x7f775a917f78, odr_indicator = 65535}, {beg = 15224130631632757760, size = 140150575315128, size_with_redzone = 140150597320568, name = 0x7bd7588e7c10 "", module_name = 0x7ffe510ebf90 "", has_dynamic_init = 136164833917920, gcc_location = 0x7bd7588e7c08, odr_indicator = 136164833917968}, {beg = 94740709864628, size = 64, size_with_redzone = 16969062136364, name = 0x7bf7588e1620 "@\024\216Xw|", module_name = 0x7b77575dd200 "\0166\340E", has_dynamic_init = 135889956061648, gcc_location = 0x562a8a5c1472 <bt_att_chan_cancel+402>, odr_indicator = 11}, {beg = 136164833917968, size = 11, size_with_redzone = 94740709906232, name = 0x7c77588e1440 "", module_name = 0x7b77575dd260 "", has_dynamic_init = 16969062136384, gcc_location = 0x7ffe510ebd70, odr_indicator = 136852028658760}}, reg_sites = {1359921040, 32766, 1497479352, 32631}, access_size = 136577150750720, size = 160 '\240'}, wild = {addr = 140150597056407, access_size = 140730258357504}}}}}, Generic = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, addr_description = {data = {kind = __asan::kAddressKindHeap, {shadow = {addr = 136920748136224, kind = __asan::kShadowKindLow, shadow_byte = 0 '\000'}, heap = {addr = 136920748136224, alloc_tid = 0, free_tid = 0, alloc_stack_id = 456, free_stack_id = 1433, chunk_access = {bad_addr = 136920748136224, offset = 96, chunk_begin = 136920748136128, chunk_size = 232, user_requested_alignment = 8, access_type = 2, alloc_type = 1}}, stack = {addr = 136920748136224, tid = 0, offset = 0, frame_pc = 6154688135624, access_size = 136920748136224, frame_descr = 0x60 <error: Cannot access memory at address 0x60>}, global = {addr = 136920748136224, static kMaxGlobals = 4, globals = {{beg = 0, size = 0, size_with_redzone = 6154688135624, name = 0x7c87588e1720 "\240\025\216X\367{", module_name = 0x60 <error: Cannot access memory at address 0x60>, has_dynamic_init = 136920748136128, gcc_location = 0xe8, odr_indicator = 140728898445320}, {beg = 140150568933808, size = 140730258339472, size_with_redzone = 2, name = 0x7f775a91dfc0 <__asan::instance> "", module_name = 0x7c57588e0b90 "\003\021", has_dynamic_init = 140730258339424, gcc_location = 0x7f775a78b738 <__sanitizer::Quarantine<__asan::QuarantineCallback, __asan::AsanChunk>::Put(__sanitizer::QuarantineCache<__asan::QuarantineCallback>*, __asan::QuarantineCallback, __asan::AsanChunk*, unsigned long)+248>, odr_indicator = 160}, {beg = 136714589703056, size = 140150571421904, size_with_redzone = 140730258339456, name = 0x7c57588e0ba0 "\233\005", module_name = 0x562a8a4de590 <device_free> "\363\017\036\372USH\211\373H\203\354\030H\205\377\017\204-\n", has_dynamic_init = 140730258341776, gcc_location = 0x7b77575dd160, odr_indicator = 140730258341552}, {beg = 140150596625345, size = 140730258339456, size_with_redzone = 130355885698, name = 0x7ffe510eb690 "", module_name = 0x2 <error: Cannot access memory at address 0x2>, has_dynamic_init = 140150596625408, gcc_location = 0x562a8a4c8e88 <gatt_server_cleanup+200>, odr_indicator = 140730258341520}}, reg_sites = {1359920544, 32766, 1507073504, 32631}, access_size = 140150583733091, size = 1 '\001'}, wild = {addr = 136920748136224, access_size = 0}}}}, pc = 94740709940205, bp = 140730258341376, sp = 140730258341360, access_size = 8, bug_descr = 0x7f775a8d7797 "heap-use-after-free", is_write = false, shadow_val = 253 '\375'}}}, halt_on_error_ = true}
                error = {<__asan::ErrorBase> = {scariness = {score = 51, descr = "8-byte-read-heap-use-after-free\000w\177\000\000\305|\210Zw\177\000\000\300\200\216X\327{\000\000:\000\000\000\000\000\000\000\240\200\216X\327{\000\000\260\200\216X\327{\000\000p\262\016Q\376\177\000\000\005\334|Zw\177\000\000\300\262\016Q\376\177\000\000\000P\006Yw\177\000\000\001\000\000\000\000\000\000\000\001\000\000\000*\000\001\001\000\000\000\000\000\000\000\000\370\377\377\377\377\377\377\377\372\200\216X\327{\000\000\260\262\016Q\376\177\000\000\001\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\340\216P\376\177\000\000:\000\000\000\000\000\000\000 PoWw{\000\0009\000\000\000"...}, tid = 0}, addr_description = {data = {kind = __asan::kAddressKindHeap, {shadow = {addr = 136920748136224, kind = __asan::kShadowKindLow, shadow_byte = 0 '\000'}, heap = {addr = 136920748136224, alloc_tid = 0, free_tid = 0, alloc_stack_id = 456, free_stack_id = 1433, chunk_access = {bad_addr = 136920748136224, offset = 96, chunk_begin = 136920748136128, chunk_size = 232, user_requested_alignment = 8, access_type = 2, alloc_type = 1}}, stack = {addr = 136920748136224, tid = 0, offset = 0, frame_pc = 6154688135624, access_size = 136920748136224, frame_descr = 0x60 <error: Cannot access memory at address 0x60>}, global = {addr = 136920748136224, static kMaxGlobals = 4, globals = {{beg = 0, size = 0, size_with_redzone = 6154688135624, name = 0x7c87588e1720 "\240\025\216X\367{", module_name = 0x60 <error: Cannot access memory at address 0x60>, has_dynamic_init = 136920748136128, gcc_location = 0xe8, odr_indicator = 140728898445320}, {beg = 140150568933808, size = 140730258339472, size_with_redzone = 2, name = 0x7f775a91dfc0 <__asan::instance> "", module_name = 0x7c57588e0b90 "\003\021", has_dynamic_init = 140730258339424, gcc_location = 0x7f775a78b738 <__sanitizer::Quarantine<__asan::QuarantineCallback, __asan::AsanChunk>::Put(__sanitizer::QuarantineCache<__asan::QuarantineCallback>*, __asan::QuarantineCallback, __asan::AsanChunk*, unsigned long)+248>, odr_indicator = 160}, {beg = 136714589703056, size = 140150571421904, size_with_redzone = 140730258339456, name = 0x7c57588e0ba0 "\233\005", module_name = 0x562a8a4de590 <device_free> "\363\017\036\372USH\211\373H\203\354\030H\205\377\017\204-\n", has_dynamic_init = 140730258341776, gcc_location = 0x7b77575dd160, odr_indicator = 140730258341552}, {beg = 140150596625345, size = 140730258339456, size_with_redzone = 130355885698, name = 0x7ffe510eb690 "", module_name = 0x2 <error: Cannot access memory at address 0x2>, has_dynamic_init = 140150596625408, gcc_location = 0x562a8a4c8e88 <gatt_server_cleanup+200>, odr_indicator = 140730258341520}}, reg_sites = {1359920544, 32766, 1507073504, 32631}, access_size = 140150583733091, size = 1 '\001'}, wild = {addr = 136920748136224, access_size = 0}}}}, pc = 94740709940205, bp = 140730258341376, sp = 140730258341360, access_size = 8, bug_descr = 0x7f775a8d7797 "heap-use-after-free", is_write = false, shadow_val = 253 '\375'}
        #9  0x00007f775a87bf8d in __asan::ReportGenericError (pc=<optimized out>, bp=bp@entry=140730258341376, sp=sp@entry=140730258341360, addr=<optimized out>, is_write=is_write@entry=false, access_size=access_size@entry=8, exp=<optimized out>, fatal=true) at ../../../../src/libsanitizer/asan/asan_report.cpp:536
                in_report = <optimized out>
                error = <optimized out>
                enable_fp = <optimized out>
        #10 0x00007f775a87d3f9 in __asan::__asan_report_load8 (addr=<optimized out>) at ../../../../src/libsanitizer/asan/asan_rtl.cpp:131
                bp = 140730258341376
                pc = <optimized out>
                local_stack = 140730258341776
                sp = 140730258341360
        #11 0x0000562a8a5c9bed in discovery_op_free (op=0x7bf7588e16a0) at src/shared/gatt-client.c:407
        No locals.
        #12 0x0000562a8a6f6d8a in bt_gatt_request_unref (req=0x7bf7588e2020) at src/shared/gatt-helpers.c:577
        No locals.
        #13 bt_gatt_request_unref (req=0x7bf7588e2020) at src/shared/gatt-helpers.c:566
        No locals.
        #14 0x0000562a8a5b74b4 in cancel_att_send_op (data=0x7bd7588e7be0) at src/shared/att.c:226
                op = 0x7bd7588e7be0
        #15 0x0000562a8a5c21f9 in bt_att_cancel_all (att=<optimized out>) at src/shared/att.c:1951
                chan = 0x7bf7588e1620
                entry = 0x7b97588f41d0
        #16 bt_att_cancel_all (att=<optimized out>) at src/shared/att.c:1932
                entry = <optimized out>
                chan = <optimized out>
        #17 0x0000562a8a5c2fe0 in bt_att_unref (att=0x7c77588e1440) at src/shared/att.c:1350
        No locals.
        #18 bt_att_unref (att=0x7c77588e1440) at src/shared/att.c:1341
        No locals.
        #19 0x0000562a8a4de1ff in attio_cleanup (device=device@entry=0x7ce7588e0b00) at src/device.c:873
        No locals.
        #20 0x0000562a8a4de737 in device_free (user_data=0x7ce7588e0b00) at src/device.c:918
                device = 0x7ce7588e0b00
                __func__ = "device_free"
        #21 0x0000562a8a55f4ea in remove_interface (data=0x7be7588e5570, name=name@entry=0x562a8a785380 "org.bluez.Device1") at gdbus/object.c:742
                iface = 0x7bd7588e6260
        #22 0x0000562a8a5620ac in g_dbus_unregister_interface (connection=<optimized out>, path=<optimized out>, name=<optimized out>) at gdbus/object.c:1499
                data = <optimized out>
        #23 0x0000562a8a49437b in remove_temporary_devices (adapter=adapter@entry=0x7ca7588e0200) at src/adapter.c:826
                dev = 0x7ce7588e0b00
                l = <optimized out>
                next = 0x0
        #24 0x0000562a8a4956da in adapter_shutdown () at src/adapter.c:11503
                adapter = 0x7ca7588e0200
                list = 0x7ba7588e3910 = {0x7ca7588e0200}
                __func__ = "adapter_shutdown"
        #25 0x0000562a8a5361bc in signal_callback (signum=<optimized out>, user_data=<optimized out>) at src/main.c:1517
                terminated = false
        #26 signal_callback (signum=<optimized out>, user_data=<optimized out>) at src/main.c:1504
                terminated = false
        #27 0x0000562a8a6eb31e in signal_read (io=<optimized out>, user_data=0x7ba7588e34c0) at src/shared/mainloop-notify.c:145
                data = <optimized out>
                si = <optimized out>
                result = <optimized out>
                fd = <optimized out>
        #28 0x0000562a8a6e8215 in watch_callback (channel=<optimized out>, cond=<optimized out>, user_data=<optimized out>) at src/shared/io-glib.c:173
                watch = <optimized out>
                result = <optimized out>
                destroy = <optimized out>
        #29 0x00007f775a587b9b in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
        No symbol table info available.
        #30 0x00007f775a5891d7 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
        No symbol table info available.
        #31 0x00007f775a589577 in g_main_loop_run () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
        No symbol table info available.
        #32 0x0000562a8a6eb179 in mainloop_run () at src/shared/mainloop-glib.c:65
        No locals.
        #33 0x0000562a8a6ebaab in mainloop_run_with_signal (func=func@entry=0x562a8a536140 <signal_callback>, user_data=user_data@entry=0x0) at src/shared/mainloop-notify.c:196
                data = 0x7ba7588e34c0
                io = 0x7bb7588f9590
                ret = <optimized out>
        #34 0x0000562a8a26742b in main (argc=<optimized out>, argv=<optimized out>) at src/main.c:1745
                context = <optimized out>
                err = <optimized out>
                sdp_mtu = 0
                sdp_flags = <optimized out>
                gdbus_flags = <optimized out>
                __func__ = "main""
FAIL functional.test_bap::test_bass_past_earbuds_transport_acquire[hosts11-vm3]: AssertionError: Failed to acquire: org.bluez.Error.Failed


https://github.com/bluez/bluez/pull/2775

---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH BlueZ v2] shared/asha: Send STOP without a response
  2026-11-07  1:24 ` [PATCH BlueZ v2] shared/asha: Send STOP without " Kyle Pepper
  2026-11-07  2:52   ` [BlueZ,v2] " bluez.test.bot
@ 2026-11-10 22:00   ` patchwork-bot+bluetooth
  1 sibling, 0 replies; 5+ messages in thread
From: patchwork-bot+bluetooth @ 2026-11-10 22:00 UTC (permalink / raw)
  To: Kyle Pepper; +Cc: linux-bluetooth, marcel, luiz.dentz

Hello:

This patch was applied to bluetooth/bluez.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:

On Sat, 07 Nov 2026 01:24:00 +0000 you wrote:
> Avoid leaving a STOP Write Request pending after local state has been
> reset. Send a Write Command using the existing helper instead.
> 
> ASHA specifies Write with response for STOP; this changes that procedure
> and needs renderer STOP/restart validation.
> 
> Fixes: 9948168cca15 ("shared/asha: Don't wait for status notification on stop")
> Assisted-by: OpenCode:gpt-6.1-sol
> Assisted-by: Codex:gpt-6
> 
> [...]

Here is the summary with links:
  - [BlueZ,v2] shared/asha: Send STOP without a response
    https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=d3e258ce4d0a

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-11-10 22:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-28 13:30 [PATCH RESEND] shared/asha: send STOP without waiting for a response Kyle Pepper
2026-10-28 16:02 ` [RESEND] " bluez.test.bot
2026-11-07  1:24 ` [PATCH BlueZ v2] shared/asha: Send STOP without " Kyle Pepper
2026-11-07  2:52   ` [BlueZ,v2] " bluez.test.bot
2026-11-10 22:00   ` [PATCH BlueZ v2] " patchwork-bot+bluetooth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox