intel / dleyna-renderer

dleyna-renderer is a library for implementing services that allow clients to discover and manipulate Digital Media Renderers. An implementation of such a service for linux is also included
https://01.org/dleyna/
GNU Lesser General Public License v2.1
16 stars 19 forks source link

dLeyna-renderer can crash on shutdown #69

Closed markdryan closed 11 years ago

markdryan commented 11 years ago

Okay, so this is a little tricky to reproduce, but I managed to get dleyna-renderer to crash by quitting during device construction. I found this problem while testing PR #55 but the problem is not related to this PR. To reproduce I added a sleep(10) before the call to dlr_device_construct in dlr_device_new. I then ran dLeyna-renderer-service under valgrind and pressed CTRL-C about 2 to 3 seconds after startup, basically as soon as I saw a log announcing the discovery of a new context.

Here are some of the errors I got from valgrind

==5733== Memcheck, a memory error detector
==5733== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==5733== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==5733== Command: /home/markus/code/public/dleyna-renderer/server/.libs/lt-dleyna-renderer-service
==5733== 
dleyna-renderer-service[5733]: dLeyna version 0.0.2
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_processor_new() --- Enter
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_processor_new() --- Exit
dleyna-renderer-service[5733]: libdleyna/core/log.c : dleyna_log_update_type_level() --- Type[0] Level[0x3F] Mask[0xFC] Flags[0xFF]
dleyna-renderer-service[5733]:  
dleyna-renderer-service[5733]: libdleyna/core/settings.c : dleyna_settings_new() --- Load file [/home/markus/.config/dleyna-renderer-service.conf]
dleyna-renderer-service[5733]:  
dleyna-renderer-service[5733]: libdleyna/core/settings.c : dleyna_settings_new() --- [General settings]
dleyna-renderer-service[5733]: libdleyna/core/settings.c : dleyna_settings_new() --- Never Quit: F
dleyna-renderer-service[5733]:  
dleyna-renderer-service[5733]: libdleyna/core/settings.c : dleyna_settings_new() --- Connector Name: dbus
dleyna-renderer-service[5733]:  
dleyna-renderer-service[5733]: libdleyna/core/settings.c : dleyna_settings_new() --- [Logging settings]
dleyna-renderer-service[5733]: libdleyna/core/settings.c : dleyna_settings_new() --- Log Type : 0
dleyna-renderer-service[5733]: libdleyna/core/settings.c : dleyna_settings_new() --- Log Level: 0x3F
dleyna-renderer-service[5733]:  
dleyna-renderer-service[5733]: libdleyna/core/connector-mgr.c : dleyna_connector_mgr_load() --- Enter
dleyna-renderer-service[5733]: libdleyna/core/connector-mgr.c : dleyna_connector_mgr_load() --- Exit
dleyna-renderer-service[5733]: src/connector-dbus.c : prv_connector_initialize() --- Enter
dleyna-renderer-service[5733]: src/connector-dbus.c : prv_connector_initialize() --- Exit
dleyna-renderer-service[5733]: src/connector-dbus.c : prv_connector_connect() --- Enter
dleyna-renderer-service[5733]: src/connector-dbus.c : prv_connector_connect() --- Exit
dleyna-renderer-service[5733]: src/connector-dbus.c : prv_connector_publish_object() --- Enter, path = </com/intel/dLeynaRenderer>
dleyna-renderer-service[5733]: src/connector-dbus.c : prv_connector_publish_object() --- Exit, object_id = 1
dleyna-renderer-service[5733]: upnp.c : prv_server_available_cb() --- Enter
dleyna-renderer-service[5733]: upnp.c : prv_server_available_cb() --- UDN uuid:7581325e-fb7e-436d-3da3-7927980cbdd3
dleyna-renderer-service[5733]: upnp.c : prv_server_available_cb() --- IP Address 127.0.0.1
dleyna-renderer-service[5733]: upnp.c : prv_server_available_cb() --- Device not found. Adding
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_processor_add_queue() --- Enter - queue <source-1,dleyna-renderer>
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_processor_add_queue() --- Exit
dleyna-renderer-service[5733]: device.c : dlr_device_new() --- New Device on 127.0.0.1
dleyna-renderer-service[5733]: device.c : dlr_device_new() --- Server Path /com/intel/dLeynaRenderer/server/0
^Cdleyna-renderer-service[5733]: device.c : dlr_device_construct() --- Current step: 0
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Enter - Task added to queue <source-1,dleyna-renderer>
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Exit
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Enter - Task added to queue <source-1,dleyna-renderer>
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Exit
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Enter - Task added to queue <source-1,dleyna-renderer>
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Exit
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_queue_start() --- Enter - Starting queue <source-1,dleyna-renderer>
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_queue_start() --- Exit
dleyna-renderer-service[5733]: device.c : dlr_device_construct() --- Exit
dleyna-renderer-service[5733]: device.c : dlr_device_new() --- Exit
dleyna-renderer-service[5733]: upnp.c : prv_server_available_cb() --- Exit
dleyna-renderer-service[5733]:  
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_processor_set_quitting() --- Enter
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_processor_set_quitting() --- Exit
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : prv_process_task() --- Enter - Start task processing for queue <source-1,dleyna-renderer>
dleyna-renderer-service[5733]: device.c : prv_get_protocol_info() --- Enter
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : prv_process_task() --- Exit
dleyna-renderer-service[5733]: libdleyna/core/main-loop.c : prv_context_quit_cb() --- Quitting
dleyna-renderer-service[5733]: upnp.c : dlr_upnp_unsubscribe() --- Enter
dleyna-renderer-service[5733]: upnp.c : dlr_upnp_unsubscribe() --- Exit
dleyna-renderer-service[5733]: upnp.c : prv_server_unavailable_cb() --- Enter
dleyna-renderer-service[5733]: upnp.c : prv_server_unavailable_cb() --- UDN uuid:7581325e-fb7e-436d-3da3-7927980cbdd3
dleyna-renderer-service[5733]: upnp.c : prv_server_unavailable_cb() --- IP Address 127.0.0.1
dleyna-renderer-service[5733]: device.c : prv_context_unsubscribe() --- Enter
dleyna-renderer-service[5733]: device.c : prv_context_unsubscribe() --- Exit
dleyna-renderer-service[5733]: upnp.c : prv_server_unavailable_cb() --- Device under construction. Cancelling
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_processor_cancel_queue() --- Cancel queue <source-1,dleyna-renderer>
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_queue_task_completed() --- Enter - Task completed for queue <source-1,dleyna-renderer>
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_queue_task_completed() --- Exit
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_processor_cancel_queue() --- Exit
dleyna-renderer-service[5733]: src/connector-dbus.c : prv_connector_unpublish_object() --- Enter, object_id = 1
dleyna-renderer-service[5733]: src/connector-dbus.c : prv_connector_unpublish_object() --- Exit
dleyna-renderer-service[5733]: libdleyna/core/main-loop.c : prv_context_quit_cb() --- Quitting
dleyna-renderer-service[5733]: upnp.c : dlr_upnp_unsubscribe() --- Enter
==5733== Invalid read of size 8
==5733==    at 0x53433C8: dlr_upnp_unsubscribe (upnp.c:810)
==5733==    by 0x533FE6D: prv_control_point_stop_service (server.c:556)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x88451d0 is 48 bytes inside a block of size 80 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x5342218: dlr_upnp_delete (upnp.c:401)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid read of size 4
==5733==    at 0x507269A: g_hash_table_iter_init (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x53433DA: dlr_upnp_unsubscribe (upnp.c:810)
==5733==    by 0x533FE6D: prv_control_point_stop_service (server.c:556)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x8845274 is 68 bytes inside a block of size 88 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x53421FC: dlr_upnp_delete (upnp.c:398)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid read of size 4
==5733==    at 0x50726FD: g_hash_table_iter_next (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x53433FD: dlr_upnp_unsubscribe (upnp.c:811)
==5733==    by 0x533FE6D: prv_control_point_stop_service (server.c:556)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x8845274 is 68 bytes inside a block of size 88 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x53421FC: dlr_upnp_delete (upnp.c:398)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid read of size 4
==5733==    at 0x507272B: g_hash_table_iter_next (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x53433FD: dlr_upnp_unsubscribe (upnp.c:811)
==5733==    by 0x533FE6D: prv_control_point_stop_service (server.c:556)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x8845230 is 0 bytes inside a block of size 88 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x53421FC: dlr_upnp_delete (upnp.c:398)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
dleyna-renderer-service[5733]: upnp.c : dlr_upnp_unsubscribe() --- Exit
==5733== Invalid read of size 8
==5733==    at 0x53421D1: dlr_upnp_delete (upnp.c:396)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x88451e8 is 72 bytes inside a block of size 80 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x5342218: dlr_upnp_delete (upnp.c:401)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid read of size 8
==5733==    at 0x533F842: dlr_host_service_delete (host-service.c:564)
==5733==    by 0x53421DC: dlr_upnp_delete (upnp.c:396)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x8848880 is 0 bytes inside a block of size 8 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x533F858: dlr_host_service_delete (host-service.c:565)
==5733==    by 0x53421DC: dlr_upnp_delete (upnp.c:396)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid read of size 4
==5733==    at 0x5072949: g_hash_table_unref (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x533F84C: dlr_host_service_delete (host-service.c:564)
==5733==    by 0x53421DC: dlr_upnp_delete (upnp.c:396)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x8848910 is 64 bytes inside a block of size 88 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x533F84C: dlr_host_service_delete (host-service.c:564)
==5733==    by 0x53421DC: dlr_upnp_delete (upnp.c:396)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid read of size 4
==5733==    at 0x5072951: g_hash_table_unref (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x533F84C: dlr_host_service_delete (host-service.c:564)
==5733==    by 0x53421DC: dlr_upnp_delete (upnp.c:396)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x8848910 is 64 bytes inside a block of size 88 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x533F84C: dlr_host_service_delete (host-service.c:564)
==5733==    by 0x53421DC: dlr_upnp_delete (upnp.c:396)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid free() / delete / delete[] / realloc()
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x533F858: dlr_host_service_delete (host-service.c:565)
==5733==    by 0x53421DC: dlr_upnp_delete (upnp.c:396)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x8848880 is 0 bytes inside a block of size 8 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x533F858: dlr_host_service_delete (host-service.c:565)
==5733==    by 0x53421DC: dlr_upnp_delete (upnp.c:396)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid read of size 8
==5733==    at 0x53421E1: dlr_upnp_delete (upnp.c:397)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x88451c0 is 32 bytes inside a block of size 80 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x5342218: dlr_upnp_delete (upnp.c:401)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid read of size 8
==5733==    at 0x5E8FEDB: g_object_unref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3400.1)
==5733==    by 0x53421EC: dlr_upnp_delete (upnp.c:397)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x88477e0 is 0 bytes inside a block of size 120 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x5EAB7F4: g_type_free_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3400.1)
==5733==    by 0x53421EC: dlr_upnp_delete (upnp.c:397)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid read of size 8
==5733==    at 0x5EAC665: g_type_check_instance_is_a (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3400.1)
==5733==    by 0x5E8FEF5: g_object_unref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3400.1)
==5733==    by 0x53421EC: dlr_upnp_delete (upnp.c:397)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x88477e0 is 0 bytes inside a block of size 120 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x5EAB7F4: g_type_free_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3400.1)
==5733==    by 0x53421EC: dlr_upnp_delete (upnp.c:397)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid read of size 8
==5733==    at 0x53421F1: dlr_upnp_delete (upnp.c:398)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x88451d0 is 48 bytes inside a block of size 80 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x5342218: dlr_upnp_delete (upnp.c:401)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid read of size 4
==5733==    at 0x5072949: g_hash_table_unref (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x53421FC: dlr_upnp_delete (upnp.c:398)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x8845270 is 64 bytes inside a block of size 88 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x53421FC: dlr_upnp_delete (upnp.c:398)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid read of size 4
==5733==    at 0x5072951: g_hash_table_unref (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x53421FC: dlr_upnp_delete (upnp.c:398)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x8845270 is 64 bytes inside a block of size 88 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x53421FC: dlr_upnp_delete (upnp.c:398)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid read of size 8
==5733==    at 0x5342201: dlr_upnp_delete (upnp.c:399)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x88451d8 is 56 bytes inside a block of size 80 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x5342218: dlr_upnp_delete (upnp.c:401)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid read of size 4
==5733==    at 0x5072949: g_hash_table_unref (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x534220C: dlr_upnp_delete (upnp.c:399)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x88453f0 is 64 bytes inside a block of size 88 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x534220C: dlr_upnp_delete (upnp.c:399)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid read of size 4
==5733==    at 0x5072951: g_hash_table_unref (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x534220C: dlr_upnp_delete (upnp.c:399)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x88453f0 is 64 bytes inside a block of size 88 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x534220C: dlr_upnp_delete (upnp.c:399)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid free() / delete / delete[] / realloc()
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x5342218: dlr_upnp_delete (upnp.c:401)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x88451a0 is 0 bytes inside a block of size 80 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x5342218: dlr_upnp_delete (upnp.c:401)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
dleyna-renderer-service[5733]: src/connector-dbus.c : prv_connector_unpublish_object() --- Enter, object_id = 1
dleyna-renderer-service[5733]: src/connector-dbus.c : prv_connector_unpublish_object() --- Exit
dleyna-renderer-service[5733]: libdleyna/core/main-loop.c : prv_context_mainloop_quit_cb() --- Main loop quit
dleyna-renderer-service[5733]: libdleyna/core/main-loop.c : prv_context_mainloop_quit_cb() --- Main loop quit
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : dleyna_task_processor_free() --- Enter
dleyna-renderer-service[5733]: libdleyna/core/task-processor.c : prv_free_cb() --- Enter
dleyna-renderer-service[5733]: upnp.c : prv_device_chain_end() --- Enter
==5733== Invalid read of size 8
==5733==    at 0x53415CB: prv_device_chain_end (upnp.c:90)
==5733==    by 0x4E36905: prv_free_cb (task-processor.c:103)
==5733==    by 0x5071FB2: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x507296C: g_hash_table_unref (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E36A54: dleyna_task_processor_free (task-processor.c:136)
==5733==    by 0x4E35467: prv_context_free (main-loop.c:108)
==5733==    by 0x4E355FC: dleyna_main_loop_start (main-loop.c:165)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x88451d8 is 56 bytes inside a block of size 80 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x5342218: dlr_upnp_delete (upnp.c:401)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Invalid read of size 8
==5733==    at 0x5072318: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x53415D9: prv_device_chain_end (upnp.c:90)
==5733==    by 0x4E36905: prv_free_cb (task-processor.c:103)
==5733==    by 0x5071FB2: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x507296C: g_hash_table_unref (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E36A54: dleyna_task_processor_free (task-processor.c:136)
==5733==    by 0x4E35467: prv_context_free (main-loop.c:108)
==5733==    by 0x4E355FC: dleyna_main_loop_start (main-loop.c:165)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x88453e0 is 48 bytes inside a block of size 88 free'd
==5733==    at 0x4C2A739: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5733==    by 0x534220C: dlr_upnp_delete (upnp.c:399)
==5733==    by 0x533FE88: prv_control_point_stop_service (server.c:559)
==5733==    by 0x4E35329: prv_context_quit_cb (main-loop.c:61)
==5733==    by 0x5082AB4: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x5082DE7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x50831E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E355D0: dleyna_main_loop_start (main-loop.c:153)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733== 
==5733== Jump to the invalid address stated on the next line
==5733==    at 0x0: ???
==5733==    by 0x4E36905: prv_free_cb (task-processor.c:103)
==5733==    by 0x5071FB2: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x507296C: g_hash_table_unref (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E36A54: dleyna_task_processor_free (task-processor.c:136)
==5733==    by 0x4E35467: prv_context_free (main-loop.c:108)
==5733==    by 0x4E355FC: dleyna_main_loop_start (main-loop.c:165)
==5733==    by 0x400EBA: main (daemon.c:93)
==5733==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==5733== 
==5733== 
==5733== Process terminating with default action of signal 11 (SIGSEGV)
==5733==  Bad permissions for mapped region at address 0x0
==5733==    at 0x0: ???
==5733==    by 0x4E36905: prv_free_cb (task-processor.c:103)
==5733==    by 0x5071FB2: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x507296C: g_hash_table_unref (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3400.1)
==5733==    by 0x4E36A54: dleyna_task_processor_free (task-processor.c:136)
==5733==    by 0x4E35467: prv_context_free (main-loop.c:108)
==5733==    by 0x4E355FC: dleyna_main_loop_start (main-loop.c:165)
==5733==    by 0x400EBA: main (daemon.c:93)

There must be a race condition somewhere when shutting down.

jku commented 11 years ago

This still happens I think. prv_control_point_stop_service() gets called several times.

markdryan commented 11 years ago

The fix for this is actually in dLeyna-core. Have you tried building the latest version of dLeyna-core, killing all dLeyna services and then re-testing?

BTW, how do you know prv_control_point_stop_service gets called several times. There are no logs here?

markdryan commented 11 years ago

jku, I just retested this and it's working fine for me. The bug really seems to be fixed. I also added a log to prv_control_point_stop_service and it is only getting called once.

How did you get it to be called twice?

jku commented 11 years ago

I use git master branches of the dleyna components. I think I managed to see this while testing other things and then tried your sleep() method to reproduce it: it seems to usually reproduce the problem.

I added a debug call so search "for prv_control_point_stop_service() --- STOP" to see the cases

(gdb) r
Starting program: /home/jku/intel/src/dleyna/root/libexec/dleyna-renderer-service 
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
dleyna-renderer-service[22170]: dLeyna version 0.0.2
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_new() --- Enter
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_new() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/log.c : dleyna_log_update_type_level() --- Type[0] Level[0x3F] Mask[0xFC] Flags[0xFF]
dleyna-renderer-service[22170]:  
dleyna-renderer-service[22170]: libdleyna/core/settings.c : dleyna_settings_new() --- Load file [/home/jku/.config/dleyna-renderer-service.conf]
dleyna-renderer-service[22170]:  
dleyna-renderer-service[22170]: libdleyna/core/settings.c : dleyna_settings_new() --- [General settings]
dleyna-renderer-service[22170]: libdleyna/core/settings.c : dleyna_settings_new() --- Never Quit: F
dleyna-renderer-service[22170]:  
dleyna-renderer-service[22170]: libdleyna/core/settings.c : dleyna_settings_new() --- Connector Name: dbus
dleyna-renderer-service[22170]:  
dleyna-renderer-service[22170]: libdleyna/core/settings.c : dleyna_settings_new() --- [Logging settings]
dleyna-renderer-service[22170]: libdleyna/core/settings.c : dleyna_settings_new() --- Log Type : 0
dleyna-renderer-service[22170]: libdleyna/core/settings.c : dleyna_settings_new() --- Log Level: 0x3F
dleyna-renderer-service[22170]:  
dleyna-renderer-service[22170]: libdleyna/core/connector-mgr.c : dleyna_connector_mgr_load() --- Enter
dleyna-renderer-service[22170]: libdleyna/core/connector-mgr.c : dleyna_connector_mgr_load() --- Exit
dleyna-renderer-service[22170]: src/connector-dbus.c : prv_connector_initialize() --- Enter
dleyna-renderer-service[22170]: src/connector-dbus.c : prv_connector_initialize() --- Exit
dleyna-renderer-service[22170]: src/connector-dbus.c : prv_connector_connect() --- Enter
[New Thread 0x7ffff44ee700 (LWP 22173)]
dleyna-renderer-service[22170]: src/connector-dbus.c : prv_connector_connect() --- Exit
[New Thread 0x7ffff3ced700 (LWP 22174)]
dleyna-renderer-service[22170]: src/connector-dbus.c : prv_connector_publish_object() --- Enter, path = </com/intel/dLeynaRenderer>
dleyna-renderer-service[22170]: src/connector-dbus.c : prv_connector_publish_object() --- Exit, object_id = 1
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- UDN uuid:12c49061-c46e-41ab-b472-b1f7b083efc3
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- IP Address 127.0.0.1
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- Device not found. Adding
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_add_queue() --- Enter - queue <source-1,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_add_queue() --- Exit
dleyna-renderer-service[22170]: device.c : dlr_device_new() --- New Device on 127.0.0.1
dleyna-renderer-service[22170]: device.c : dlr_device_new() --- Server Path /com/intel/dLeynaRenderer/server/0
^Cdleyna-renderer-service[22170]: device.c : dlr_device_construct() --- Current step: 0
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Enter - Task added to queue <source-1,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Enter - Task added to queue <source-1,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Enter - Task added to queue <source-1,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_start() --- Enter - Starting queue <source-1,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_start() --- Exit
dleyna-renderer-service[22170]: device.c : dlr_device_construct() --- Exit
dleyna-renderer-service[22170]: device.c : dlr_device_new() --- Exit
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- Exit
dleyna-renderer-service[22170]:  
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- UDN uuid:12c49061-c46e-41ab-b472-b1f7b083efc3
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- IP Address 10.237.68.151
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- Device Found
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- Adding Context
dleyna-renderer-service[22170]: device.c : dlr_device_subscribe_to_service_changes() --- Subscribing through context <127.0.0.1>
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- Exit
dleyna-renderer-service[22170]:  
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- UDN uuid:12c49061-c46e-41ab-b472-b1f7b083efc3
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- IP Address 10.10.15.179
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- Device Found
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- Adding Context
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- Exit
dleyna-renderer-service[22170]:  
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- UDN uuid:eca1d5fa-0d1a-48ed-b58f-718b03378e64
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- IP Address 10.237.68.151
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- Device not found. Adding
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_add_queue() --- Enter - queue <source-2,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_add_queue() --- Exit
dleyna-renderer-service[22170]: device.c : dlr_device_new() --- New Device on 10.237.68.151
dleyna-renderer-service[22170]: device.c : dlr_device_new() --- Server Path /com/intel/dLeynaRenderer/server/1
[Thread 0x7ffff44ee700 (LWP 22173) exited]
dleyna-renderer-service[22170]: device.c : dlr_device_construct() --- Current step: 0
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Enter - Task added to queue <source-2,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Enter - Task added to queue <source-2,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Enter - Task added to queue <source-2,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_start() --- Enter - Starting queue <source-2,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_start() --- Exit
dleyna-renderer-service[22170]: device.c : dlr_device_construct() --- Exit
dleyna-renderer-service[22170]: device.c : dlr_device_new() --- Exit
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- Exit
dleyna-renderer-service[22170]:  
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- UDN uuid:d845163b-0ded-487f-b6a7-5195ba5996f7
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- IP Address 10.237.68.151
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- Device not found. Adding
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_add_queue() --- Enter - queue <source-3,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_add_queue() --- Exit
dleyna-renderer-service[22170]: device.c : dlr_device_new() --- New Device on 10.237.68.151
dleyna-renderer-service[22170]: device.c : dlr_device_new() --- Server Path /com/intel/dLeynaRenderer/server/2
dleyna-renderer-service[22170]: device.c : dlr_device_construct() --- Current step: 0
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Enter - Task added to queue <source-3,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Enter - Task added to queue <source-3,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Enter - Task added to queue <source-3,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_start() --- Enter - Starting queue <source-3,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_start() --- Exit
dleyna-renderer-service[22170]: device.c : dlr_device_construct() --- Exit
dleyna-renderer-service[22170]: device.c : dlr_device_new() --- Exit
dleyna-renderer-service[22170]: upnp.c : prv_server_available_cb() --- Exit
dleyna-renderer-service[22170]:  
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_set_quitting() --- Enter
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_cancel_all_queues() --- Enter
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_cancel() --- Removing queue <source-3,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_free_cb() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_device_chain_end() --- Enter
dleyna-renderer-service[22170]: device.c : prv_context_unsubscribe() --- Enter
dleyna-renderer-service[22170]: device.c : prv_context_unsubscribe() --- Exit
dleyna-renderer-service[22170]: upnp.c : prv_device_chain_end() --- Exit
dleyna-renderer-service[22170]:  
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_free_cb() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_cancel_all_queues() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_set_quitting() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_process_task() --- Enter - Start task processing for queue <source-1,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_process_task() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_process_task() --- Enter - Start task processing for queue <source-2,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_task_completed() --- Enter - Task completed for queue <source-2,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_task_completed() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_process_task() --- Exit
dleyna-renderer-service[22170]: device.c : prv_process_protocol_info() --- Enter
dleyna-renderer-service[22170]: device.c : prv_process_protocol_info() --- prv_process_protocol_info: http-get:*:audio/mpeg:*,http-get:*:application/ogg:*,http-get:*:audio/x-vorbis:*,http-get:*:audio/x-vorbis+ogg:*,http-get:*:audio/ogg:*,http-get:*:audio/x-ms-wma:*,http-get:*:audio/x-ms-asf:*,http-get:*:audio/x-flac:*,http-get:*:audio/x-flac+ogg:*,http-get:*:audio/flac:*,http-get:*:audio/mp4:*,http-get:*:audio/vnd.dlna.adts:*,http-get:*:audio/x-mod:*,http-get:*:audio/x-wav:*,http-get:*:audio/x-ac3:*,http-get:*:audio/x-m4a:*,http-get:*:audio/L16;rate=44100;channels=2:*,http-get:*:audio/L16;rate=44100;channels=1:*,http-get:*:audio/L16;channels=2;rate=44100:*,http-get:*:audio/L16;channels=1;rate=44100:*,http-get:*:audio/L16;rate=44100:*,http-get:*:image/jpeg:*,http-get:*:image/png:*,http-get:*:video/x-theora:*,http-get:*:video/x-theora+ogg:*,http-get:*:video/x-oggm:*,http-get:*:video/ogg:*,http-get:*:video/x-dirac:*,http-get:*:video/x-wmv:*,http-get:*:video/x-wma:*,http-get:*:video/x-msvideo:*,http-get:*:video/x-3ivx:*,http-get:*:video/x-3ivx:*,http-get:*:video/x-matroska:*,http-get:*:video/x-mkv:*,http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/x-ms-asf:*,http-get:*:video/x-xvid:*,http-get:*:video/x-ms-wmv:*,rtsp:*:audio/mpeg:*,rtsp:*:application/ogg:*,rtsp:*:audio/x-vorbis:*,rtsp:*:audio/x-vorbis+ogg:*,rtsp:*:audio/ogg:*,rtsp:*:audio/x-ms-wma:*,rtsp:*:audio/x-ms-asf:*,rtsp:*:audio/x-flac:*,rtsp:*:audio/x-flac+ogg:*,rtsp:*:audio/flac:*,rtsp:*:audio/mp4:*,rtsp:*:audio/vnd.dlna.adts:*,rtsp:*:audio/x-mod:*,rtsp:*:audio/x-wav:*,rtsp:*:audio/x-ac3:*,rtsp:*:audio/x-m4a:*,rtsp:*:audio/L16;rate=44100;channels=2:*,rtsp:*:audio/L16;rate=44100;channels=1:*,rtsp:*:audio/L16;channels=2;rate=44100:*,rtsp:*:audio/L16;channels=1;rate=44100:*,rtsp:*:audio/L16;rate=44100:*,rtsp:*:image/jpeg:*,rtsp:*:image/png:*,rtsp:*:video/x-theora:*,rtsp:*:video/x-theora+ogg:*,rtsp:*:video/x-oggm:*,rtsp:*:video/ogg:*,rtsp:*:video/x-dirac:*,rtsp:*:video/x-wmv:*,rtsp:*:video/x-wma:*,rtsp:*:video/x-msvideo:*,rtsp:*:video/x-3ivx:*,rtsp:*:video/x-3ivx:*,rtsp:*:video/x-matroska:*,rtsp:*:video/x-mkv:*,rtsp:*:video/mpeg:*,rtsp:*:video/mp4:*,rtsp:*:video/x-ms-asf:*,rtsp:*:video/x-xvid:*,rtsp:*:video/x-ms-wmv:*
dleyna-renderer-service[22170]: device.c : prv_process_protocol_info() --- Exit
dleyna-renderer-service[22170]: device.c : prv_emit_signal_properties_changed() --- Emitted Signal: org.freedesktop.DBus.Properties.PropertiesChanged - ObjectPath: /com/intel/dLeynaRenderer/server/0
dleyna-renderer-service[22170]: device.c : prv_get_protocol_info_cb() --- Enter
dleyna-renderer-service[22170]: device.c : prv_process_protocol_info() --- Enter
dleyna-renderer-service[22170]: device.c : prv_process_protocol_info() --- prv_process_protocol_info: http-get:*:audio/mpeg:*,http-get:*:application/ogg:*,http-get:*:audio/x-vorbis:*,http-get:*:audio/x-vorbis+ogg:*,http-get:*:audio/ogg:*,http-get:*:audio/x-ms-wma:*,http-get:*:audio/x-ms-asf:*,http-get:*:audio/x-flac:*,http-get:*:audio/x-flac+ogg:*,http-get:*:audio/flac:*,http-get:*:audio/mp4:*,http-get:*:audio/vnd.dlna.adts:*,http-get:*:audio/x-mod:*,http-get:*:audio/x-wav:*,http-get:*:audio/x-ac3:*,http-get:*:audio/x-m4a:*,http-get:*:audio/L16;rate=44100;channels=2:*,http-get:*:audio/L16;rate=44100;channels=1:*,http-get:*:audio/L16;channels=2;rate=44100:*,http-get:*:audio/L16;channels=1;rate=44100:*,http-get:*:audio/L16;rate=44100:*,http-get:*:image/jpeg:*,http-get:*:image/png:*,http-get:*:video/x-theora:*,http-get:*:video/x-theora+ogg:*,http-get:*:video/x-oggm:*,http-get:*:video/ogg:*,http-get:*:video/x-dirac:*,http-get:*:video/x-wmv:*,http-get:*:video/x-wma:*,http-get:*:video/x-msvideo:*,http-get:*:video/x-3ivx:*,http-get:*:video/x-3ivx:*,http-get:*:video/x-matroska:*,http-get:*:video/x-mkv:*,http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/x-ms-asf:*,http-get:*:video/x-xvid:*,http-get:*:video/x-ms-wmv:*,rtsp:*:audio/mpeg:*,rtsp:*:application/ogg:*,rtsp:*:audio/x-vorbis:*,rtsp:*:audio/x-vorbis+ogg:*,rtsp:*:audio/ogg:*,rtsp:*:audio/x-ms-wma:*,rtsp:*:audio/x-ms-asf:*,rtsp:*:audio/x-flac:*,rtsp:*:audio/x-flac+ogg:*,rtsp:*:audio/flac:*,rtsp:*:audio/mp4:*,rtsp:*:audio/vnd.dlna.adts:*,rtsp:*:audio/x-mod:*,rtsp:*:audio/x-wav:*,rtsp:*:audio/x-ac3:*,rtsp:*:audio/x-m4a:*,rtsp:*:audio/L16;rate=44100;channels=2:*,rtsp:*:audio/L16;rate=44100;channels=1:*,rtsp:*:audio/L16;channels=2;rate=44100:*,rtsp:*:audio/L16;channels=1;rate=44100:*,rtsp:*:audio/L16;rate=44100:*,rtsp:*:image/jpeg:*,rtsp:*:image/png:*,rtsp:*:video/x-theora:*,rtsp:*:video/x-theora+ogg:*,rtsp:*:video/x-oggm:*,rtsp:*:video/ogg:*,rtsp:*:video/x-dirac:*,rtsp:*:video/x-wmv:*,rtsp:*:video/x-wma:*,rtsp:*:video/x-msvideo:*,rtsp:*:video/x-3ivx:*,rtsp:*:video/x-3ivx:*,rtsp:*:video/x-matroska:*,rtsp:*:video/x-mkv:*,rtsp:*:video/mpeg:*,rtsp:*:video/mp4:*,rtsp:*:video/x-ms-asf:*,rtsp:*:video/x-xvid:*,rtsp:*:video/x-ms-wmv:*
dleyna-renderer-service[22170]: device.c : prv_process_protocol_info() --- Exit
dleyna-renderer-service[22170]: device.c : prv_get_protocol_info_cb() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_task_completed() --- Enter - Task completed for queue <source-1,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_task_completed() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/main-loop.c : prv_context_quit_cb() --- Quitting
dleyna-renderer-service[22170]: server.c : prv_control_point_stop_service() --- STOP
dleyna-renderer-service[22170]: upnp.c : dlr_upnp_unsubscribe() --- Enter
dleyna-renderer-service[22170]: upnp.c : dlr_upnp_unsubscribe() --- Exit
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- UDN uuid:12c49061-c46e-41ab-b472-b1f7b083efc3
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- IP Address 127.0.0.1
dleyna-renderer-service[22170]: device.c : prv_context_unsubscribe() --- Enter
dleyna-renderer-service[22170]: device.c : prv_context_unsubscribe() --- Exit
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- Device under construction. Switching context
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_cancel_queue() --- Cancel queue <source-1,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_cancel() --- Removing queue <source-1,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_free_cb() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_device_context_switch_end() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_device_context_switch_end() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_free_cb() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_cancel_queue() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_add_queue() --- Enter - queue <source-4,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_add_queue() --- Exit
dleyna-renderer-service[22170]: device.c : dlr_device_construct() --- Current step: 1
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Enter - Task added to queue <source-4,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Enter - Task added to queue <source-4,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_start() --- Enter - Starting queue <source-4,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_start() --- Exit
dleyna-renderer-service[22170]: device.c : dlr_device_construct() --- Exit
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- UDN uuid:12c49061-c46e-41ab-b472-b1f7b083efc3
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- IP Address 10.237.68.151
dleyna-renderer-service[22170]: device.c : prv_context_unsubscribe() --- Enter
dleyna-renderer-service[22170]: device.c : prv_context_unsubscribe() --- Exit
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- Device under construction. Switching context
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_cancel_queue() --- Cancel queue <source-4,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_cancel() --- Removing queue <source-4,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_free_cb() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_device_context_switch_end() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_device_context_switch_end() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_free_cb() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_cancel_queue() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_add_queue() --- Enter - queue <source-5,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_add_queue() --- Exit
dleyna-renderer-service[22170]: device.c : dlr_device_construct() --- Current step: 1
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Enter - Task added to queue <source-5,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Enter - Task added to queue <source-5,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_add_task() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_start() --- Enter - Starting queue <source-5,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_queue_start() --- Exit
dleyna-renderer-service[22170]: device.c : dlr_device_construct() --- Exit
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- UDN uuid:d845163b-0ded-487f-b6a7-5195ba5996f7
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- IP Address 10.237.68.151
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- Device not found. Ignoring
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- UDN uuid:eca1d5fa-0d1a-48ed-b58f-718b03378e64
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- IP Address 10.237.68.151
dleyna-renderer-service[22170]: device.c : prv_context_unsubscribe() --- Enter
dleyna-renderer-service[22170]: device.c : prv_context_unsubscribe() --- Exit
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- Device under construction. Cancelling
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_cancel_queue() --- Cancel queue <source-2,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_cancel() --- Removing queue <source-2,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_free_cb() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_device_chain_end() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_device_chain_end() --- Exit
dleyna-renderer-service[22170]:  
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_free_cb() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_cancel_queue() --- Exit
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- UDN uuid:12c49061-c46e-41ab-b472-b1f7b083efc3
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- IP Address 10.10.15.179
dleyna-renderer-service[22170]: device.c : prv_context_unsubscribe() --- Enter
dleyna-renderer-service[22170]: device.c : prv_context_unsubscribe() --- Exit
dleyna-renderer-service[22170]: upnp.c : prv_server_unavailable_cb() --- Device under construction. Cancelling
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_cancel_queue() --- Cancel queue <source-5,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_cancel() --- Removing queue <source-5,dleyna-renderer>
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_free_cb() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_device_chain_end() --- Enter
dleyna-renderer-service[22170]: upnp.c : prv_device_chain_end() --- Exit
dleyna-renderer-service[22170]:  
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : prv_free_cb() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/task-processor.c : dleyna_task_processor_cancel_queue() --- Exit
dleyna-renderer-service[22170]: src/connector-dbus.c : prv_connector_unpublish_object() --- Enter, object_id = 1
dleyna-renderer-service[22170]: src/connector-dbus.c : prv_connector_unpublish_object() --- Exit
dleyna-renderer-service[22170]: libdleyna/core/main-loop.c : prv_context_quit_cb() --- Quitting
dleyna-renderer-service[22170]: server.c : prv_control_point_stop_service() --- STOP
dleyna-renderer-service[22170]: upnp.c : dlr_upnp_unsubscribe() --- Enter
dleyna-renderer-service[22170]: upnp.c : dlr_upnp_unsubscribe() --- Exit
*** Error in `/home/jku/intel/src/dleyna/root/libexec/dleyna-renderer-service': double free or corruption (!prev): 0x000000000041a4a0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x7aad6)[0x7ffff6bd2ad6]
/lib/x86_64-linux-gnu/libc.so.6(+0x7b853)[0x7ffff6bd3853]
/home/jku/intel/src/dleyna/root/lib64/libdleyna-renderer-1.0.so.1(dlr_upnp_delete+0x5f)[0x7ffff7f98b3d]
/home/jku/intel/src/dleyna/root/lib64/libdleyna-renderer-1.0.so.1(+0xe73b)[0x7ffff7f9673b]
/home/jku/intel/src/dleyna/root/lib64/libdleyna-core-1.0.so.1(+0x36da)[0x7ffff7ff36da]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x135)[0x7ffff716cad5]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x4be18)[0x7ffff716ce18]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x34)[0x7ffff716ced4]
/usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1(+0x72785)[0x7ffff60b6785]
/home/jku/intel/src/dleyna/root/lib64/libgupnp-1.0.so.4(gupnp_service_info_get_introspection+0xbe)[0x7ffff7fb796e]
/home/jku/intel/src/dleyna/root/lib64/libdleyna-renderer-1.0.so.1(+0xaf13)[0x7ffff7f92f13]
/home/jku/intel/src/dleyna/root/lib64/libdleyna-renderer-1.0.so.1(+0xb5ad)[0x7ffff7f935ad]
/home/jku/intel/src/dleyna/root/lib64/libdleyna-renderer-1.0.so.1(+0xa56a)[0x7ffff7f9256a]
/home/jku/intel/src/dleyna/root/lib64/libgupnp-1.0.so.4(+0x173a3)[0x7ffff7fb83a3]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x135)[0x7ffff716cad5]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x4be18)[0x7ffff716ce18]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_loop_run+0x6a)[0x7ffff716d28a]
/home/jku/intel/src/dleyna/root/lib64/libdleyna-core-1.0.so.1(dleyna_main_loop_start+0x109)[0x7ffff7ff3981]
/home/jku/intel/src/dleyna/root/libexec/dleyna-renderer-service(main+0x12d)[0x400fca]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7ffff6b79a55]
/home/jku/intel/src/dleyna/root/libexec/dleyna-renderer-service[0x400cd9]
======= Memory map: ========
00400000-00402000 r-xp 00000000 fe:03 6947501                            /home/jku/intel/src/dleyna/root/libexec/dleyna-renderer-service
00402000-00403000 rw-p 00001000 fe:03 6947501                            /home/jku/intel/src/dleyna/root/libexec/dleyna-renderer-service
00403000-004bf000 rw-p 00000000 00:00 0                                  [heap]
7fffe4000000-7fffe4022000 rw-p 00000000 00:00 0 
7fffe4022000-7fffe8000000 ---p 00000000 00:00 0 
7fffec000000-7fffec022000 rw-p 00000000 00:00 0 
7fffec022000-7ffff0000000 ---p 00000000 00:00 0 
7ffff32d7000-7ffff32ec000 r-xp 00000000 fe:01 391046                     /lib/x86_64-linux-gnu/libgcc_s.so.1
7ffff32ec000-7ffff34ec000 ---p 00015000 fe:01 391046                     /lib/x86_64-linux-gnu/libgcc_s.so.1
7ffff34ec000-7ffff34ed000 rw-p 00015000 fe:01 391046                     /lib/x86_64-linux-gnu/libgcc_s.so.1
7ffff34ed000-7ffff34ee000 ---p 00000000 00:00 0 
7ffff34ee000-7ffff3cee000 rw-p 00000000 00:00 0 
7ffff3cee000-7ffff3cef000 ---p 00000000 00:00 0
Program received signal SIGABRT, Aborted.
0x00007ffff6b8d2a5 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0  0x00007ffff6b8d2a5 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff6b90448 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007ffff6bc887b in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007ffff6bd2ad6 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#4  0x00007ffff6bd3853 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#5  0x00007ffff7f98b3d in dlr_upnp_delete (upnp=0x41a4a0) at upnp.c:401
#6  0x00007ffff7f9673b in prv_control_point_stop_service () at server.c:568
#7  0x00007ffff7ff36da in prv_context_quit_cb (user_data=0x0) at libdleyna/core/main-loop.c:61
#8  0x00007ffff716cad5 in g_main_dispatch (context=0x40df50)
    at /build/glib2.0-XpSAmU/glib2.0-2.36.1/./glib/gmain.c:3054
#9  g_main_context_dispatch (context=context@entry=0x40df50)
    at /build/glib2.0-XpSAmU/glib2.0-2.36.1/./glib/gmain.c:3630
#10 0x00007ffff716ce18 in g_main_context_iterate (context=context@entry=0x40df50, block=block@entry=1, 
    dispatch=dispatch@entry=1, self=<error reading variable: Unhandled dwarf expression opcode 0xfa>)
    at /build/glib2.0-XpSAmU/glib2.0-2.36.1/./glib/gmain.c:3701
#11 0x00007ffff716ced4 in g_main_context_iteration (context=0x40df50, context@entry=0x0, may_block=may_block@entry=1)
    at /build/glib2.0-XpSAmU/glib2.0-2.36.1/./glib/gmain.c:3762
#12 0x00007ffff60b6785 in soup_session_async_send_message (session=0x43e060, msg=0x44c480) at soup-session-async.c:96
#13 0x00007ffff7fb796e in gupnp_service_info_get_introspection (info=0x4394c0, error=0x7fffffffd5d8)
    at gupnp-service-info.c:585
#14 0x00007ffff7f92f13 in prv_get_rc_service_states_values (rc_proxy=0x4394c0, max_volume=0x453d64) at device.c:1823
#15 0x00007ffff7f935ad in prv_props_update (device=0x453d10, task=0x0) at device.c:1986
#16 0x00007ffff7f9256a in prv_rc_last_change_cb (proxy=0x4394c0, variable=0x461470 "PqF", value=0x7fffffffd720, 
    user_data=0x453d10) at device.c:1534
#17 0x00007ffff7fb83a3 in emit_notification (var_node=0x467410, proxy=0x4394c0) at gupnp-service-proxy.c:1703
#18 emit_notifications_for_doc (doc=<optimized out>, proxy=0x4394c0) at gupnp-service-proxy.c:1734
#19 emit_notifications (user_data=0x4394c0) at gupnp-service-proxy.c:1779
#20 0x00007ffff716cad5 in g_main_dispatch (context=0x40df50)
    at /build/glib2.0-XpSAmU/glib2.0-2.36.1/./glib/gmain.c:3054
#21 g_main_context_dispatch (context=context@entry=0x40df50)
    at /build/glib2.0-XpSAmU/glib2.0-2.36.1/./glib/gmain.c:3630
#22 0x00007ffff716ce18 in g_main_context_iterate (context=0x40df50, block=block@entry=1, dispatch=dispatch@entry=1, 
    self=<error reading variable: Unhandled dwarf expression opcode 0xfa>)
    at /build/glib2.0-XpSAmU/glib2.0-2.36.1/./glib/gmain.c:3701
#23 0x00007ffff716d28a in g_main_loop_run (loop=0x42eaf0) at /build/glib2.0-XpSAmU/glib2.0-2.36.1/./glib/gmain.c:3895
#24 0x00007ffff7ff3981 in dleyna_main_loop_start (server=0x401094 "dleyna-renderer-service", 
    control_point=0x7ffff7f9fbe0, user_data=0x0) at libdleyna/core/main-loop.c:153
#25 0x0000000000400fca in main (argc=1, argv=0x7fffffffdad8) at daemon.c:93
(gdb) 
markdryan commented 11 years ago

Where did you add the sleep?

markdryan commented 11 years ago

Ah, I get it now too. It seems to still happen if there are multiple renderers.

markdryan commented 11 years ago

Ah, the old removing hash table entries from inside a call to g_hash_table_foreach.

jku, can you test https://github.com/01org/dleyna-core/pull/21 to see if this fixes the problem for you?

jku commented 11 years ago

dleyna-core PR 21 does fix the issue, thanks.

markdryan commented 11 years ago

Great.

Could I ask you to do a quick check of the code, i.e., the fix? If it looks okay to you I'll integrate it.

markdryan commented 11 years ago

Fixed by PR https://github.com/01org/dleyna-core/pull/21 and https://github.com/01org/dleyna-core/pull/22