From: "Przemysław Fierek" <przemyslaw.fierek@silvair.com>
To: Brian Gix <brian.gix@intel.com>
Cc: inga.stotland@intel.com, linux-bluetooth@vger.kernel.org
Subject: Segmentation fault in the mesh/node.c
Date: Sun, 7 Jun 2020 15:34:39 +0200 [thread overview]
Message-ID: <116e6cc1-5a49-a833-689b-4f00880e455b@silvair.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 367 bytes --]
Hi,
After rebase on the latest BlueZ version our functional tests failed on
SEGV in the `node.c` file. Seems that call two D-Bus functions `join`
and `leave` one after the other (before receive `join_complete`) causes
SEGV.
In the attached files there is the backtrace and the diff with my
changes (adds extra some logs).
Best regards,
Przemysław Fierek
[-- Attachment #2: segv.txt --]
[-- Type: text/plain, Size: 30722 bytes --]
11:58:15 =================================== FAILURES ===================================
11:58:15 _______________________ test_remove_storage_after_leave ________________________
11:58:15
11:58:15 application = <bluez_tests.fixtures.application.<locals>._Application object at 0x7f0cf3fb1050>
11:58:15 meshd = <bluez_tests.daemon.Daemon object at 0x7f0cf4125710>
11:58:15 node_storage = <class 'bluez_tests.fixtures.node_storage.<locals>.NodeStorage'>
11:58:15
11:58:15 async def test_remove_storage_after_leave(application, meshd, node_storage):
11:58:15 await application.import_node()
11:58:15
11:58:15 assert application.token_ring.token
11:58:15
11:58:15 with node_storage() as storage, node_storage(backup=True) as backup:
11:58:15 assert storage["token"] == application.token_ring.token
11:58:15 assert backup["token"] == application.token_ring.token
11:58:15
11:58:15 > await application.leave()
11:58:15
11:58:15 bluez_tests/test_storage.py:230:
11:58:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
11:58:15 /usr/local/lib/python3.7/dist-packages/bluetooth_mesh/application.py:721: in leave
11:58:15 await self.network_interface.leave(self.token_ring.token)
11:58:15 /usr/local/lib/python3.7/dist-packages/bluetooth_mesh/interfaces.py:309: in leave
11:58:15 await self._interface.call_leave(token)
11:58:15 /usr/local/lib/python3.7/dist-packages/dbus_next/aio/proxy_object.py:79: in method_fn
11:58:15 BaseProxyInterface._check_method_return(msg, intr_method.out_signature)
11:58:15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
11:58:15
11:58:15 msg = <dbus_next.message.Message object at 0x7f0cf41a8fd0>, signature = ''
11:58:15
11:58:15 @staticmethod
11:58:15 def _check_method_return(msg, signature=None):
11:58:15 if msg.message_type == MessageType.ERROR:
11:58:15 > raise DBusError._from_message(msg)
11:58:15 E dbus_next.errors.DBusError: Message recipient disconnected from message bus without replying
11:58:15
11:58:15 /usr/local/lib/python3.7/dist-packages/dbus_next/proxy_object.py:59: DBusError
11:58:15 ------------------------------ Captured log setup ------------------------------
11:58:15 09:58:06.319 asyncio DEBUG Using selector: EpollSelector
11:58:15 09:58:06.393 MESHD INFO Starting: ['gosu', 'root', 'env', 'SEGFAULT_SIGNALS=abrt segv fpe', 'LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so', '/usr/libexec/bluetooth/bluetooth-meshd', '--config=/tmp/pytest-of-user/pytest-0/test_remove_storage_after_leav0/config', '--io=tcpserver:65254', '--debug']
11:58:15 09:58:06.402 MESHD.stderr INFO 2020-06-05 09:58:06.399 main.c:126 ready_callback D-Bus ready
11:58:15 09:58:06.402 MESHD.stderr INFO 2020-06-05 09:58:06.399 main.c:107 request_name_callback Request name success
11:58:15 09:58:06.402 MESHD.stderr INFO 2020-06-05 09:58:06.399 mesh.c:276 mesh_init Loading node configuration from /tmp/pytest-of-user/pytest-0/test_remove_storage_after_leav0/config
11:58:15 09:58:06.403 MESHD INFO Started
11:58:15 09:58:06.406 APPLICATION INFO Elements: {}
11:58:15 09:58:06.407 APPLICATION DEBUG Connecting to D-Bus
11:58:15 09:58:06.409 MESHD.stderr INFO 2020-06-05 09:58:06.403 mesh-io-tcpserver.c:435 tls_ctx_init TLS initialization: done
11:58:15 09:58:06.409 MESHD.stderr INFO 2020-06-05 09:58:06.403 mesh-io-tcpserver.c:234 get_fd_info Server bind -> addr:0.0.0.0 port:65254 fd:6
11:58:15 09:58:06.409 MESHD.stderr INFO 2020-06-05 09:58:06.403 mesh-io-tcpserver.c:580 tcpserver_io_init Started mesh on tcp port 65254
11:58:15 09:58:06.409 MESHD.stderr INFO 2020-06-05 09:58:06.403 mesh.c:296 mesh_init mesh/mesh.c:mesh_init() io 0x56413d49e9c0
11:58:15 09:58:06.410 MESHD.stderr INFO 2020-06-05 09:58:06.404 mesh.c:881 mesh_dbus_init Added Network Interface on /org/bluez/mesh
11:58:15 09:58:06.418 APPLICATION INFO Connecting to org.bluez.mesh
11:58:15 09:58:06.425 APPLICATION INFO Registering application
11:58:15 ------------------------------ Captured log call -------------------------------
11:58:15 09:58:06.434 APPLICATION WARNING Import 83bf3b46-8103-45a2-8bcc-e70d8d0b46d3
11:58:15 09:58:06.436 MESHD.stderr INFO 2020-06-05 09:58:06.435 mesh.c:778 import_call mesh/mesh.c:import_call() Import local node request
11:58:15 09:58:06.437 MESHD.stderr INFO 2020-06-05 09:58:06.435 node.c:1720 node_import mesh/node.c:node_import()
11:58:15 09:58:06.437 MESHD.stderr INFO 2020-06-05 09:58:06.435 node.c:267 node_new new elements: 0x56413d4ca930
11:58:15 09:58:06.438 MESHD.stderr INFO 2020-06-05 09:58:06.438 node.c:1283 get_app_properties mesh/node.c:get_app_properties() path /com/silvair/application
11:58:15 09:58:06.438 MESHD.stderr INFO 2020-06-05 09:58:06.438 node.c:1129 get_element_properties mesh/node.c:get_element_properties() path /com/silvair/application/element0
11:58:15 09:58:06.439 MESHD.stderr INFO 2020-06-05 09:58:06.438 node.c:1214 convert_node_to_storage db_node->elements 0x56413d4c9840
11:58:15 09:58:06.440 MESHD.stderr INFO 2020-06-05 09:58:06.438 mesh-config-json.c:1706 mesh_config_create mesh/mesh-config-json.c:mesh_config_create() New node config /tmp/pytest-of-user/pytest-0/test_remove_storage_after_leav0/config/83bf3b46810345a28bcce70d8d0b46d3/node.json
11:58:15 09:58:06.450 MESHD.stderr INFO 2020-06-05 09:58:06.450 net-keys.c:493 net_key_beacon_refresh mesh/net-keys.c:net_key_beacon_refresh() Setting SNB: IVI: 00000000, IVU: 0, KR: 0
11:58:15 09:58:06.451 MESHD.stderr INFO 2020-06-05 09:58:06.450 util.c:52 print_packet mesh/util.c:print_packet() 51086.450 Set SNB Beacon to: 2b01003ecaff672f67337000000000a502cffc80248d4c
11:58:15 09:58:06.451 MESHD.stderr INFO 2020-06-05 09:58:06.450 mesh-config-json.c:565 mesh_config_net_key_add mesh/mesh-config-json.c:mesh_config_net_key_add() netKey 0000
11:58:15 09:58:06.451 MESHD.stderr INFO 2020-06-05 09:58:06.451 net.c:778 mesh_net_set_friend_mode mesh/net.c:mesh_net_set_friend_mode() mesh_net_set_friend_mode - 0
11:58:15 09:58:06.452 MESHD.stderr INFO 2020-06-05 09:58:06.451 net.c:292 trigger_heartbeat mesh/net.c:trigger_heartbeat() trigger_heartbeat: 0001 --> 0
11:58:15 09:58:06.453 MESHD.stderr INFO 2020-06-05 09:58:06.453 cfgmod-server.c:1263 cfgmod_server_init mesh/cfgmod-server.c:cfgmod_server_init() 00
11:58:15 09:58:06.454 MESHD.stderr INFO 2020-06-05 09:58:06.453 mesh.c:712 create_node_ready_cb mesh/mesh.c:create_node_ready_cb() Calling JoinComplete (create)
11:58:15 09:58:06.461 STORAGE INFO /tmp/pytest-of-user/pytest-0/test_remove_storage_after_leav0/config/83bf3b46810345a28bcce70d8d0b46d3/node.json
11:58:15 09:58:06.468 STORAGE INFO /tmp/pytest-of-user/pytest-0/test_remove_storage_after_leav0/config/83bf3b46810345a28bcce70d8d0b46d3/node.json.bak
11:58:15 09:58:06.474 APPLICATION INFO Leave
11:58:15 09:58:06.475 MESHD.stderr INFO 2020-06-05 09:58:06.475 mesh.c:659 leave_call mesh/mesh.c:leave_call() Leave
11:58:15 09:58:06.475 MESHD.stderr INFO 2020-06-05 09:58:06.475 mesh-config-json.c:2329 mesh_config_destroy_nvm mesh/mesh-config-json.c:mesh_config_destroy_nvm() Delete node config /tmp/pytest-of-user/pytest-0/test_remove_storage_after_leav0/config/83bf3b46810345a28bcce70d8d0b46d3
11:58:15 09:58:06.476 MESHD.stderr INFO 2020-06-05 09:58:06.476 util.c:151 del_fobject mesh/util.c:del_fobject() RM /tmp/pytest-of-user/pytest-0/test_remove_storage_after_leav0/config/83bf3b46810345a28bcce70d8d0b46d3/node.json.bak
11:58:15 09:58:06.477 MESHD.stderr INFO 2020-06-05 09:58:06.476 util.c:151 del_fobject mesh/util.c:del_fobject() RM /tmp/pytest-of-user/pytest-0/test_remove_storage_after_leav0/config/83bf3b46810345a28bcce70d8d0b46d3/node.json
11:58:15 09:58:06.477 MESHD.stderr INFO 2020-06-05 09:58:06.476 util.c:145 del_fobject mesh/util.c:del_fobject() RMDIR /tmp/pytest-of-user/pytest-0/test_remove_storage_after_leav0/config/83bf3b46810345a28bcce70d8d0b46d3
11:58:15 09:58:06.477 MESHD.stderr INFO 2020-06-05 09:58:06.476 node.c:296 free_node_dbus_resources Node: 0x56413d4cadb0
11:58:15 09:58:06.477 MESHD.stderr INFO 2020-06-05 09:58:06.476 node.c:306 free_node_dbus_resources elements: 0x56413d4ca930
11:58:15 09:58:06.478 MESHD.stderr INFO 2020-06-05 09:58:06.476 node.c:278 free_element_path el: 0x56413d49f3d0, path: 0x56413d4cac50
11:58:15 09:58:06.478 MESHD.stderr INFO 2020-06-05 09:58:06.476 node.c:343 free_node_resources log1
11:58:15 09:58:06.478 MESHD.stderr INFO 2020-06-05 09:58:06.476 node.c:345 free_node_resources log2
11:58:15 09:58:06.479 MESHD.stderr INFO 2020-06-05 09:58:06.476 node.c:347 free_node_resources log3
11:58:15 09:58:06.479 MESHD.stderr INFO 2020-06-05 09:58:06.477 node.c:353 free_node_resources log4
11:58:15 09:58:06.479 MESHD.stderr INFO 2020-06-05 09:58:06.477 node.c:2414 node_finalize_new_node Nnnnode: 0x56413d4cadb0
11:58:15 09:58:06.479 MESHD.stderr INFO 2020-06-05 09:58:06.477 node.c:296 free_node_dbus_resources Node: 0x56413d4cadb0
11:58:15 09:58:06.480 MESHD.stderr INFO 2020-06-05 09:58:06.477 node.c:306 free_node_dbus_resources elements: 0x56413d498010
11:58:15 09:58:06.480 MESHD.segfault INFO *** Segmentation fault
11:58:15 09:58:06.480 MESHD.registers DEBUG Register dump:
11:58:15 09:58:06.480 MESHD.registers DEBUG
11:58:15 09:58:06.481 MESHD.registers DEBUG RAX: 0000000000000000 RBX: 0005000600070007 RCX: 0000000000000000
11:58:15 09:58:06.481 MESHD.registers DEBUG RDX: 0000000000000000 RSI: 000056413c31ba70 RDI: 000056413d498010
11:58:15 09:58:06.481 MESHD.registers DEBUG RBP: 000056413c31ba70 R8 : 0000000000000019 R9 : 0000000000000019
11:58:15 09:58:06.481 MESHD.registers DEBUG R10: 000056413c37a2ae R11: 0000000000000246 R12: 0000000000000000
11:58:15 09:58:06.482 MESHD.registers DEBUG R13: 000056413d4cdf20 R14: 000056413d49e1a0 R15: 0000000000000001
11:58:15 09:58:06.482 MESHD.registers DEBUG RSP: 00007ffc556d92b0
11:58:15 09:58:06.482 MESHD.registers DEBUG
11:58:15 09:58:06.482 MESHD.registers DEBUG RIP: 000056413c347330 EFLAGS: 00010202
11:58:15 09:58:06.483 MESHD.registers DEBUG
11:58:15 09:58:06.483 MESHD.registers DEBUG CS: 0033 FS: 0000 GS: 0000
11:58:15 09:58:06.483 MESHD.registers DEBUG
11:58:15 09:58:06.483 MESHD.registers DEBUG Trap: 0000000d Error: 00000000 OldMask: 00004002 CR2: 00000000
11:58:15 09:58:06.484 MESHD.registers DEBUG
11:58:15 09:58:06.484 MESHD.registers DEBUG FPUCW: 0000037f FPUSW: 00000000 TAG: 00000000
11:58:15 09:58:06.484 MESHD.registers DEBUG RIP: 00000000 RDP: 00000000
11:58:15 09:58:06.484 MESHD.registers DEBUG
11:58:15 09:58:06.485 MESHD.registers DEBUG ST(0) 0000 0000000000000000 ST(1) 0000 0000000000000000
11:58:15 09:58:06.485 MESHD.registers DEBUG ST(2) 0000 0000000000000000 ST(3) 0000 0000000000000000
11:58:15 09:58:06.485 MESHD.registers DEBUG ST(4) 0000 0000000000000000 ST(5) 0000 0000000000000000
11:58:15 09:58:06.485 MESHD.registers DEBUG ST(6) 0000 0000000000000000 ST(7) 0000 0000000000000000
11:58:15 09:58:06.486 MESHD.registers DEBUG mxcsr: 1f80
11:58:15 09:58:06.486 MESHD.registers DEBUG XMM0: 00000000000000000000000000ffff00 XMM1: 00000000000000000000000000ffff00
11:58:15 09:58:06.486 MESHD.registers DEBUG XMM2: 00000000000000000000000000ffff00 XMM3: 00000000000000000000000000ffff00
11:58:15 09:58:06.486 MESHD.registers DEBUG XMM4: 00000000000000000000000000ffff00 XMM5: 00000000000000000000000000ffff00
11:58:15 09:58:06.487 MESHD.registers DEBUG XMM6: 00000000000000000000000000ffff00 XMM7: 00000000000000000000000000ffff00
11:58:15 09:58:06.487 MESHD.registers DEBUG XMM8: 00000000000000000000000000ffff00 XMM9: 00000000000000000000000000ffff00
11:58:15 09:58:06.487 MESHD.registers DEBUG XMM10: 00000000000000000000000000ffff00 XMM11: 00000000000000000000000000ffff00
11:58:15 09:58:06.487 MESHD.registers DEBUG XMM12: 00000000000000000000000000ffff00 XMM13: 00000000000000000000000000ffff00
11:58:15 09:58:06.487 MESHD.registers DEBUG XMM14: 00000000000000000000000000ffff00 XMM15: 00000000000000000000000000ffff00
11:58:15 09:58:06.488 MESHD.registers DEBUG
11:58:15 09:58:06.489 MESHD.backtrace INFO Backtrace:
11:58:15 09:58:06.509 MESHD.backtrace INFO l_queue_foreach /home/user/bluez/ell/queue.c:441 (discriminator 3)
11:58:15 09:58:06.510 MESHD.backtrace DEBUG 439:
11:58:15 09:58:06.510 MESHD.backtrace DEBUG 440: for (entry = queue->head; entry; entry = entry->next)
11:58:15 09:58:06.511 MESHD.backtrace DEBUG 441: function(entry->data, user_data); 👈 😡
11:58:15 09:58:06.511 MESHD.backtrace DEBUG 442: }
11:58:15 09:58:06.511 MESHD.backtrace DEBUG 443:
11:58:15 09:58:06.511 MESHD.backtrace DEBUG 444: /**
11:58:15 09:58:06.512 MESHD.backtrace DEBUG
11:58:15 09:58:06.525 MESHD.backtrace INFO free_node_dbus_resources /home/user/bluez/mesh/node.c:309
11:58:15 09:58:06.526 MESHD.backtrace DEBUG 307:
11:58:15 09:58:06.526 MESHD.backtrace DEBUG 308: l_queue_foreach(node->elements, free_element_path, NULL);
11:58:15 09:58:06.527 MESHD.backtrace DEBUG 309: l_free(node->owner); 👈 😡
11:58:15 09:58:06.527 MESHD.backtrace DEBUG 310: node->owner = NULL;
11:58:15 09:58:06.527 MESHD.backtrace DEBUG 311: l_free(node->app_path);
11:58:15 09:58:06.527 MESHD.backtrace DEBUG 312: node->app_path = NULL;
11:58:15 09:58:06.528 MESHD.backtrace DEBUG
11:58:15 09:58:06.543 MESHD.backtrace INFO node_finalize_new_node /home/user/bluez/mesh/node.c:2417
11:58:15 09:58:06.544 MESHD.backtrace DEBUG 2415:
11:58:15 09:58:06.545 MESHD.backtrace DEBUG 2416: free_node_dbus_resources(node);
11:58:15 09:58:06.545 MESHD.backtrace DEBUG 2417: mesh_agent_remove(node->agent); 👈 😡
11:58:15 09:58:06.545 MESHD.backtrace DEBUG 2418:
11:58:15 09:58:06.545 MESHD.backtrace DEBUG 2419: /* Register callback for the node's io */
11:58:15 09:58:06.546 MESHD.backtrace DEBUG 2420: attach_io(node, io);
11:58:15 09:58:06.546 MESHD.backtrace DEBUG
11:58:15 09:58:06.560 MESHD.backtrace INFO create_join_complete_reply_cb /home/user/bluez/mesh/mesh.c:679
11:58:15 09:58:06.561 MESHD.backtrace DEBUG 677: }
11:58:15 09:58:06.561 MESHD.backtrace DEBUG 678:
11:58:15 09:58:06.561 MESHD.backtrace DEBUG 679: node_finalize_new_node(node, mesh.io); 👈 😡
11:58:15 09:58:06.561 MESHD.backtrace DEBUG 680: }
11:58:15 09:58:06.561 MESHD.backtrace DEBUG 681:
11:58:15 09:58:06.562 MESHD.backtrace DEBUG 682: static void create_node_ready_cb(void *user_data, int status,
11:58:15 09:58:06.562 MESHD.backtrace DEBUG
11:58:15 09:58:06.572 MESHD.backtrace INFO send_reply /home/user/bluez/mesh/dbus.c:161
11:58:15 09:58:06.573 MESHD.backtrace DEBUG 159: l_timeout_remove(info->timeout);
11:58:15 09:58:06.573 MESHD.backtrace DEBUG 160: info->cb(message, info->user_data);
11:58:15 09:58:06.574 MESHD.backtrace DEBUG 161: l_free(info); 👈 😡
11:58:15 09:58:06.574 MESHD.backtrace DEBUG 162: }
11:58:15 09:58:06.574 MESHD.backtrace DEBUG 163:
11:58:15 09:58:06.574 MESHD.backtrace DEBUG 164: static void send_timeout(struct l_timeout *timeout, void *user_data)
11:58:15 09:58:06.575 MESHD.backtrace DEBUG
11:58:15 09:58:06.587 MESHD.backtrace INFO handle_method_return /home/user/bluez/ell/dbus.c:216
11:58:15 09:58:06.588 MESHD.backtrace DEBUG 214:
11:58:15 09:58:06.588 MESHD.backtrace DEBUG 215: if (callback->callback)
11:58:15 09:58:06.589 MESHD.backtrace DEBUG 216: callback->callback(message, callback->user_data); 👈 😡
11:58:15 09:58:06.589 MESHD.backtrace DEBUG 217:
11:58:15 09:58:06.589 MESHD.backtrace DEBUG 218: message_queue_destroy(callback);
11:58:15 09:58:06.589 MESHD.backtrace DEBUG 219: }
11:58:15 09:58:06.590 MESHD.backtrace DEBUG
11:58:15 09:58:06.601 MESHD.backtrace INFO io_callback /home/user/bluez/ell/io.c:126
11:58:15 09:58:06.602 MESHD.backtrace DEBUG 124: "read event <%p>", io);
11:58:15 09:58:06.602 MESHD.backtrace DEBUG 125:
11:58:15 09:58:06.603 MESHD.backtrace DEBUG 126: if (!io->read_handler(io, io->read_data)) { 👈 😡
11:58:15 09:58:06.603 MESHD.backtrace DEBUG 127: if (io->read_destroy)
11:58:15 09:58:06.603 MESHD.backtrace DEBUG 128: io->read_destroy(io->read_data);
11:58:15 09:58:06.603 MESHD.backtrace DEBUG 129:
11:58:15 09:58:06.604 MESHD.backtrace DEBUG
11:58:15 09:58:06.618 MESHD.backtrace INFO l_main_iterate /home/user/bluez/ell/main.c:467
11:58:15 09:58:06.619 MESHD.backtrace DEBUG 465: }
11:58:15 09:58:06.619 MESHD.backtrace DEBUG 466:
11:58:15 09:58:06.619 MESHD.backtrace DEBUG 467: for (n = 0; n < nfds; n++) { 👈 😡
11:58:15 09:58:06.620 MESHD.backtrace DEBUG 468: data = events[n].data.ptr;
11:58:15 09:58:06.620 MESHD.backtrace DEBUG 469:
11:58:15 09:58:06.620 MESHD.backtrace DEBUG 470: if (data->flags & WATCH_FLAG_DESTROYED)
11:58:15 09:58:06.620 MESHD.backtrace DEBUG
11:58:15 09:58:06.635 MESHD.backtrace INFO l_main_run /home/user/bluez/ell/main.c:516
11:58:15 09:58:06.636 MESHD.backtrace DEBUG 514:
11:58:15 09:58:06.637 MESHD.backtrace DEBUG 515: for (;;) {
11:58:15 09:58:06.637 MESHD.backtrace DEBUG 516: if (epoll_terminate) 👈 😡
11:58:15 09:58:06.638 MESHD.backtrace DEBUG 517: break;
11:58:15 09:58:06.639 MESHD.backtrace DEBUG 518:
11:58:15 09:58:06.639 MESHD.backtrace DEBUG 519: timeout = l_main_prepare();
11:58:15 09:58:06.639 MESHD.backtrace DEBUG
11:58:15 09:58:06.656 MESHD.backtrace INFO l_main_run_with_signal /home/user/bluez/ell/main.c:644
11:58:15 09:58:06.657 MESHD.backtrace DEBUG 642: result = l_main_run();
11:58:15 09:58:06.657 MESHD.backtrace DEBUG 643:
11:58:15 09:58:06.657 MESHD.backtrace DEBUG 644: l_signal_remove(sigint); 👈 😡
11:58:15 09:58:06.658 MESHD.backtrace DEBUG 645: l_signal_remove(sigterm);
11:58:15 09:58:06.658 MESHD.backtrace DEBUG 646:
11:58:15 09:58:06.658 MESHD.backtrace DEBUG 647: l_free(data);
11:58:15 09:58:06.659 MESHD.backtrace DEBUG
11:58:15 09:58:06.680 MESHD.backtrace INFO main /home/user/bluez/mesh/main.c:303
11:58:15 09:58:06.681 MESHD.backtrace DEBUG 301: }
11:58:15 09:58:06.681 MESHD.backtrace DEBUG 302:
11:58:15 09:58:06.682 MESHD.backtrace DEBUG 303: status = l_main_run_with_signal(signal_handler, NULL); 👈 😡
11:58:15 09:58:06.682 MESHD.backtrace DEBUG 304:
11:58:15 09:58:06.683 MESHD.backtrace DEBUG 305: done:
11:58:15 09:58:06.683 MESHD.backtrace DEBUG 306: if (io)
11:58:15 09:58:06.683 MESHD.backtrace DEBUG
11:58:15 09:58:06.700 MESHD.backtrace INFO /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f01065241e3]
11:58:15 09:58:06.721 MESHD.backtrace INFO _start /usr/libexec/bluetooth/bluetooth-meshd(+0x2b69e)[0x56413c30069e]
11:58:15 09:58:06.722 MESHD.backtrace INFO
11:58:15 09:58:06.723 MESHD.memory DEBUG Memory map:
11:58:15 09:58:06.723 MESHD.memory DEBUG
11:58:15 09:58:06.724 MESHD.memory DEBUG 56413c2d5000-56413c2fe000 r--p 00000000 00:64 3174 /usr/libexec/bluetooth/bluetooth-meshd
11:58:15 09:58:06.724 MESHD.memory DEBUG 56413c2fe000-56413c377000 r-xp 00029000 00:64 3174 /usr/libexec/bluetooth/bluetooth-meshd
11:58:15 09:58:06.725 MESHD.memory DEBUG 56413c377000-56413c39a000 r--p 000a2000 00:64 3174 /usr/libexec/bluetooth/bluetooth-meshd
11:58:15 09:58:06.725 MESHD.memory DEBUG 56413c39b000-56413c39f000 r--p 000c5000 00:64 3174 /usr/libexec/bluetooth/bluetooth-meshd
11:58:15 09:58:06.725 MESHD.memory DEBUG 56413c39f000-56413c3bf000 rw-p 000c9000 00:64 3174 /usr/libexec/bluetooth/bluetooth-meshd
11:58:15 09:58:06.726 MESHD.memory DEBUG 56413c3bf000-56413c3df000 rw-p 00000000 00:00 0
11:58:15 09:58:06.726 MESHD.memory DEBUG 56413d498000-56413d4da000 rw-p 00000000 00:00 0 [heap]
11:58:15 09:58:06.726 MESHD.memory DEBUG 7f01064b5000-7f01064b8000 r--p 00000000 00:64 5779 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
11:58:15 09:58:06.727 MESHD.memory DEBUG 7f01064b8000-7f01064c9000 r-xp 00003000 00:64 5779 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
11:58:15 09:58:06.727 MESHD.memory DEBUG 7f01064c9000-7f01064cd000 r--p 00014000 00:64 5779 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
11:58:15 09:58:06.727 MESHD.memory DEBUG 7f01064cd000-7f01064ce000 r--p 00017000 00:64 5779 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
11:58:15 09:58:06.728 MESHD.memory DEBUG 7f01064ce000-7f01064cf000 rw-p 00018000 00:64 5779 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
11:58:15 09:58:06.728 MESHD.memory DEBUG 7f01064cf000-7f01064d2000 rw-p 00000000 00:00 0
11:58:15 09:58:06.728 MESHD.memory DEBUG 7f01064d2000-7f01064d3000 r--p 00000000 00:64 52 /usr/lib/x86_64-linux-gnu/libdl-2.30.so
11:58:15 09:58:06.729 MESHD.memory DEBUG 7f01064d3000-7f01064d5000 r-xp 00001000 00:64 52 /usr/lib/x86_64-linux-gnu/libdl-2.30.so
11:58:15 09:58:06.729 MESHD.memory DEBUG 7f01064d5000-7f01064d6000 r--p 00003000 00:64 52 /usr/lib/x86_64-linux-gnu/libdl-2.30.so
11:58:15 09:58:06.730 MESHD.memory DEBUG 7f01064d6000-7f01064d7000 r--p 00003000 00:64 52 /usr/lib/x86_64-linux-gnu/libdl-2.30.so
11:58:15 09:58:06.730 MESHD.memory DEBUG 7f01064d7000-7f01064d8000 rw-p 00004000 00:64 52 /usr/lib/x86_64-linux-gnu/libdl-2.30.so
11:58:15 09:58:06.730 MESHD.memory DEBUG 7f01064d8000-7f01064da000 rw-p 00000000 00:00 0
11:58:15 09:58:06.731 MESHD.memory DEBUG 7f01064da000-7f01064e1000 r--p 00000000 00:64 77 /usr/lib/x86_64-linux-gnu/libpthread-2.30.so
11:58:15 09:58:06.731 MESHD.memory DEBUG 7f01064e1000-7f01064f2000 r-xp 00007000 00:64 77 /usr/lib/x86_64-linux-gnu/libpthread-2.30.so
11:58:15 09:58:06.731 MESHD.memory DEBUG 7f01064f2000-7f01064f7000 r--p 00018000 00:64 77 /usr/lib/x86_64-linux-gnu/libpthread-2.30.so
11:58:15 09:58:06.732 MESHD.memory DEBUG 7f01064f7000-7f01064f8000 r--p 0001c000 00:64 77 /usr/lib/x86_64-linux-gnu/libpthread-2.30.so
11:58:15 09:58:06.732 MESHD.memory DEBUG 7f01064f8000-7f01064f9000 rw-p 0001d000 00:64 77 /usr/lib/x86_64-linux-gnu/libpthread-2.30.so
11:58:15 09:58:06.732 MESHD.memory DEBUG 7f01064f9000-7f01064fd000 rw-p 00000000 00:00 0
11:58:15 09:58:06.733 MESHD.memory DEBUG 7f01064fd000-7f0106522000 r--p 00000000 00:64 42 /usr/lib/x86_64-linux-gnu/libc-2.30.so
11:58:15 09:58:06.733 MESHD.memory DEBUG 7f0106522000-7f010669a000 r-xp 00025000 00:64 42 /usr/lib/x86_64-linux-gnu/libc-2.30.so
11:58:15 09:58:06.733 MESHD.memory DEBUG 7f010669a000-7f01066e4000 r--p 0019d000 00:64 42 /usr/lib/x86_64-linux-gnu/libc-2.30.so
11:58:15 09:58:06.734 MESHD.memory DEBUG 7f01066e4000-7f01066e7000 r--p 001e6000 00:64 42 /usr/lib/x86_64-linux-gnu/libc-2.30.so
11:58:15 09:58:06.734 MESHD.memory DEBUG 7f01066e7000-7f01066ea000 rw-p 001e9000 00:64 42 /usr/lib/x86_64-linux-gnu/libc-2.30.so
11:58:15 09:58:06.735 MESHD.memory DEBUG 7f01066ea000-7f01066ee000 rw-p 00000000 00:00 0
11:58:15 09:58:06.735 MESHD.memory DEBUG 7f01066ee000-7f0106766000 r--p 00000000 00:64 3952 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
11:58:15 09:58:06.735 MESHD.memory DEBUG 7f0106766000-7f0106904000 r-xp 00078000 00:64 3952 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
11:58:15 09:58:06.736 MESHD.memory DEBUG 7f0106904000-7f0106992000 r--p 00216000 00:64 3952 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
11:58:15 09:58:06.736 MESHD.memory DEBUG 7f0106992000-7f01069be000 r--p 002a3000 00:64 3952 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
11:58:15 09:58:06.736 MESHD.memory DEBUG 7f01069be000-7f01069c0000 rw-p 002cf000 00:64 3952 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
11:58:15 09:58:06.737 MESHD.memory DEBUG 7f01069c0000-7f01069c3000 rw-p 00000000 00:00 0
11:58:15 09:58:06.737 MESHD.memory DEBUG 7f01069c3000-7f01069df000 r--p 00000000 00:64 4542 /usr/lib/x86_64-linux-gnu/libssl.so.1.1
11:58:15 09:58:06.737 MESHD.memory DEBUG 7f01069df000-7f0106a2e000 r-xp 0001c000 00:64 4542 /usr/lib/x86_64-linux-gnu/libssl.so.1.1
11:58:15 09:58:06.738 MESHD.memory DEBUG 7f0106a2e000-7f0106a48000 r--p 0006b000 00:64 4542 /usr/lib/x86_64-linux-gnu/libssl.so.1.1
11:58:15 09:58:06.738 MESHD.memory DEBUG 7f0106a48000-7f0106a51000 r--p 00084000 00:64 4542 /usr/lib/x86_64-linux-gnu/libssl.so.1.1
11:58:15 09:58:06.738 MESHD.memory DEBUG 7f0106a51000-7f0106a55000 rw-p 0008d000 00:64 4542 /usr/lib/x86_64-linux-gnu/libssl.so.1.1
11:58:15 09:58:06.739 MESHD.memory DEBUG 7f0106a55000-7f0106a59000 r--p 00000000 00:64 5702 /usr/lib/x86_64-linux-gnu/libjson-c.so.4.0.0
11:58:15 09:58:06.739 MESHD.memory DEBUG 7f0106a59000-7f0106a61000 r-xp 00004000 00:64 5702 /usr/lib/x86_64-linux-gnu/libjson-c.so.4.0.0
11:58:15 09:58:06.739 MESHD.memory DEBUG 7f0106a61000-7f0106a64000 r--p 0000c000 00:64 5702 /usr/lib/x86_64-linux-gnu/libjson-c.so.4.0.0
11:58:15 09:58:06.739 MESHD.memory DEBUG 7f0106a64000-7f0106a65000 ---p 0000f000 00:64 5702 /usr/lib/x86_64-linux-gnu/libjson-c.so.4.0.0
11:58:15 09:58:06.740 MESHD.memory DEBUG 7f0106a65000-7f0106a66000 r--p 0000f000 00:64 5702 /usr/lib/x86_64-linux-gnu/libjson-c.so.4.0.0
11:58:15 09:58:06.740 MESHD.memory DEBUG 7f0106a66000-7f0106a67000 rw-p 00010000 00:64 5702 /usr/lib/x86_64-linux-gnu/libjson-c.so.4.0.0
11:58:15 09:58:06.740 MESHD.memory DEBUG 7f0106a6e000-7f0106a6f000 r--p 00000000 00:64 5700 /usr/lib/x86_64-linux-gnu/libSegFault.so
11:58:15 09:58:06.741 MESHD.memory DEBUG 7f0106a6f000-7f0106a72000 r-xp 00001000 00:64 5700 /usr/lib/x86_64-linux-gnu/libSegFault.so
11:58:15 09:58:06.741 MESHD.memory DEBUG 7f0106a72000-7f0106a73000 r--p 00004000 00:64 5700 /usr/lib/x86_64-linux-gnu/libSegFault.so
11:58:15 09:58:06.741 MESHD.memory DEBUG 7f0106a73000-7f0106a74000 r--p 00004000 00:64 5700 /usr/lib/x86_64-linux-gnu/libSegFault.so
11:58:15 09:58:06.741 MESHD.memory DEBUG 7f0106a74000-7f0106a75000 rw-p 00005000 00:64 5700 /usr/lib/x86_64-linux-gnu/libSegFault.so
11:58:15 09:58:06.742 MESHD.memory DEBUG 7f0106a75000-7f0106a77000 rw-p 00000000 00:00 0
11:58:15 09:58:06.742 MESHD.memory DEBUG 7f0106a77000-7f0106a78000 r--p 00000000 00:64 39 /usr/lib/x86_64-linux-gnu/ld-2.30.so
11:58:15 09:58:06.742 MESHD.memory DEBUG 7f0106a78000-7f0106a9a000 r-xp 00001000 00:64 39 /usr/lib/x86_64-linux-gnu/ld-2.30.so
11:58:15 09:58:06.742 MESHD.memory DEBUG 7f0106a9a000-7f0106aa2000 r--p 00023000 00:64 39 /usr/lib/x86_64-linux-gnu/ld-2.30.so
11:58:15 09:58:06.743 MESHD.memory DEBUG 7f0106aa3000-7f0106aa4000 r--p 0002b000 00:64 39 /usr/lib/x86_64-linux-gnu/ld-2.30.so
11:58:15 09:58:06.743 MESHD.memory DEBUG 7f0106aa4000-7f0106aa5000 rw-p 0002c000 00:64 39 /usr/lib/x86_64-linux-gnu/ld-2.30.so
11:58:15 09:58:06.743 MESHD.memory DEBUG 7f0106aa5000-7f0106aa6000 rw-p 00000000 00:00 0
11:58:15 09:58:06.743 MESHD.memory DEBUG 7ffc556bb000-7ffc556dc000 rw-p 00000000 00:00 0 [stack]
11:58:15 09:58:06.744 MESHD.memory DEBUG 7ffc557e9000-7ffc557ec000 r--p 00000000 00:00 0 [vvar]
11:58:15 09:58:06.744 MESHD.memory DEBUG 7ffc557ec000-7ffc557ee000 r-xp 00000000 00:00 0 [vdso]
11:58:15 09:58:06.744 MESHD.memory DEBUG ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
11:58:15 09:58:06.746 APPLICATION ERROR Disconnected from org.bluez.mesh (:1.625)
11:58:15 ---------------------------- Captured log teardown -----------------------------
[-- Attachment #3: node.c.diff --]
[-- Type: text/x-patch, Size: 2308 bytes --]
diff --git a/mesh/node.c b/mesh/node.c
index db888d27c..bc7151621 100644
--- a/mesh/node.c
+++ b/mesh/node.c
@@ -264,6 +264,7 @@ static struct mesh_node *node_new(const uint8_t uuid[16])
node = l_new(struct mesh_node, 1);
node->net = mesh_net_new(node);
node->elements = l_queue_new();
+ l_info("new elements: %p", node->elements);
memcpy(node->uuid, uuid, sizeof(node->uuid));
set_defaults(node);
@@ -274,8 +275,11 @@ static void free_element_path(void *a, void *b)
{
struct node_element *element = a;
+ l_info("el: %p, path: %p", element, element->path);
+
l_free(element->path);
element->path = NULL;
+
}
static void element_free(void *data)
@@ -289,6 +293,8 @@ static void element_free(void *data)
static void free_node_dbus_resources(struct mesh_node *node)
{
+ l_info("Node: %p", node);
+
if (!node)
return;
@@ -297,6 +303,8 @@ static void free_node_dbus_resources(struct mesh_node *node)
node->disc_watch = 0;
}
+ l_info("elements: %p", node->elements);
+
l_queue_foreach(node->elements, free_element_path, NULL);
l_free(node->owner);
node->owner = NULL;
@@ -332,12 +340,17 @@ static void free_node_resources(void *data)
/* Free dynamic resources */
free_node_dbus_resources(node);
+ l_info("log1");
l_queue_destroy(node->elements, element_free);
+ l_info("log2");
+ node->elements = NULL;
+ l_info("log3");
mesh_agent_remove(node->agent);
mesh_config_release(node->cfg);
mesh_net_free(node->net);
l_free(node->storage_dir);
l_free(node);
+ l_info("log4");
}
/*
@@ -1198,6 +1211,7 @@ static void convert_node_to_storage(struct mesh_node *node,
db_node->seq_number = node->seq_number;
db_node->elements = l_queue_new();
+ l_info("db_node->elements %p", db_node->elements);
entry = l_queue_get_entries(node->elements);
@@ -1354,6 +1368,8 @@ static bool add_local_node(struct mesh_node *node, uint16_t unicast, bool kr,
update_net_settings(node);
+ mesh_config_save(node->cfg, true, NULL, NULL);
+
/* Initialize configuration server model */
cfgmod_server_init(node, PRIMARY_ELE_IDX);
@@ -2352,6 +2411,8 @@ void node_finalize_new_node(struct mesh_node *node, struct mesh_io *io)
if (!node)
return;
+ l_info("Nnnnode: %p", node);
+
free_node_dbus_resources(node);
mesh_agent_remove(node->agent);
next reply other threads:[~2020-06-07 13:34 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-07 13:34 Przemysław Fierek [this message]
2020-06-07 14:07 ` Segmentation fault in the mesh/node.c bluez.test.bot
2020-06-07 14:07 ` bluez.test.bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=116e6cc1-5a49-a833-689b-4f00880e455b@silvair.com \
--to=przemyslaw.fierek@silvair.com \
--cc=brian.gix@intel.com \
--cc=inga.stotland@intel.com \
--cc=linux-bluetooth@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.