Skip to contentSkip to conversation

MAP server crash during connection

DISCUSSION Amisha Jain (QUIC) 2 participants 4 messages May 31, 2024 – Jun 7, 2024 Bluetooth drivers

lore
Share & tools
lore
#0 lore raw

Hi bluez team,
I have been trying to verify MAP Server obex profile on bluez 5.65.
While trying connection, I have noticed the crash on the server side (connection initiated from client side) and hence connection is failing. Please find the backtrace of the crash -

  assertion failed "i == len" file "../../dbus-1.14.8/dbus/dbus-object-tree.c" line 1321 function _dbus_decompose_path /usr/lib/libdbus-1.so.3(_dbus_print_backtrace+0x28) [0xfffff7f4cc9c] /usr/lib/libdbus-1.so.3(_dbus_abort+0x14) [0xfffff7f4fe3c]
  /usr/lib/libdbus-1.so.3(+0x4a9cc) [0xfffff7f3a9cc]
  /usr/lib/libdbus-1.so.3(+0x36c5c) [0xfffff7f26c5c] /usr/lib/libdbus-1.so.3(dbus_connection_get_object_path_data+0xc4) [0xfffff7f0f818] /usr/libexec/bluetooth/obexd(g_dbus_emit_property_changed_full+0x30) [0x450dc4] /usr/libexec/bluetooth/obexd(g_dbus_emit_property_changed+0x14) [0x450ec0] /usr/libexec/bluetooth/obexd(manager_emit_transfer_property+0x34) [0x429408] /usr/libexec/bluetooth/obexd(obex_put_stream_start+0xc8) [0x42b314] /usr/libexec/bluetooth/obexd() [0x425f58]
  /usr/libexec/bluetooth/obexd() [0x42adcc]
  /usr/libexec/bluetooth/obexd() [0x4171dc]
  /usr/libexec/bluetooth/obexd() [0x418078]
  /usr/lib/libglib-2.0.so.0(+0xb20cc) [0xfffff7e420cc]
  /usr/lib/libglib-2.0.so.0(+0x54a30) [0xfffff7de4a30] /usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x44) [0xfffff7de850c] /usr/lib/libglib-2.0.so.0(+0x5868c) [0xfffff7de868c] /usr/lib/libglib-2.0.so.0(g_main_loop_run+0x1ac) [0xfffff7de8b08] /usr/libexec/bluetooth/obexd(main+0x128) [0x427d6c]
  /lib/libc.so.6(+0x2affc) [0xfffff7c0affc]
  /lib/libc.so.6(__libc_start_main+0x90) [0xfffff7c0b0c4]
  /usr/libexec/bluetooth/obexd(_start+0x30) [0x4101b0]

  Program received signal SIGABRT, Aborted.

 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:4

Please help support the issue.

Thanks,
Amisha

#1 lore raw

Hi,
Please help with the below issue.

Quoted 50 lines

-----Original Message-----
From: Amisha Jain (QUIC)
Sent: Friday, May 31, 2024 12:34 PM
To: '[email protected]' <[email protected]>
Subject: MAP server crash during connection

Hi bluez team,
I have been trying to verify MAP Server obex profile on bluez 5.65. While trying connection, I have noticed the crash on the server side (connection initiated from client side) and hence connection is failing. Please find the backtrace of the crash -

  assertion failed "i == len" file "../../dbus-1.14.8/dbus/dbus-object-tree.c" line 1321 function _dbus_decompose_path /usr/lib/libdbus-1.so.3(_dbus_print_backtrace+0x28) [0xfffff7f4cc9c] /usr/lib/libdbus-1.so.3(_dbus_abort+0x14) [0xfffff7f4fe3c] /usr/lib/libdbus-1.so.3(+0x4a9cc) [0xfffff7f3a9cc] /usr/lib/libdbus-1.so.3(+0x36c5c) [0xfffff7f26c5c] /usr/lib/libdbus-1.so.3(dbus_connection_get_object_path_data+0xc4) [0xfffff7f0f818] /usr/libexec/bluetooth/obexd(g_dbus_emit_property_changed_full+0x30) [0x450dc4] /usr/libexec/bluetooth/obexd(g_dbus_emit_property_changed+0x14) [0x450ec0] /usr/libexec/bluetooth/obexd(manager_emit_transfer_property+0x34) [0x429408] /usr/libexec/bluetooth/obexd(obex_put_stream_start+0xc8) [0x42b314] /usr/libexec/bluetooth/obexd() [0x425f58] /usr/libexec/bluetooth/obexd() [0x42adcc] /usr/libexec/bluetooth/obexd() [0x4171dc] /usr/libexec/bluetooth/obexd() [0x418078] /usr/lib/libglib-2.0.so.0(+0xb20cc) [0xfffff7e420cc] /usr/lib/libglib-2.0.so.0(+0x54a30) [0xfffff7de4a30] /usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x44) [0xfffff7de850c] /usr/lib/libglib-2.0.so.0(+0x5868c) [0xfffff7de868c] /usr/lib/libglib-2.0.so.0(g_main_loop_run+0x1ac) [0xfffff7de8b08] /usr/libexec/bluetooth/obexd(main+0x128) [0x427d6c] /lib/libc.so.6(+0x2affc) [0xfffff7c0affc] /lib/libc.so.6(__libc_start_main+0x90) [0xfffff7c0b0c4] /usr/libexec/bluetooth/obexd(_start+0x30) [0x4101b0]

  Program received signal SIGABRT, Aborted.

 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:4

Please help support the issue.

Thanks,
Amisha

#2 lore raw

Hi,
To resolve the MAP crash issue, We have added the below fix -

obexd/src/obex.c +1 -1
index 3a68fd6..7c95075 100644
@@ -716,7 +716,7 @@ int obex_put_stream_start(struct obex_session *os, const char *filename)
 		return err;
 	}
 
-	if (os->size != OBJECT_SIZE_DELETE && os->size != OBJECT_SIZE_UNKNOWN)
+	if (os->size != OBJECT_SIZE_DELETE && os->size != OBJECT_SIZE_UNKNOWN && strcmp(os->service->name, "Message Access server") != 0)
 		manager_emit_transfer_property(os->service_data, "Size");
 
 	os->path = g_strdup(filename);

--

Please review the above fix and let us know if we can go ahead with this change.

Thanks,
Amisha

Quoted 61 lines

-----Original Message-----
From: Amisha Jain (QUIC)
Sent: Tuesday, June 4, 2024 11:43 AM
To: '[email protected]' <[email protected]>
Subject: RE: MAP server crash during connection

Hi,
Please help with the below issue.

Quoted 52 lines

-----Original Message-----
From: Amisha Jain (QUIC)
Sent: Friday, May 31, 2024 12:34 PM
To: '[email protected]'
<[email protected]>
Subject: MAP server crash during connection

Hi bluez team,
I have been trying to verify MAP Server obex profile on bluez 5.65. While trying connection, I have noticed the crash on the server side (connection initiated from client side) and hence connection is failing. Please find the backtrace of the crash -

  assertion failed "i == len" file "../../dbus-1.14.8/dbus/dbus-object-tree.c" line 1321 function _dbus_decompose_path /usr/lib/libdbus-1.so.3(_dbus_print_backtrace+0x28) [0xfffff7f4cc9c] /usr/lib/libdbus-1.so.3(_dbus_abort+0x14) [0xfffff7f4fe3c] /usr/lib/libdbus-1.so.3(+0x4a9cc) [0xfffff7f3a9cc] /usr/lib/libdbus-1.so.3(+0x36c5c) [0xfffff7f26c5c] /usr/lib/libdbus-1.so.3(dbus_connection_get_object_path_data+0xc4) [0xfffff7f0f818] /usr/libexec/bluetooth/obexd(g_dbus_emit_property_changed_full+0x30) [0x450dc4] /usr/libexec/bluetooth/obexd(g_dbus_emit_property_changed+0x14) [0x450ec0] /usr/libexec/bluetooth/obexd(manager_emit_transfer_property+0x34) [0x429408] /usr/libexec/bluetooth/obexd(obex_put_stream_start+0xc8) [0x42b314] /usr/libexec/bluetooth/obexd() [0x425f58] /usr/libexec/bluetooth/obexd() [0x42adcc] /usr/libexec/bluetooth/obexd() [0x4171dc] /usr/libexec/bluetooth/obexd() [0x418078] /usr/lib/libglib-2.0.so.0(+0xb20cc) [0xfffff7e420cc] /usr/lib/libglib-2.0.so.0(+0x54a30) [0xfffff7de4a30] /usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x44) [0xfffff7de850c]
  /usr/lib/libglib-2.0.so.0(+0x5868c) [0xfffff7de868c] /usr/lib/libglib-2.0.so.0(g_main_loop_run+0x1ac) [0xfffff7de8b08] /usr/libexec/bluetooth/obexd(main+0x128) [0x427d6c] /lib/libc.so.6(+0x2affc) [0xfffff7c0affc] /lib/libc.so.6(__libc_start_main+0x90) [0xfffff7c0b0c4] /usr/libexec/bluetooth/obexd(_start+0x30) [0x4101b0]

  Program received signal SIGABRT, Aborted.

 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:4

Please help support the issue.

Thanks,
Amisha

#3 lore raw

Hi Amisha,

Quoted 10 lines · Amisha Jain (QUIC)

Hi,
To resolve the MAP crash issue, We have added the below fix -

obexd/src/obex.c +0 -0
index 3a68fd6..7c95075 100644

obexd/src/obex.c int obex_put_stream_start(struct obex_session *os, const char *filename) · line 720

Quoted 6 lines
obexd/src/obex.c +1 -1
@@ -716,7 +716,7 @@ int obex_put_stream_start(struct obex_session *os, const char *filename)
                return err;
        }
 
-       if (os->size != OBJECT_SIZE_DELETE && os->size != OBJECT_SIZE_UNKNOWN)
+       if (os->size != OBJECT_SIZE_DELETE && os->size != OBJECT_SIZE_UNKNOWN && strcmp(os->service->name, "Message Access server") != 0)
                manager_emit_transfer_property(os->service_data, "Size");

It has been a while I don't look into MAP implementation but the impression I have is that Size is not being set properly for MAP which then causes the problem, so this is more like a workaround it seems, and if MAP don't really want to track the object size then it shall set OBJECT_SIZE_UNKNOWN.

Quoted 70 lines
obexd/src/obex.c +0 -1
        os->path = g_strdup(filename);
--

Please review the above fix and let us know if we can go ahead with this change.

Thanks,
Amisha

Quoted 61 lines

-----Original Message-----
From: Amisha Jain (QUIC)
Sent: Tuesday, June 4, 2024 11:43 AM
To: '[email protected]' <[email protected]>
Subject: RE: MAP server crash during connection

Hi,
Please help with the below issue.

Quoted 52 lines

-----Original Message-----
From: Amisha Jain (QUIC)
Sent: Friday, May 31, 2024 12:34 PM
To: '[email protected]'
<[email protected]>
Subject: MAP server crash during connection

Hi bluez team,
I have been trying to verify MAP Server obex profile on bluez 5.65. While trying connection, I have noticed the crash on the server side (connection initiated from client side) and hence connection is failing. Please find the backtrace of the crash -

assertion failed "i == len" file "../../dbus-1.14.8/dbus/dbus-object-tree.c"
line 1321 function _dbus_decompose_path
/usr/lib/libdbus-1.so.3(_dbus_print_backtrace+0x28) [0xfffff7f4cc9c] /usr/lib/libdbus-1.so.3(_dbus_abort+0x14) [0xfffff7f4fe3c] /usr/lib/libdbus-1.so.3(+0x4a9cc) [0xfffff7f3a9cc] /usr/lib/libdbus-1.so.3(+0x36c5c) [0xfffff7f26c5c] /usr/lib/libdbus-1.so.3(dbus_connection_get_object_path_data+0xc4)
[0xfffff7f0f818]
/usr/libexec/bluetooth/obexd(g_dbus_emit_property_changed_full+0x30)
[0x450dc4]
/usr/libexec/bluetooth/obexd(g_dbus_emit_property_changed+0x14)
[0x450ec0]
/usr/libexec/bluetooth/obexd(manager_emit_transfer_property+0x34)
[0x429408]
/usr/libexec/bluetooth/obexd(obex_put_stream_start+0xc8) [0x42b314] /usr/libexec/bluetooth/obexd() [0x425f58] /usr/libexec/bluetooth/obexd() [0x42adcc] /usr/libexec/bluetooth/obexd() [0x4171dc] /usr/libexec/bluetooth/obexd() [0x418078] /usr/lib/libglib-2.0.so.0(+0xb20cc) [0xfffff7e420cc] /usr/lib/libglib-2.0.so.0(+0x54a30) [0xfffff7de4a30] /usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x44)
[0xfffff7de850c]
/usr/lib/libglib-2.0.so.0(+0x5868c) [0xfffff7de868c] /usr/lib/libglib-2.0.so.0(g_main_loop_run+0x1ac) [0xfffff7de8b08] /usr/libexec/bluetooth/obexd(main+0x128) [0x427d6c] /lib/libc.so.6(+0x2affc) [0xfffff7c0affc] /lib/libc.so.6(__libc_start_main+0x90) [0xfffff7c0b0c4] /usr/libexec/bluetooth/obexd(_start+0x30) [0x4101b0]

Program received signal SIGABRT, Aborted.

__pthread_kill_implementation (threadid=<optimized out>,
signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:4

Please help support the issue.

Thanks,
Amisha

Signature · 1 line
Luiz Augusto von Dentz