Launchpad has imported 3 comments from the remote bug at
https://bugs.freedesktop.org/show_bug.cgi?id=36055.

If you reply to an imported comment from within Launchpad, your comment
will be sent to the remote bug automatically. Read more about
Launchpad's inter-bugtracker facilities at
https://help.launchpad.net/InterBugTracking.

------------------------------------------------------------------------
On 2011-04-07T09:31:59+00:00 Mathieu Trudel-Lapierre wrote:

Created attachment 45388
full stack trace

>From the downstream bug report:
https://bugs.edge.launchpad.net/ubuntu/+source/geoclue/+bug/738584

Apparently the master provider crashes in some cases, possibly more
likely after a resume from suspend:

 __kernel_vsyscall ()
 raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
 abort () at abort.c:92
 g_assertion_message (domain=0x0, file=0x804f779 "master-provider.c", line=822, 
func=0x804fb20 "gc_master_provider_initialize_interfaces", message=<value 
optimized out>) at /build/buildd/glib2.0-2.28.3/./glib/gtestutils.c:1358
 g_assertion_message_expr (domain=0x0, file=0x804f779 "master-provider.c", 
line=822, func=0x804fb20 "gc_master_provider_initialize_interfaces", 
expr=0x804f7d1 "priv->position == NULL") at 
/build/buildd/glib2.0-2.28.3/./glib/gtestutils.c:1369

Looks like in this particular case priv->position is not NULL.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/geoclue/+bug/738584/comments/5

------------------------------------------------------------------------
On 2011-04-07T09:47:31+00:00 Mathieu Trudel-Lapierre wrote:

Created attachment 45389
don't assert for position/address to be NULL when initializing interfaces

I'm not certain of the exact case since I haven't been able to reproduce
the crash at all, no matter how hard I tried, but I think the following
would make sense:

@@ -819,20 +819,20 @@
        }

        if (priv->interfaces & GC_IFACE_POSITION) {
-               g_assert (priv->position == NULL);
-               
-               priv->position = geoclue_position_new (priv->service, 
-                                                      priv->path);
-               g_signal_connect (G_OBJECT (priv->position), "position-changed",
-                                 G_CALLBACK (position_changed), provider);
+               if (priv->position == NULL) {
+                       priv->position = geoclue_position_new (priv->service, 
+                                                              priv->path);
+                       g_signal_connect (G_OBJECT (priv->position), 
"position-changed",
+                                         G_CALLBACK (position_changed), 
provider);
+               }
        }
        if (priv->interfaces & GC_IFACE_ADDRESS) {

If for some reason the position object isn't NULL (e.g. which I guess
could be possible on resume, see below), merrily carry on.

I think what's happening is in the case of this bug report, the system
resumes and NM quickly cycles through the various states, probably fast
enough to online that the master provider gets to call:

        /* update connection-cacheable providers */
        if (status == GEOCLUE_CONNECTIVITY_ONLINE &&
            priv->provides & GEOCLUE_PROVIDE_CACHEABLE_ON_CONNECTION) {
                /* intialize to fill cache (this will handle status change) */
                if (gc_master_provider_initialize (provider)) {
                        gc_master_provider_deinitialize (provider);
                }

Tries to initialize the interfaces, and fails because position or
address are already filled.

Attached is the "full" patch for the piece of code I added above. Might
be cleaner to deinit it and fill it back though.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/geoclue/+bug/738584/comments/6

------------------------------------------------------------------------
On 2013-09-09T14:50:11+00:00 Zeeshan Ali wrote:

Closing all bugs on old geoclue. If your bug still applies to new
geoclue, please do re-open, I really don't have time to go through each
and every bug and evaluate separately. :( Apologies for any
inconvenience caused by this change.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/geoclue/+bug/738584/comments/14


** Changed in: geoclue
       Status: Confirmed => Won't Fix

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/738584

Title:
  geoclue-master crashed with SIGABRT in __kernel_vsyscall()

To manage notifications about this bug go to:
https://bugs.launchpad.net/geoclue/+bug/738584/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to