All of lore.kernel.org
 help / color / mirror / Atom feed
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);
 


             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.