GNOME Bugzilla – Bug 659103
Epiphany will not start (segfault) when network manager is not running.
Last modified: 2011-09-27 14:03:29 UTC
Overview: Running the GNOME 3.2 beta2 release on arch linux, if the networkmanager daemon isn't started epiphany returns a 'GLib-GObject-CRITICAL' and Segmentation fault. Steps to Reproduce: Stop the networkmanager daemon (rc.d stop networkmanager) Launch epiphany 3.1.91.1 -- $ sudo rc.d stop networkmanager :: Stopping NetworkManager [DONE] $ epiphany (epiphany:15918): GLib-GObject-WARNING **: invalid (NULL) pointer instance (epiphany:15918): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed Segmentation fault -- Expected Results: As per commit 'Copy&paste a few NM defines/enums we need at compile time', http://git.gnome.org/browse/epiphany/commit/?id=64ff9f8650277fdf849917a01dde4b18e67b046d I would expect epiphany to attempt connection to NM through dbus and gracefully remove NM dependent features on failure. Build Date: Wed 07 Sep 2011 04:47:25 PM EST Platform: Linux 3.0-ARCH, x86_64, arch linux Additional Information: Issue was traced through gdb --- (gdb) run Starting program: /usr/bin/epiphany [Thread debugging using libthread_db enabled] [New Thread 0x7fffe7817700 (LWP 16094)] [New Thread 0x7fffe7016700 (LWP 16095)] [New Thread 0x7fffe58e1700 (LWP 16096)] [New Thread 0x7fffe4fc0700 (LWP 16097)] (epiphany:16091): GLib-GObject-WARNING **: invalid (NULL) pointer instance (epiphany:16091): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed Program received signal SIGSEGV, Segmentation fault. 0x00000000004475a9 in ephy_network_manager_get_state () (gdb) bt
+ Trace 228448
---
proper trace Starting program: /usr/bin/epiphany [Thread debugging using libthread_db enabled] [New Thread 0xb38c1b70 (LWP 12737)] [New Thread 0xb2effb70 (LWP 12738)] [New Thread 0xb1b05b70 (LWP 12740)] [New Thread 0xb11dcb70 (LWP 12741)] (epiphany:12734): GLib-GObject-WARNING **: invalid (NULL) pointer instance (epiphany:12734): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed Program received signal SIGSEGV, Segmentation fault. 0x08088935 in ephy_network_manager_get_state (object=0x0) at ephy-network-manager.c:350 350 ephy-network-manager.c: No such file or directory. in ephy-network-manager.c (gdb) bt full
+ Trace 228577
i don't know if is a bug in epiphany or in glib gdbus-codegen since ephy-network-manager.c is generated
and the bug is in generated code. Program received signal SIGSEGV, Segmentation fault. 0x08088935 in ephy_network_manager_get_state (object=0x0) at ephy-network-manager.c:350 350 return EPHY_NETWORK_MANAGER_GET_IFACE (object)->get_state (object); (gdb) bt full where is fault here, glib or epiphany?
Created attachment 197485 [details] [review] don't crash when nm is not available
Review of attachment 197485 [details] [review]: I think it's better to have a g_return_if_fail with priv->nm_proxy after the call to _get_net_monitor, since this is not a normal situation.
Created attachment 197500 [details] [review] take two
Created attachment 197501 [details] [review] take three
Created attachment 197502 [details] [review] last call
sorry for the spam
Review of attachment 197502 [details] [review]: Looks great, thank you. Please commit after the freeze is over.
Doesn't this grant a code-freeze break request? It's a crasher after all..
Comment on attachment 197502 [details] [review] last call Pushed to master.