! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
xfdesktop crashes on refresh
Status:
RESOLVED: FIXED
Severity:
critical
Product:
Xfdesktop
Component:
General

Comments

Description Andrea Santilli 2006-09-05 23:59:28 CEST
User-Agent:       Mozilla/5.0 (X11; U; Linux i686; it; rv:1.8.0.6) Gecko/20060808 Fedora/1.5.0.6-2.fc5 Firefox/1.5.0.6 pango-text
Build Identifier: 

the title says it all, when i press F5 on the desktop it crashes

Reproducible: Always

Steps to Reproduce:
1. Click on the desktop to select it
2. Press F5 to refresh it
3. it just crashes
Comment 1 Brian J. Tarricone (not reading bugmail) 2006-09-09 13:58:33 CEST
gdb backtrace?
Comment 2 Andrea Santilli 2006-09-10 12:58:17 CEST
when i run gdb xfdesktop then pressed F5 i got this message:

[Thread -1211389024 (LWP 23505) exited]
23499: assertion failed "!_dbus_transport_get_is_connected (connection->transport)" file "dbus-connection.c" line 1797 function _dbus_connection_last_unref

then i asked gdb for the backtrace. i got this output:

#0  0x0099d402 in __kernel_vsyscall ()
#1  0x00b14069 in raise () from /lib/libc.so.6
#2  0x00b15671 in abort () from /lib/libc.so.6
#3  0x0050e395 in dbus_malloc () from /lib/libdbus-1.so.2
#4  0x004f81e7 in dbus_watch_set_data () from /lib/libdbus-1.so.2
#5  0x004c975b in dbus_connection_free_preallocated_send ()
   from /lib/libdbus-1.so.2
#6  0x0048979d in thunar_vfs_volume_manager_hal_finalize ()
   from /opt/xfce4/lib/libthunar-vfs-1.so.2
#7  0x05fa62bc in g_object_unref () from /usr/lib/libgobject-2.0.so.0
#8  0x08066cbe in xfdesktop_file_icon_manager_remove_removable_media ()
#9  0x080692bc in xfdesktop_file_icon_manager_key_press ()
#10 0x06e2558e in gtk_marshal_BOOLEAN__VOID ()
   from /usr/lib/libgtk-x11-2.0.so.0
#11 0x05fa3f8b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#12 0x05fb4e3d in g_signal_override_class_closure ()
   from /usr/lib/libgobject-2.0.so.0
#13 0x05fb610f in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#14 0x05fb6509 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#15 0x06f10858 in gtk_widget_get_default_style ()
   from /usr/lib/libgtk-x11-2.0.so.0
#16 0x06e1ef9a in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#17 0x06e201b7 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#18 0x06b7f85a in gdk_add_client_message_filter ()
   from /usr/lib/libgdk-x11-2.0.so.0
#19 0x007eb15d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#20 0x007ee3ef in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#21 0x007ee799 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#22 0x06e20634 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#23 0x08055524 in main ()
Comment 3 Brian J. Tarricone (not reading bugmail) 2006-09-10 15:03:57 CEST
Benny, any ideas?
Comment 4 Benedikt Meurer editbugs 2006-09-10 15:05:20 CEST
Build thunar with --enable-debug=full.
Comment 5 Brian J. Tarricone (not reading bugmail) 2006-09-16 15:04:55 CEST
*** Bug 2299 has been marked as a duplicate of this bug. ***
Comment 6 Brian J. Tarricone (not reading bugmail) 2006-09-16 15:05:30 CEST
*** Bug 2272 has been marked as a duplicate of this bug. ***
Comment 7 Maximilian Schleiss editbugs 2006-09-29 19:34:05 CEST
I have quite the same problem here. The steps I follow to reproduce are:

- start the desktop environment from the console with startxfce4
- open thunar and copy whatever file on the desktop
- close thunar, the file does not appear on the desktop so I refresh with F5
- move the file to the dustbin and xfdesktop crashes

Here is a backtrace of the crash:

#0  0x08072964 in xfdesktop_special_file_icon_new ()
#1  0xb76ebc65 in g_cclosure_marshal_VOID__BOOLEAN ()
   from /usr/lib/libgobject-2.0.so.0
#2  0xb77121e4 in dbus_g_proxy_get_type () from /usr/lib/libdbus-glib-1.so.2
#3  0xb76d4dbb in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#4  0xb76ea5b6 in g_signal_has_handler_pending ()
   from /usr/lib/libgobject-2.0.so.0
#5  0xb76eb4d4 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#6  0xb76eb7c6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#7  0xb7712ded in dbus_g_proxy_get_type () from /usr/lib/libdbus-glib-1.so.2
#8  0xb76af856 in dbus_connection_dispatch () from /usr/lib/libdbus-1.so.2
#9  0xb770cd7d in dbus_g_message_get_message ()
   from /usr/lib/libdbus-glib-1.so.2
#10 0xb762f457 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#11 0xb7630df4 in g_main_context_acquire () from /usr/lib/libglib-2.0.so.0
#12 0xb763111a in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#13 0xb7bce013 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#14 0x0805562c in main ()

HTH.
Max.
Comment 8 Alexander Toresson 2006-10-07 10:14:20 CEST
Created attachment 818 
output from xfdesktop when compiled with --enable-debug=full, and reproducing the bug (schleiss' way)
Comment 9 Alexander Toresson 2006-10-07 10:24:34 CEST
Here's the full backtrace, with debug symbols (for everything but dbus), of the crash:

#0  0x080755c5 in xfdesktop_special_file_icon_trash_changed_cb (proxy=0x80a7fa0, trash_full=1, user_data=0x8097a40) at xfdesktop-special-file-icon.c:566
#1  0xa78ebe1b in IA__g_cclosure_marshal_VOID__BOOLEAN (closure=0x80dca20, return_value=0x0, n_param_values=2, param_values=0x845f4c0, 
    invocation_hint=0xafef24dc, marshal_data=0x8075530) at gmarshal.c:111
#2  0xa78c1b4a in dbus_g_proxy_set_interface () from /usr/lib/libdbus-glib-1.so.2
#3  0xa78dea2b in IA__g_closure_invoke (closure=0x80dca20, return_value=0x0, n_param_values=3, param_values=0xafef25cc, invocation_hint=0xafef24dc)
    at gclosure.c:490
#4  0xa78eefcd in signal_emit_unlocked_R (node=0x80dc2b0, detail=463, instance=0x80a7fa0, emission_return=0x0, instance_and_params=0xafef25cc) at gsignal.c:2438
#5  0xa78f04c9 in IA__g_signal_emit_valist (instance=0x80a7fa0, signal_id=103, detail=463, 
    var_args=0xafef2814 "\b+\213�((�}W\214�\020\023\b\b0'\213��dE\b0!E\bp�\r\b�\177\n\bX(�\033g\212�\020\023\b\b\027N~�h\033b\b�\001") at gsignal.c:2197
#6  0xa78f0679 in IA__g_signal_emit (instance=0x80a7fa0, signal_id=103, detail=463) at gsignal.c:2241
#7  0xa78c2a04 in dbus_g_proxy_set_interface () from /usr/lib/libdbus-glib-1.so.2
#8  0xa788f4fc in dbus_connection_dispatch () from /usr/lib/libdbus-1.so.3
#9  0xa78ba52d in dbus_server_setup_with_g_main () from /usr/lib/libdbus-glib-1.so.2
#10 0xa781c7b1 in IA__g_main_context_dispatch (context=0x809adc8) at gmain.c:2045
#11 0xa781f826 in g_main_context_iterate (context=0x809adc8, block=1, dispatch=1, self=0x807f048) at gmain.c:2677
#12 0xa781fbe7 in IA__g_main_loop_run (loop=0x8210e10) at gmain.c:2881
#13 0xa7cd9141 in IA__gtk_main () at gtkmain.c:1003
#14 0x0805565c in main (argc=135164168, argv=0x0) at main.c:394

The ultimate reason for the crash is that special_file_icon->priv contains an invalid pointer (in my cases it has been both 0x0 and 0x40c00003).

But you probably already knew all this.

If I'd be more familar with gtk/dbus programming I'd prolly be able to help more.
Comment 10 Jasper Huijsmans editbugs 2006-10-07 18:01:38 CEST
Maximilian, Alexander, that's a different bug than the one from Andrea.
Comment 11 Jasper Huijsmans editbugs 2006-10-07 18:05:30 CEST
I can reproduce it, but it's not obvious to me where to start looking for a solution. Any pointers?

11997: assertion failed "!_dbus_transport_get_is_connected (connection->transport)" file "dbus-connection.c" line 1797 function _dbus_connection_last_unref

Program received signal SIGABRT, Aborted.
[Switching to Thread -1220794176 (LWP 11997)]
0xb7f9b410 in ?? ()
(gdb) bt
#0  0xb7f9b410 in ?? ()
#1  0xbfe71adc in ?? ()
#2  0x00000006 in ?? ()
#3  0x00002edd in ?? ()
#4  0xb762d731 in raise () from /lib/libc.so.6
#5  0xb762ee29 in abort () from /lib/libc.so.6
#6  0xb78093a7 in _dbus_abort () at dbus-sysdeps.c:89
#7  0xb77fbca7 in _dbus_real_assert (condition=0, 
    condition_text=0xb780b408 "!_dbus_transport_get_is_connected (connection->transport)", file=0xb780afec "dbus-connection.c", line=1797, 
    func=0xb780c5ed "_dbus_connection_last_unref") at dbus-internals.c:477
#8  0xb77d8c88 in _dbus_connection_last_unref (connection=0x80e2640)
    at dbus-connection.c:1797
#9  0xb7dfc50c in thunar_vfs_volume_manager_hal_finalize (object=0x80d2780)
    at thunar-vfs-volume-hal.c:940
#10 0xb78463e3 in g_object_unref () from /usr/lib/libgobject-2.0.so.0
#11 0x08066f47 in xfdesktop_file_icon_manager_remove_removable_media (
    fmanager=<value optimized out>) at xfdesktop-file-icon-manager.c:2477
#12 0x0806974c in xfdesktop_file_icon_manager_key_press (widget=0x80d3000, 
    evt=0x80b0910, user_data=0x80d4d50) at xfdesktop-file-icon-manager.c:2017
Comment 12 Brian J. Tarricone (not reading bugmail) 2006-10-07 18:49:12 CEST
D-Bus is retarded and asserts if the connection to the session daemon is dropped for any reason, and then you try to use the connection again.  It's hard to say why it's losing its connection, though.

Regarding the output in attachment 818 , that last line looks interesting.  Not sure why it would be a problem, though from a few lines up, it looks like there are more files in ~/Desktop than there is space on the screen.  So maybe the trash icon isn't getting placed on the screen, and is thus being destroyed, but a callback that uses it hasn't been disconnected.

Ok, yeah, seems the DBusGProxy never goes away, so the callback lives past the life of the trash icon object.  I committed something that should fix that, though I don't know if that fixes this particular problem.  Maybe only part of it, just the problem in comment #9.  Please test.
Comment 13 Olivier Fourdan editbugs 2006-10-09 11:27:31 CEST
Created attachment 821 
Patch to fix critical warnings and crash.

This patch fixes critical warnings and crashes for me, including on refresh view.

Does it fix the problem mentioned here too? Please apply and try for yourself.
Comment 14 Brian J. Tarricone (not reading bugmail) 2006-10-09 16:30:11 CEST
Thanks Olivier - trying to understand what's triggering this, though.  Do you have more files in ~/Desktop than can fit on the desktop?
Comment 15 Olivier Fourdan editbugs 2006-10-09 17:12:26 CEST
No, I tried and the problem shows even with a totally empty ~/Desktop/
Comment 16 Brian J. Tarricone (not reading bugmail) 2006-10-09 17:25:14 CEST
Ok, then that's not the same issue, at least, it shouldn't have anything to do with the bt in comment #7.  This bug is getting really cluttered - it's now dealing with three completely separate issues.  Please open new ones.

Still not clear to me why those functions are returning NULL.  xfdesktop_regular_file_icon_new() and xfdesktop_volume_icon_new() should not return NULL (if they do, we get a warning to console, which I don't see from anyone's output).  xfdesktop_special_file_icon_new() will only return NULL if it's the trash icon and we can't connect to the dbus session daemon for some reason.
Comment 17 Andrea Santilli 2006-10-09 19:04:04 CEST
it still crashes even with the patch:
thats what happens when i press F5 (then the backtrace follows):

[Thread -1211409504 (LWP 13098) exited]
13094: assertion failed "!_dbus_transport_get_is_connected (connection->transport)" file "dbus-connection.c" line 1797 function _dbus_connection_last_unref

Program received signal SIGABRT, Aborted.
---Type <return> to continue, or q <return> to quit---
[Switching to Thread -1209243968 (LWP 13094)]
0x00970402 in __kernel_vsyscall ()
(gdb) bt
#0  0x00970402 in __kernel_vsyscall ()
#1  0x009b5ee9 in raise () from /lib/libc.so.6
#2  0x009b74f1 in abort () from /lib/libc.so.6
#3  0x008f8395 in dbus_malloc () from /lib/libdbus-1.so.2
#4  0x008e21e7 in dbus_watch_set_data () from /lib/libdbus-1.so.2
#5  0x008b375b in dbus_connection_free_preallocated_send ()
   from /lib/libdbus-1.so.2
#6  0x0011b79d in thunar_vfs_volume_manager_hal_finalize ()
   from /opt/xfce4/lib/libthunar-vfs-1.so.2
#7  0x002352bc in g_object_unref () from /usr/lib/libgobject-2.0.so.0
#8  0x08066cbe in xfdesktop_file_icon_manager_remove_removable_media ()
#9  0x080692bc in xfdesktop_file_icon_manager_key_press ()
#10 0x04d3358e in gtk_marshal_BOOLEAN__VOID ()
   from /usr/lib/libgtk-x11-2.0.so.0
#11 0x00232f8b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#12 0x00243e3d in g_signal_override_class_closure ()
   from /usr/lib/libgobject-2.0.so.0
#13 0x0024510f in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#14 0x00245509 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#15 0x04e1e858 in gtk_widget_get_default_style ()
   from /usr/lib/libgtk-x11-2.0.so.0
#16 0x04d2cf9a in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#17 0x04d2e1b7 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#18 0x0059a85a in gdk_add_client_message_filter ()
   from /usr/lib/libgdk-x11-2.0.so.0
#19 0x001ad15d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#20 0x001b03ef in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#21 0x001b0799 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#22 0x04d2e634 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#23 0x08055524 in main ()
Comment 18 Brian J. Tarricone (not reading bugmail) 2006-10-09 19:30:52 CEST
(In reply to comment #17)
> it still crashes even with the patch:
> thats what happens when i press F5 (then the backtrace follows):

Correct.  As I said, the patch does not address the problem in comment #2.  Whoops, looks like I said comment #7 by mistake, though that's still valid as well, I think.  This bug really needs to be broken up.  We're going to pretend that this bug was about comment #9 so I can close it (since #9 should be fixed).  Comment #2 is now tracked in bug #2393.  Comment #7 is now on bug #2394.

Olivier, if you get a chance, can you attach your patch to the 'warnings' bug?  I don't think it's related to the bug here, but it should still go in (though I want to figure out why it's being triggered, as that code shouldn't be necessary).

Bug #2271

Reported by:
Andrea Santilli
Reported on: 2006-09-05
Last modified on: 2009-07-14
Duplicates (1):
  • 2299 desktop icons disappearing

People

Assignee:
Brian J. Tarricone (not reading bugmail)
CC List:
8 users

Version

Attachments

Additional information