! 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 only sets backdrop and then segfaults
Status:
RESOLVED: FIXED
Severity:
critical
Product:
Xfdesktop
Component:
General

Comments

Description proycon 2004-10-16 12:01:26 CEST
(gdb) run
Starting program: /usr2/local/bin/xfdesktop
TRACE[xfce-desktop.c:263] backdrop_changed_cb(): dummy
TRACE[desktop-menu-file.c:698] desktop_menu_file_need_update(): dummy
TRACE[desktop-menu-dentry.c:560] desktop_menu_dentry_parse_files(): base: /

Program received signal SIGSEGV, Segmentation fault.
append_escaped_text (str=0x8079a04, text=0x82565a0 "Ğɋ", length=8)
    at gmarkup.c:1812
1812          next = g_utf8_next_char (p);
Comment 1 Brian J. Tarricone (not reading bugmail) 2004-10-16 20:02:22 CEST
i need a full backtrace from that.  after it segfaults in gdb, please type "bt"
and press enter.
Comment 2 proycon 2004-10-16 20:54:25 CEST
Hmm... I had some looking around and found a way around.. 
Disabling the system menu in .config/xfce4/desktop/menu.xml appears to do the
trick...  So I suppose the bug is in that system-menu.. Perhaps already a
known-issue?
Comment 3 Brian J. Tarricone (not reading bugmail) 2004-10-16 22:08:19 CEST
since i wrote the system menu, if it were a known issue, i'd know about it ^_~.

please get me a backtrace.  "disable the system menu" is not an acceptable
workaround for 4.2-final.
Comment 4 proycon 2004-10-17 08:00:34 CEST
Here's the backtrace, I hope it's helpful :)

(gdb) bt
#0  append_escaped_text (str=0x805fd6c, text=0x823de28 "Ğɋ", length=8)
    at gmarkup.c:1812
#1  0x40569fc0 in g_markup_escape_text (text=0x823de28 "Ğɋ", length=8)
    at gmarkup.c:1873
#2  0x40c03e25 in desktop_menu_cache_add_entry (type=DM_TYPE_APP,
    name=0x823de28 "Ğɋ", cmd=0x823ba48 "kdbg", icon=0x823b910 "kdbg",
    needs_term=134610284, snotify=134610284, parent_menu=0x40c62008,
    position=4, menu_widget=0x0) at desktop-menu-cache.c:307
#3  0x40c06b4c in menu_dentry_parse_dentry (desktop_menu=0x809f400,
    de=0x8239a68, pathtype=MPATH_SIMPLE_UNIQUE, is_legacy=0, extra_cat=0x0)
    at desktop-menu-dentry.c:374
#4  0x40c06e43 in menu_dentry_parse_dentry_file (desktop_menu=0x809f400,
    filename=0x823b838 "/usr/share/applications/kde-kdbg.desktop",
    pathtype=MPATH_SIMPLE_UNIQUE) at desktop-menu-dentry.c:449
#5  0x40c06f57 in dentry_recurse_dir (dir=0x81f5a28,
    path=0x80b3e78 "/usr/share/applications/", desktop_menu=0x809f400,
    pathtype=MPATH_SIMPLE_UNIQUE) at desktop-menu-dentry.c:467
#6  0x40c07375 in desktop_menu_dentry_parse_files (desktop_menu=0x809f400,
    pathtype=MPATH_SIMPLE_UNIQUE, do_legacy=1) at desktop-menu-dentry.c:608
#7  0x40c053d8 in menu_file_xml_start (context=0x80ab178,
    element_name=0x80b3350 "include", attribute_names=0x80ab1f0,
    attribute_values=0x80ab298, user_data=0xbfffeda0, error=0xbfffed10)
    at desktop-menu-file.c:525
---Type <return> to continue, or q <return> to quit---
#8  0x40569342 in g_markup_parse_context_parse (context=0x80ab178,
    text=0x80ab1f0 "0\212\032\b(\020\bp2\v\b", text_len=134951760,
    error=0xbfffed9c) at gmarkup.c:1255
#9  0x40c05c26 in desktop_menu_file_parse (desktop_menu=0x809f400,
    filename=0x80a76b8 "/home/proycon/.config/xfce4/desktop/menu.xml",
    menu=0x80aaa68, cur_path=0x40c097c6 "/", is_root=1, from_cache=0)
    at desktop-menu-file.c:634
#10 0x40c02ce9 in _generate_menu (desktop_menu=0x809f400, force=0)
    at desktop-menu.c:128
#11 0x40c02ec3 in _generate_menu_initial (data=0x809f400) at desktop-menu.c:209
#12 0x40567984 in g_idle_dispatch (source=0x80a7760, callback=0x805fd6c,
    user_data=0x809f400) at gmain.c:3803
#13 0x40564ce7 in g_main_dispatch (context=0x806fd48) at gmain.c:1943
#14 0x40565d41 in g_main_context_dispatch (context=0x806fd48) at gmain.c:2493
#15 0x4056606b in g_main_context_iterate (context=0x806fd48, block=1,
    dispatch=1, self=0x8085020) at gmain.c:2574
#16 0x405665ee in g_main_loop_run (loop=0x80a6e28) at gmain.c:2778
#17 0x40176da7 in gtk_main () at gtkmain.c:1172
#18 0x0804cd4e in main (argc=1, argv=0xbffff894) at main.c:352
#19 0x405d14ad in __libc_start_main () from /lib/libc.so.6
Comment 5 Brian J. Tarricone (not reading bugmail) 2004-10-17 08:55:41 CEST
very useful, but unfortunately not too enlightening.  i'm not sure why that
would cause it to crash.  unless...  hmm, i suppose it's possible that the value
being passed to the escape function isn't valid utf8; i would hope that wouldn't
cause glib to crash, but it's possible.  can you please attach your
/usr/share/applications/kde-kdbg.desktop file here?  attach it using the "create
a new attachment" link above the comments box; if you paste it here, the
character encoding will likely get screwed up.

also, what's your glib version?  running:
pkg-config --modversion glib-2.0
should tell you.
Comment 6 Brian J. Tarricone (not reading bugmail) 2004-10-17 08:57:02 CEST
also, are you running xfce in another language (i.e., is the LANG variable set)?
 if so, which language?
Comment 7 proycon 2004-10-17 09:24:50 CEST
Created attachment 78 
my faulty /usr/share/applications/kde-kdbg.desktop

my locale is indeed set to another language (russian), and the string seems to
be indeed malformed in this file!
Comment 8 Brian J. Tarricone (not reading bugmail) 2004-10-17 09:27:03 CEST
i committed a change that first validates the utf8 name strings, and leaves out
the item if it doesn't validate.  update both libxfcegui4 and xfdesktop from CVS
to give it a try (after the usual hour delay for anoncvs). if you wouldn't mind,
still post that .desktop file and tell me what language you're using, even if it
works.

if you run xfdesktop from a terminal, it should print out a warning if it
encounters a file that has invalid utf8.  if that's the case, you should report
the error to whomever maintains the app that the .desktop file belongs to.

i'm relatively sure this will do the trick, so i'm marking FIXED.  go ahead and
REOPEN it if it's not; otherwise please mark it VERIFIED.  thanks!

(p.s. looks like we collided in mid-post; i'm now even more convinced this is
the proper fix...)
Comment 9 Brian J. Tarricone (not reading bugmail) 2004-10-17 09:31:55 CEST
Created attachment 79 
fix-utf8-crash.diff

here's a patch that contains the fixes, if you don't want to wait for anoncvs
to update.  apply in the 'xfce4' directory with "patch -p0 <
fix-utf8-crash.diff"

Bug #399

Reported by:
proycon
Reported on: 2004-10-16
Last modified on: 2009-07-14

People

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

Version

Attachments

my faulty /usr/share/applications/kde-kdbg.desktop (1.16 KB, text/plain)
2004-10-17 09:24 CEST , proycon
no flags
fix-utf8-crash.diff (3.83 KB, patch)
2004-10-17 09:31 CEST , Brian J. Tarricone (not reading bugmail)
no flags

Additional information