Bug 446438

Summary: libgnome-menu hangs
Product: [Fedora] Fedora Reporter: Miroslav Lichvar <mlichvar>
Component: gnome-menusAssignee: Ray Strode [halfline] <rstrode>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 9   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-06-09 12:33:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 443548    

Description Miroslav Lichvar 2008-05-14 16:20:12 UTC
Description of problem:
Calling gmenu_tree_lookup blocks and causes 100% CPU usage.

gnome-menus-2.23.1-1.fc10 in rawhide seems to have this fixed.

Version-Release number of selected component (if applicable):
gnome-menus-2.22.1-1.fc9
glib2-2.16.3-5.fc9

How reproducible:
Always

Steps to Reproduce:
1. gcc -x c -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include
-DGMENU_I_KNOW_THIS_IS_UNSTABLE -lgnome-menu - <<EOF
#include <glib.h>
#include <glib/gprintf.h>
#include <gnome-menus/gmenu-tree.h>

int main(int argc, char **argv) {
	GMenuTree *menuTree = gmenu_tree_lookup ("/etc/xdg/menus/applications.menu", 
GMENU_TREE_FLAGS_NONE );
	GMenuTreeDirectory *rootDirectory = gmenu_tree_get_root_directory(menuTree);
	return 0;
}

2. ./a.out
  
Actual results:
hangs

Expected results:
shouldn't hang

Additional info:

backtrace:
#0  IA__g_slist_find (list=0x12d3820, data=0x310fa6d3f0) at gslist.c:571
#1  0x0000003100c608cf in IA__g_once_init_enter_impl (value_location=<value
optimized out>) at gthread.c:217
#2  0x000000310f829b1c in IA__g_file_monitor_get_type () at ../glib/gthread.h:338
#3  0x000000310f849594 in IA__g_local_file_monitor_get_type () at
glocalfilemonitor.c:39
#4  0x000000310f82ed74 in _g_io_modules_ensure_loaded () at giomodule.c:315
#5  0x000000310f837fda in get_default_vfs (arg=<value optimized out>) at gvfs.c:183
#6  0x0000003100c5e8e4 in IA__g_once_impl (once=<value optimized out>,
func=<value optimized out>, arg=<value optimized out>) at gthread.c:190
#7  0x000000310f81b74e in IA__g_file_new_for_path (path=<value optimized out>)
at gfile.c:4633
#8  0x000000000011c2cc in lookup_monitor (path=0x12d05f0
"/etc/xdg/menus/applications.menu", is_directory=0) at menu-monitor.c:215
#9  0x00000000001163e8 in gmenu_tree_add_menu_file_monitor (tree=0x12cf4f0,
path=0x12d05f0 "/etc/xdg/menus/applications.menu", type=<value optimized out>)
at gmenu-tree.c:339
#10 0x00000000001171cc in gmenu_tree_new (type=<value optimized out>,
menu_file=0x12cf5e0 "/etc/xdg/menus/applications.menu", canonical=1,
flags=GMENU_TREE_FLAGS_NONE) at gmenu-tree.c:633
#11 0x0000000000118734 in gmenu_tree_lookup (menu_file=0x12cf5e0
"/etc/xdg/menus/applications.menu", flags=GMENU_TREE_FLAGS_NONE) at gmenu-tree.c:447
#12 0x000000000040065a in main ()

Comment 1 Miroslav Lichvar 2008-06-09 12:33:46 UTC
Seems to be fixed in gnome-menus-2.22.2-1.fc9.