#801634 network-manager: SIGSEGV on shutdown: NMManagerPrivate is NULL at check_if_startup_complete

Package:
network-manager
Source:
network-manager
Description:
network management framework (daemon and userspace tools)
Submitter:
Felipe Sateler
Date:
2015-10-12 20:21:05 UTC
Severity:
normal
#801634#5
Date:
2015-10-12 20:18:55 UTC
From:
To:
Hi,

I got a crash during shutdown of network manager. This is the backtrace:

(gdb) bt
#0  0x00000000004c699d in check_if_startup_complete (self=0xc191b0) at nm-manager.c:776
#4  0x00007f3f9fc7812f in <emit signal notify:connections on instance 0xc023e0 [NMSettings]> (instance=instance@entry=0xc023e0, signal_id=<optimized out>, detail=<optimized out>) at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./gobject/gsignal.c:3439
    #1  0x00007f3f9fc5d015 in g_closure_invoke (closure=0xcd4020, return_value=return_value@entry=0x0, n_param_values=2, param_values=param_values@entry=0x7ffd3a7b8d50, invocation_hint=invocation_hint@entry=0x7ffd3a7b8cd0)
    at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./gobject/gclosure.c:801
    #2  0x00007f3f9fc6f061 in signal_emit_unlocked_R (node=node@entry=0xbf5520, detail=detail@entry=357, instance=instance@entry=0xc023e0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffd3a7b8d50)
    at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./gobject/gsignal.c:3627
    #3  0x00007f3f9fc77dfc in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffd3a7b8f10) at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./gobject/gsignal.c:3383
#5  0x00007f3f9fc61544 in g_object_dispatch_properties_changed (object=0xc023e0 [NMSettings], n_pspecs=<optimized out>, pspecs=<optimized out>) at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./gobject/gobject.c:1061
#6  0x00007f3f9fc639d1 in g_object_notify (pspec=0xc1cec0 [GParamBoxed], object=0xc023e0 [NMSettings]) at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./gobject/gobject.c:1154
#7  0x00007f3f9fc639d1 in g_object_notify (object=0xc023e0 [NMSettings], property_name=property_name@entry=0x543a50 "connections") at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./gobject/gobject.c:1202
#8  0x000000000048ff9b in connection_removed (connection=0xd92760 [NMKeyfileConnection], user_data=<optimized out>) at settings/nm-settings.c:844
#12 0x00007f3f9fc785f5 in <emit signal 0x55fc16 "removed" on instance 0xd92760 [NMKeyfileConnection]> (instance=instance@entry=0xd92760, detailed_signal=detailed_signal@entry=0x55fc16 "removed") at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./gobject/gsignal.c:3479
    #9  0x00007f3f9fc5d015 in g_closure_invoke (closure=0xc34ed0, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7ffd3a7b9250, invocation_hint=invocation_hint@entry=0x7ffd3a7b91d0)
    at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./gobject/gclosure.c:801
    #10 0x00007f3f9fc6f061 in signal_emit_unlocked_R (node=node@entry=0xc2dbe0, detail=detail@entry=0, instance=instance@entry=0xd92760, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffd3a7b9250)
    at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./gobject/gsignal.c:3627
    #11 0x00007f3f9fc77dfc in g_signal_emit_valist (instance=instance@entry=0xd92760, signal_id=signal_id@entry=44, detail=detail@entry=0, var_args=var_args@entry=0x7ffd3a7b9448) at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./gobject/gsignal.c:3383
#13 0x000000000048c5e1 in nm_settings_connection_signal_remove (self=0xd92760 [NMKeyfileConnection]) at settings/nm-settings-connection.c:1765
#14 0x000000000048c6d3 in do_delete (self=0xd92760 [NMKeyfileConnection], callback=0x488dc0 <ignore_cb>, user_data=0x0) at settings/nm-settings-connection.c:714
#15 0x00007f3f981c5ce2 in dispose (object=0xc83ad0 [NMBluezDevice]) at nm-bluez-device.c:1134
#16 0x00007f3f9fc61d95 in g_object_unref (_object=0xc83ad0) at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./gobject/gobject.c:3142
Python Exception <class 'TypeError'> iter() returned non-iterator of type '_iterator':
#17 0x00007f3f9f97624a in g_hash_table_remove_all_nodes (hash_table=0xce5520, notify=<optimized out>, destruction=<optimized out>) at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./glib/ghash.c:548
Python Exception <class 'TypeError'> iter() returned non-iterator of type '_iterator':
#18 0x00007f3f9f977193 in g_hash_table_remove_all (destruction=0, notify=1, hash_table=0xce5520) at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./glib/ghash.c:1425
Python Exception <class 'TypeError'> iter() returned non-iterator of type '_iterator':
#19 0x00007f3f9f977193 in g_hash_table_remove_all (hash_table=0xce5520) at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./glib/ghash.c:1428
#20 0x00007f3f981ca365 in bluez_cleanup (self=self@entry=0xd05d70 [NMBluez5Manager], do_signal=do_signal@entry=0) at nm-bluez5-manager.c:324
#21 0x00007f3f981cacd7 in dispose (object=0xd05d70 [NMBluez5Manager]) at nm-bluez5-manager.c:382
#22 0x00007f3f9fc61d95 in g_object_unref (_object=0xd05d70) at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./gobject/gobject.c:3142
#23 0x00007f3f981c4f7b in dispose (object=<optimized out>) at nm-bluez-manager.c:392
#24 0x00007f3f9fc61d95 in g_object_unref (_object=0xcd3fa0) at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./gobject/gobject.c:3142
Python Exception <class 'TypeError'> iter() returned non-iterator of type '_iterator':
#25 0x00007f3f9f97624a in g_hash_table_remove_all_nodes (hash_table=0xc99460, notify=<optimized out>, destruction=<optimized out>) at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./glib/ghash.c:548
Python Exception <class 'TypeError'> iter() returned non-iterator of type '_iterator':
#26 0x00007f3f9f976bef in g_hash_table_unref (destruction=1, notify=1, hash_table=0xc99460) at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./glib/ghash.c:1093
Python Exception <class 'TypeError'> iter() returned non-iterator of type '_iterator':
#27 0x00007f3f9f976bef in g_hash_table_unref (hash_table=0xc99460) at /build/glib2.0-BMd9vh/glib2.0-2.46.0/./glib/ghash.c:1097
#28 0x00007f3fa204e01a in _dl_fini () at dl-fini.c:252
#29 0x00007f3f9f3afbc9 in __run_exit_handlers (status=status@entry=0, listp=0x7f3f9f71b5a8 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true) at exit.c:82
#30 0x00007f3f9f3afc15 in __GI_exit (status=status@entry=0) at exit.c:104
#31 0x0000000000436968 in main (argc=1, argv=0x7ffd3a7b9ba8) at main.c:525
(gdb) print priv
$1 = (NMManagerPrivate *) 0x0


Somehow the private object got nulled and this function cannot handle that.

I have the core file around so if you need me to run more gdb commands I can do that.

Saludos