← Back to team overview

desktop-packages team mailing list archive

[Bug 908787] Re: nautilus crashed with SIGSEGV in g_str_hash()

 

I can reproduce this in precise as well. Here is a slightly better
backtrace:

1) gdb nautilus
2) run Computer://
3) Double click a partition in the nautilus window
4) Following backtrace:

(gdb) run Computer://
Starting program: /usr/bin/nautilus Computer://
[Thread debugging using libthread_db enabled]
[New Thread 0xb68feb70 (LWP 14782)]
[New Thread 0xb60fdb70 (LWP 14783)]
[New Thread 0xb58d3b70 (LWP 14784)]
Initializing nautilus-gdu extension

GLib-GObject-CRITICAL **: g_value_get_pointer: assertion
`G_VALUE_HOLDS_POINTER (value)' failed

Program received signal SIGSEGV, Segmentation fault.
g_str_hash (v=0x0) at /build/buildd/glib2.0-2.31.4.tested/./glib/ghash.c:1661
1661	/build/buildd/glib2.0-2.31.4.tested/./glib/ghash.c: No such file or directory.
	in /build/buildd/glib2.0-2.31.4.tested/./glib/ghash.c
(gdb) bt
#0  g_str_hash (v=0x0)
    at /build/buildd/glib2.0-2.31.4.tested/./glib/ghash.c:1661
#1  0xb7374a38 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, 
    key=0x0, hash_table=0x8783ee8)
    at /build/buildd/glib2.0-2.31.4.tested/./glib/ghash.c:385
#2  g_hash_table_lookup (hash_table=0x8783ee8, key=0x0)
    at /build/buildd/glib2.0-2.31.4.tested/./glib/ghash.c:1058
#3  0xb50493b9 in gdu_pool_get_by_object_path (pool=0x832acf0, object_path=0x0)
    at gdu-pool.c:2217
#4  0xb50479b6 in device_changed_signal_handler (proxy=0x87e4090, 
    object_path=0x0, user_data=0x832acf0) at gdu-pool.c:1528
#5  0xb7444f8a in g_cclosure_marshal_VOID__POINTER (closure=0x87ce5a0, 
    return_value=0x0, n_param_values=2, param_values=0x87ec5c0, 
    invocation_hint=0xbfffee90, marshal_data=0x0)
    at /build/buildd/glib2.0-2.31.4.tested/./gobject/gmarshal.c:609
#6  0xb502017a in marshal_dbus_message_to_g_marshaller (closure=0x87ce5a0, 
    return_value=0x0, n_param_values=3, param_values=0x87d4048, 
    invocation_hint=0xbfffee90, marshal_data=0x0) at dbus-gproxy.c:1734
#7  0xb7442dac in g_closure_invoke (closure=0x87ce5a0, return_value=0x0, 
    n_param_values=3, param_values=0x87d4048, invocation_hint=0xbfffee90)
    at /build/buildd/glib2.0-2.31.4.tested/./gobject/gclosure.c:774
#8  0xb74540c5 in signal_emit_unlocked_R (node=0x82be698, detail=2861, 
    instance=0x87e4090, emission_return=0x0, instance_and_params=0x87d4048)
    at /build/buildd/glib2.0-2.31.4.tested/./gobject/gsignal.c:3302
#9  0xb745b942 in g_signal_emit_valist (instance=0x87e4090, signal_id=220, 
    detail=2861, var_args=0xbffff044 "")
    at /build/buildd/glib2.0-2.31.4.tested/./gobject/gsignal.c:3033
#10 0xb745bad3 in g_signal_emit (instance=0x87e4090, signal_id=220, 
    detail=2861)
    at /build/buildd/glib2.0-2.31.4.tested/./gobject/gsignal.c:3090
#11 0xb5020820 in dbus_g_proxy_emit_remote_signal (message=0x8427ce0, 
    proxy=<optimized out>) at dbus-gproxy.c:1787
#12 dbus_g_proxy_manager_filter (user_data=0x87c98d0, message=0x8427ce0, 
    connection=<optimized out>) at dbus-gproxy.c:1354
#13 dbus_g_proxy_manager_filter (connection=0x87d0568, message=0x8427ce0, 
    user_data=0x87c98d0) at dbus-gproxy.c:1195
#14 0xb693e441 in dbus_connection_dispatch ()
   from /lib/i386-linux-gnu/libdbus-1.so.3
#15 0xb50189ad in message_queue_dispatch (source=0x878fb98, callback=0, 
    user_data=0x0) at dbus-gmain.c:90
#16 0xb738528a in g_main_dispatch (context=0x81f3b80)
    at /build/buildd/glib2.0-2.31.4.tested/./glib/gmain.c:2513
#17 g_main_context_dispatch (context=0x81f3b80)
    at /build/buildd/glib2.0-2.31.4.tested/./glib/gmain.c:3050
#18 0xb7385695 in g_main_context_iterate (dispatch=1, block=-1220988880, 
    context=0x81f3b80, self=<optimized out>)
    user_data=0x0) at dbus-gmain.c:90
#16 0xb738528a in g_main_dispatch (context=0x81f3b80)
    at /build/buildd/glib2.0-2.31.4.tested/./glib/gmain.c:2513
#17 g_main_context_dispatch (context=0x81f3b80)
    at /build/buildd/glib2.0-2.31.4.tested/./glib/gmain.c:3050
#18 0xb7385695 in g_main_context_iterate (dispatch=1, block=-1220988880, 
    context=0x81f3b80, self=<optimized out>)
    at /build/buildd/glib2.0-2.31.4.tested/./glib/gmain.c:3121
#19 g_main_context_iterate (context=0x81f3b80, block=-1220988880, dispatch=1, 
    self=<optimized out>)
    at /build/buildd/glib2.0-2.31.4.tested/./glib/gmain.c:3058
#20 0xb7385771 in g_main_context_iteration (context=0x81f3b80, may_block=1)
    at /build/buildd/glib2.0-2.31.4.tested/./glib/gmain.c:3182
#21 0xb753862c in g_application_run (application=0x81c5c08, argc=2, 
    argv=0xbffff374)
    at /build/buildd/glib2.0-2.31.4.tested/./gio/gapplication.c:1548
#22 0x08067ae4 in ?? ()
#23 0xb7178113 in __libc_start_main (main=0x8067a20, argc=2, 
    ubp_av=0xbffff374, init=0x8158bd0, fini=0x8158c40, rtld_fini=0xb7feebc0, 
    stack_end=0xbffff36c) at libc-start.c:226
#24 0x08067b1d in ?? ()
Backtrace stopped: Not enough registers or memory available to unwind further

The NULL object_path above when libgdu receives the DeviceChanged signal
from udisks seems to be the cause, but interestingly, running:

dbus-monitor --system
"type='signal',sender='org.freedesktop.UDisks',interface='org.freedesktop.UDisks'"

I get:

signal sender=org.freedesktop.DBus -> dest=:1.81 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.81"
signal sender=:1.54 -> dest=(null destination) serial=389 path=/org/freedesktop/UDisks; interface=org.freedesktop.UDisks; member=DeviceJobChanged
   object path "/org/freedesktop/UDisks/devices/sda4"
   boolean true
   string "FilesystemMount"
   uint32 1000
   boolean false
   double -1
signal sender=:1.54 -> dest=(null destination) serial=393 path=/org/freedesktop/UDisks; interface=org.freedesktop.UDisks; member=DeviceChanged
   object path "/org/freedesktop/UDisks/devices/sda4"
signal sender=:1.54 -> dest=(null destination) serial=395 path=/org/freedesktop/UDisks; interface=org.freedesktop.UDisks; member=DeviceJobChanged
   object path "/org/freedesktop/UDisks/devices/sda4"
   boolean false
   string ""
   uint32 0
   boolean false
   double -1

So the object path would seem to be non-NULL when udisks emits it.
Strange.

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to nautilus in Ubuntu.
https://bugs.launchpad.net/bugs/908787

Title:
  nautilus crashed with SIGSEGV in g_str_hash()

Status in “nautilus” package in Ubuntu:
  Confirmed

Bug description:
  I can see there are old duplicates of this bug title, with upstream
  bugs marked obsolete. Yet, this happened on current Precise. I was
  clicking on a disk icon to have it mounted.

  I was able to reproduce it once by unmounting the disk in the dock,
  then double-clicking on it in a "Computer" window.

  ProblemType: Crash
  DistroRelease: Ubuntu 12.04
  Package: nautilus 1:3.2.1-2ubuntu4
  ProcVersionSignature: Ubuntu 3.2.0-6.12-generic-pae 3.2.0-rc6
  Uname: Linux 3.2.0-6-generic-pae i686
  ApportVersion: 1.90-0ubuntu1
  Architecture: i386
  Date: Mon Dec 26 15:16:34 2011
  ExecutablePath: /usr/bin/nautilus
  InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Alpha i386 (20111225)
  ProcCmdline: nautilus -n
  ProcEnviron:
   PATH=(custom, no user)
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  SegvAnalysis:
   Segfault happened at: 0xb6ba534a <g_str_hash+10>:	movzbl (%ecx),%edx
   PC (0xb6ba534a) ok
   source "(%ecx)" (0x00000000) not located in a known VMA region (needed readable region)!
   destination "%edx" ok
  SegvReason: reading NULL VMA
  Signal: 11
  SourcePackage: nautilus
  StacktraceTop:
   g_str_hash () from /lib/i386-linux-gnu/libglib-2.0.so.0
   g_hash_table_lookup () from /lib/i386-linux-gnu/libglib-2.0.so.0
   gdu_pool_get_by_object_path () from /usr/lib/i386-linux-gnu/libgdu.so.0
   ?? () from /usr/lib/i386-linux-gnu/libgdu.so.0
   g_cclosure_marshal_VOID__POINTER () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  Title: nautilus crashed with SIGSEGV in g_str_hash()
  UpgradeStatus: No upgrade log present (probably fresh install)
  UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/908787/+subscriptions


References