[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [E-devel] e17 eating all ram/cpu when using 'open with'

On Sat, 11 Nov 2006, Pomarede Nicolas wrote:


using the filemanager, I associated the jpg file type with 'electric eyes'
to view the image.
But then, quite often, when I double click on an image, memory is getting
allocated at a very fast pace, which results in a lot of 'brk' system
calls and the machine getting unresponsive due to 100% CPU usage to
process thoses system calls.

At this point, only solution is to kill enlightenment process.

I made some traces with strace, but I can only see the 'brk' calls,
nothing else that seems erroneous ; is there some params I could use to
start e17 to get more traces to help figuring what went wrong (I know the
fm code is not finished, but I'm not sure this behaviour is expected
anyway ?)



Replying to myself, here're more infos I managed to get with gdb by killing E while it is eating cpu. The problem seems located in ecore_desktop_get_command.

#7  0x080a9a86 in e_sigseg_act (x=11, info=0xbff7253c, data=0xbff725bc) at e_signals.c:53
#8  0xbfffe440 in __kernel_sigreturn ()
#9  0xb7e97750 in _ecore_signal_callback_sigquit () at ecore_signal.c:438
#10 0xb7828cf5 in malloc () from /lib/i686/libc.so.6
#11 0xb7e95503 in ecore_list_node_new () at ecore_list.c:1052
#12 0xb7e95689 in ecore_list_append (list=0x83d4650, data=0x20) at ecore_list.c:363
#13 0xb7eb5ba6 in ecore_desktop_get_command (desktop=0x84d2e78, files=0x877fd60, fill=1) at ecore_desktop.c:1108
#14 0x08127a37 in _e_fwin_file_open_dialog (fwin=0x85f5ce8, files=0x877a260, always=0) at e_fwin.c:744
#15 0x08127bab in _e_fwin_cb_menu_open (data=0x85f5ce8, m=0x863dc30, mi=0x862f6c8) at e_fwin.c:294
#16 0x0809629f in _e_menu_active_call () at e_menu.c:1924
#17 0x08096379 in _e_menu_cb_mouse_up (data=0x0, type=13, event=0x876c1a0) at e_menu.c:2683
#18 0xb7e9057a in _ecore_event_call () at ecore_events.c:428
#19 0xb7e9621e in _ecore_main_loop_iterate_internal (once_only=0) at ecore_main.c:639
#20 0xb7e963fa in ecore_main_loop_begin () at ecore_main.c:79
#21 0x0806713a in main (argc=3, argv=0xbff79934) at e_main.c:825

(gdb) frame 14
#14 0x08127a37 in _e_fwin_file_open_dialog (fwin=0x85f5ce8, files=0x877a260, always=0) at e_fwin.c:744
744                       cmds = ecore_desktop_get_command(a->desktop, files_list, 1);

(gdb) print *a->desktop
$2 = {data = 0x0, group = 0x0, Categories = 0x84d3030, OnlyShowIn = 0x0, NotShowIn = 0x0, MimeTypes = 0x84d3228, Actions = 0x0,
  original_path = 0x84d2f00 "/home/npomarede/.e/e/applications/all/MandrivaLinux-Multimedia-Graphics-Electric Eyes.desktop",
  original_lang = 0x84cd698 "fr_FR", eap_name = 0x84d2f68 "MandrivaLinux-Multimedia-Graphics-Electric Eyes.edj", name = 0x84d2fa0 "Electric Eyes",
  generic = 0x0, comment = 0x84d2fb8 "Electric Eyes image viewer", type = 0x84d2fd8 "Application",
  categories = 0x84d2058 "X-MandrivaLinux-Multimedia-Graphics;", exec = 0x84d2fe8 "/usr/bin/ee", exec_params = 0x84d3000 "",
  icon_class = 0x84d31a0 "ee.png,mandrivalinux-multimedia-graphics-electric eyes.edj,ee,x-mandrivalinux-multimedia-graphics,", icon_theme = 0x0,
  icon = 0x84d3190 "ee.png", icon_path = 0x0, icon_time = 0, path = 0x0, URL = 0x0, file = 0x0, deletiondate = 0x0, window_class = 0x84d3020 "Ee",
  window_name = 0x0, window_title = 0x0, window_role = 0x0, wait_exit = 0 '\0', startup = 0 '\0', hidden = 0 '\0', no_display = 0 '\0',
  allocated = 0 '\0', ondisk = 1 '\001', hard_icon = 0 '\0', mtime = 1153346470}

(gdb) fr 13
#13 0xb7eb5ba6 in ecore_desktop_get_command (desktop=0x84d2e78, files=0x877fd60, fill=1) at ecore_desktop.c:1108
1108               ecore_list_append(result, sub_result);

(gdb) print sub_result
$8 = 0x2 <Address 0x2 out of bounds>

(gdb) print params
$23 = 0x0

(gdb) print desktop->exec
$24 = 0x84d2fe8 "/usr/bin/ee"

(gdb) fr 12
#12 0xb7e95689 in ecore_list_append (list=0x83d4650, data=0x20) at ecore_list.c:363
363        node = ecore_list_node_new();

(gdb) print list
$26 = (Ecore_List *) 0x83d4650
(gdb) print *list
$27 = {first = 0x870b800, last = 0x4f386fe0, current = 0x0, free_func = 0x8063c50, nodes = 37081539, index = 37081539}

(gdb) print data
$28 = (void *) 0x20

And just in case, here's the content of the .desktop :

[Desktop Entry]
Name=Electric Eyes
Comment=Electric Eyes image viewer
Name[C]=Electric Eyes
Comment[C]=Electric Eyes image viewer

So, it seems the list is growing forever (37 M entries so far), due to ecore_list_append being called repeatedly, but I'm not familiar enough with the .desktop part in ecore to see what causes this.

Hope this helps.