geeqie icon indicating copy to clipboard operation
geeqie copied to clipboard

Severe stall/hang at start-up

Open rk4n3 opened this issue 4 years ago • 32 comments

ISSUE TYPE

  • Bug Report

GEEQIE VERSION

Geeqie 1.5.1
libgtk-x11-2.0.so.0

OS / DISTRIBUTION

Linux, Ubuntu 19.10 (has also been reproduced on 18.04)

SUMMARY

The program exhibits a severe stall/hang when started.

STEPS TO REPRODUCE

Start the program with no options, like geeqie. Starting with strace geeqie will show this output right before the "hang":

access("/.flatpak-info", F_OK)          = -1 ENOENT (No such file or directory)
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f6e35d9cf58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0) = 8
fcntl(8, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(8, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
connect(8, {sa_family=AF_UNIX, sun_path="/run/user/4242/bus"}, 110) = 0
getpid()                                = 5816
geteuid()                               = 4242
getegid()                               = 4242
getpid()                                = 5816
geteuid()                               = 4242
getegid()                               = 4242
sendmsg(8, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\0", iov_len=1}], msg_iovlen=1, msg_control=[{cmsg_len=28, cmsg_level=SOL_SOCKET, cmsg_type=SCM_CREDENTIALS, cmsg_data={pid=5816, uid=4242, gid=4242}}], msg_controllen=32, msg_flags=0}, MSG_NOSIGNAL) = 1
sendto(8, "AUTH\r\n", 6, MSG_NOSIGNAL, NULL, 0) = 6
recvfrom(8, "REJECTED EXTERNAL\r\n", 4096, 0, NULL, NULL) = 19
sendto(8, "AUTH EXTERNAL 34323432\r\n", 24, MSG_NOSIGNAL, NULL, 0) = 24
recvfrom(8, "OK 48f6ccca60060378556982c05e4d3"..., 4096, 0, NULL, NULL) = 37
sendto(8, "NEGOTIATE_UNIX_FD\r\n", 19, MSG_NOSIGNAL, NULL, 0) = 19
recvfrom(8, "AGREE_UNIX_FD\r\n", 4096, 0, NULL, NULL) = 15
sendto(8, "BEGIN\r\n", 7, MSG_NOSIGNAL, NULL, 0) = 7
write(11, "\1\0\0\0\0\0\0\0", 8)        = 8
eventfd2(0, EFD_CLOEXEC|EFD_NONBLOCK)   = 10
write(10, "\1\0\0\0\0\0\0\0", 8)        = 8
write(11, "\1\0\0\0\0\0\0\0", 8)        = 8
poll([{fd=10, events=POLLIN}], 1, 25000) = 1 ([{fd=10, revents=POLLIN}])
read(10, "\1\0\0\0\0\0\0\0", 16)        = 8
poll([{fd=10, events=POLLIN}], 1, 25000

rk4n3 avatar Mar 21 '20 21:03 rk4n3

Please rename $HOME/.config/geeqie/geeqierc.xml (so that Geeqie starts with a default .config. file). From a terminal run: geeqie --debug=4

It would maybe help if you can identify which debug statements are either side of the hang.

caclark avatar Mar 22 '20 10:03 caclark

I renamed my geeqierc.xml file, and still get the same behavior. Here is the debug output before the hang:

main.c:parse_command_line_for_debug_option:513:debugging output enabled (level 4)
main.c:main:874:    0.000195 (+00000.000195) main: gtk_init
main.c:main:895:    0.006835 (+00000.006640) main: pixbuf_inline_register_stock_icons
main.c:main:898:    0.007229 (+00000.000394) main: setting default options before commandline handling
ui_fileops.c:homedir:197:Home directory: /home/rk4n3
ui_fileops.c:homedir:197:Home directory: /home/rk4n3
ui_fileops.c:homedir:197:Home directory: /home/rk4n3
main.c:main:902:    0.007277 (+00000.000048) main: parse_command_line
main.c:main:905:    0.007302 (+00000.000025) main: mkdir_if_not_exists
ui_fileops.c:homedir:197:Home directory: /home/rk4n3
main.c:main:920:    0.007486 (+00000.000184) main: load_options
options.c:load_options:350:Loading options from /home/rk4n3/.config/geeqie/geeqierc.xml ... failed
filefilter.c:filter_add_defaults:226:loader reported [wmf] [Windows Metafile] [.wmf;.apm]
filefilter.c:filter_add_defaults:226:loader reported [ani] [Windows animated cursor] [.ani]
filefilter.c:filter_add_defaults:226:loader reported [bmp] [BMP] [.bmp]
filefilter.c:filter_add_defaults:226:loader reported [gif] [GIF] [.gif]
filefilter.c:filter_add_defaults:226:loader reported [icns] [MacOS X icon] [.icns]
filefilter.c:filter_add_defaults:226:loader reported [ico] [Windows icon] [.ico;.cur]
filefilter.c:filter_add_defaults:226:loader reported [jpeg] [JPEG] [.jpeg;.jpe;.jpg]
filefilter.c:filter_add_defaults:226:loader reported [png] [PNG] [.png]
filefilter.c:filter_add_defaults:226:loader reported [pnm] [PNM/PBM/PGM/PPM] [.pnm;.pbm;.pgm;.ppm]
filefilter.c:filter_add_defaults:226:loader reported [qtif] [QuickTime] [.qtif;.qif]
filefilter.c:filter_add_defaults:226:loader reported [svg] [Scalable Vector Graphics] [.svg;.svgz;.svg.gz]
filefilter.c:filter_add_defaults:226:loader reported [tga] [Targa] [.tga;.targa]
filefilter.c:filter_add_defaults:226:loader reported [tiff] [TIFF] [.tiff;.tif]
filefilter.c:filter_add_defaults:226:loader reported [xbm] [XBM] [.xbm]
filefilter.c:filter_add_defaults:226:loader reported [xpm] [XPM] [.xpm]
layout.c:layout_new_with_geometry:2401:    0.007921 (+00000.000435) layout_new: start
do_connect: could not connect to socket
connect: No such file or directory
lirc.c:layout_image_lirc_init:224:Initializing LIRC... failed
layout_util.c:layout_actions_setup:2600:    0.009334 (+00000.001413) layout_actions_setup: start
layout_util.c:layout_actions_setup:2637:    0.014838 (+00000.005504) layout_actions_setup: add menu
layout_util.c:layout_actions_setup:2649:    0.015019 (+00000.000181) layout_actions_setup: marks
layout_util.c:layout_actions_setup:2652:    0.015996 (+00000.000977) layout_actions_setup: editors
layout_util.c:layout_actions_setup:2655:    0.016018 (+00000.000022) layout_actions_setup: status_update_write
layout_util.c:layout_actions_setup:2658:    0.016026 (+00000.000008) layout_actions_setup: actions_add_window
layout_util.c:layout_actions_setup:2660:    0.016035 (+00000.000009) layout_actions_setup: end
image.c:image_stereo_set:1700:Setting stereo mode 0000 for imd 0x560c946fcaa0
filedata.c:file_data_register_notify_func:3131:Notify func registered: 0x560c9469b310
renderer-tiles.c:renderer_update_viewport:2076:update size: 0x560c9469f880  0 0   0 0
filedata.c:file_data_register_notify_func:3131:Notify func registered: 0x560c948ad4d0
filedata.c:file_data_register_notify_func:3131:Notify func registered: 0x560c948d6660
view_file/view_file_list.c:vflist_refresh:1783:    0.057076 (+00000.041041) vflist_refresh: read dir
view_file/view_file_list.c:vflist_refresh:1812:    0.057082 (+00000.000006) vflist_refresh: populate view
view_file/view_file_list.c:vflist_refresh:1816:    0.057088 (+00000.000006) vflist_refresh: free filelist
view_file/view_file_list.c:vflist_refresh:1819:    0.057109 (+00000.000021) vflist_refresh: done
renderer-tiles.c:rt_queue_schedule_next_draw:1548:redraw priority: 2pass
pixbuf-renderer.c:pr_update_signal:1301:    0.062392 (+00000.005283) pixbuf renderer updated - started drawing 0x560c947480c0, img: 200x70
pixbuf-renderer.c:pr_update_signal:1301:    0.062398 (+00000.000006) pixbuf renderer updated - started drawing 0x560c947480c0, img: 200x70
renderer-tiles.c:rt_queue_schedule_next_draw:1548:redraw priority: 2pass
pixbuf-renderer.c:pr_update_signal:1301:    0.062407 (+00000.000009) pixbuf renderer updated - started drawing 0x560c947480c0, img: 200x70
filedata.c:file_data_register_notify_func:3131:Notify func registered: 0x560c94659420
renderer-tiles.c:renderer_update_viewport:2076:update size: 0x560c9469f880  0 0   501 443
pixbuf-renderer.c:pr_update_signal:1301:    0.067677 (+00000.005270) pixbuf renderer updated - started drawing 0x560c947480c0, img: 200x70

... and here is the beginning of debug output after the hang:

filedata.c:file_data_register_notify_func:3131:Notify func registered: 0x560c948e8d50
filedata.c:file_data_register_notify_func:3131:Notify func registered: 0x560c948e8e80
layout.c:layout_new_with_geometry:2531:   25.102861 (+00025.035184) layout_new: end
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3' 1
filedata.c:file_data_new:426:file data count++: 1
filedata.c:file_data_ref_debug:682:file_data_ref fd=0x560c946190e0 (2): '/home/rk4n3' @ layout.c:1101
filedata.c:file_data_ref_debug:682:file_data_ref fd=0x560c946190e0 (3): '/home/rk4n3' @ filedata.c:3218
filedata.c:file_data_register_real_time_monitor:3225:Register realtime 0 /home/rk4n3
filedata.c:file_data_unregister_notify_func:3148:Notify func unregistered: 0x560c948ad4d0
filedata.c:file_data_ref_debug:682:file_data_ref fd=0x560c946190e0 (4): '/home/rk4n3' @ view_dir_list.c:336
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3/src' 1
filedata.c:file_data_new:426:file data count++: 2
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3/Videos' 1
filedata.c:file_data_new:426:file data count++: 3
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3/log' 1
filedata.c:file_data_new:426:file data count++: 4
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3/snap' 1
filedata.c:file_data_new:426:file data count++: 5
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3/wrk' 1
filedata.c:file_data_new:426:file data count++: 6
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3/arc' 1
filedata.c:file_data_new:426:file data count++: 7
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3/Downloads' 1
filedata.c:file_data_new:426:file data count++: 8
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3/lib' 1
filedata.c:file_data_new:426:file data count++: 9
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3/www' 1
filedata.c:file_data_new:426:file data count++: 10
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3/Documents' 1
filedata.c:file_data_new:426:file data count++: 11
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3/spirit' 1
filedata.c:file_data_new:426:file data count++: 12
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3/Music' 1
filedata.c:file_data_new:426:file data count++: 13
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3/Pictures' 1
filedata.c:file_data_new:426:file data count++: 14
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3/etc' 1
filedata.c:file_data_new:426:file data count++: 15
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3/tmp' 1
filedata.c:file_data_new:426:file data count++: 16
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3/bin' 1
filedata.c:file_data_new:426:file data count++: 17
filedata.c:file_data_new:378:file_data_new: '/home/rk4n3/..' 1
filedata.c:file_data_new:426:file data count++: 18
filedata.c:file_data_register_notify_func:3131:Notify func registered: 0x560c9490c320
filedata.c:file_data_ref_debug:682:file_data_ref fd=0x560c946190e0 (5): '/home/rk4n3' @ view_file/view_file_list.c:1986
view_file/view_file_list.c:vflist_refresh:1783:   25.146525 (+00000.043664) vflist_refresh: read dir
filedata.c:file_data_unregister_notify_func:3148:Notify func unregistered: 0x560c948d6660
filedata.c:file_data_register_notify_func:3131:Notify func registered: 0x560c945bdcc0
view_file/view_file_list.c:vflist_refresh:1808:   25.146651 (+00000.000126) vflist_refresh: sort
view_file/view_file_list.c:vflist_refresh:1812:   25.146655 (+00000.000004) vflist_refresh: populate view
view_file/view_file_list.c:vflist_refresh:1816:   25.146672 (+00000.000017) vflist_refresh: free filelist
view_file/view_file_list.c:vflist_refresh:1819:   25.146677 (+00000.000005) vflist_refresh: done
image.c:image_read_ahead_cancel:681:   25.146705 (+00000.000028) read ahead cancelled for :null
filedata.c:file_data_unref_debug:787:file_data_unref fd=0x560c946190e0 (4:0): '/home/rk4n3' @ layout.c:1076
layout_util.c:layout_editors_reload_start:2708:   25.146714 (+00000.000009) layout_editors_reload_start
main.c:main:1025:   25.146771 (+00000.000057) main: gtk_main

rk4n3 avatar Mar 22 '20 18:03 rk4n3

I am sorry, but I cannot see a reason for this. There have been no other complaint about this problem. Perhaps you could try the flatpak version of Geeqie to see if that runs.

caclark avatar Mar 26 '20 13:03 caclark

I don't know if it is related but I also experience severe slow-downs in Geeqie, but not exactly at start but on entering a directory with a large number of files. In the past, Geeqie was lightning fast, but that deteriorated. I think I should try to do a bisect to pinpoint the offending commit.

tomaszg7 avatar Mar 26 '20 14:03 tomaszg7

You are no doubt aware of this, but nevertheless: If you have "Sort by" set to anything that needs metadata, then things will be slow. With thumbnails enabled but no cache enabled, that will also be slow.

In what way is it slow - a hang until the first item is shown, or just a slow one-by-one display?

caclark avatar Mar 26 '20 14:03 caclark

A hang before first item is shown. I have sort by name, thumbnails cache enabled.

By large number of files I mean even around 50 images I get noticeable slowdown. If it is around 1000 I can go make a coffee ;)

tomaszg7 avatar Mar 26 '20 14:03 tomaszg7

This does not appear to be an underlying problem with Geeqie. I just opened a folder with 749 images totalling 16GB, thumbnails cached and sort by name, and the display is near instantaneous. I have no idea what the problem may be, but if you can bisect it down to a commit, that should provide the answer.

caclark avatar Mar 26 '20 15:03 caclark

Ah, in my case it seems the culprit was the option "Show star rating". It apparently is read on directory entry but might be better if it would be updated afterwards, just like e.g. thumbnails.

tomaszg7 avatar Mar 26 '20 15:03 tomaszg7

There is an option in Preferences/Metadata to read metadata in the idle loop. But I don't know if this has an effect on Stars.


There is a button in Cache Maintenance to generate thumbnails recursively - if the cache gets destroyed you can just let this operation run overnight to regenerate everything. I am working on an additional option to generate .sim files recursively. The reason is that I was doing some duplicate checks that took forever, because the .sim files had not already been cached. But the .sim files also cache: Dimension (width x height) Exif date original MD5sum

Maybe other metadata could be cached as well, which would speed things up when switching folders.

caclark avatar Mar 26 '20 16:03 caclark

Reading metadata in idle loop doesn't seem to help with stars.

tomaszg7 avatar Mar 26 '20 17:03 tomaszg7

I use Geeqie from Debian (geeqie --version reports 1.5.1) and encountered similar problem. When a directory contains huge number of files than start-up takes a few seconds. I do not have thumbnails enabled.

I run strace and found that geeqie calls stat() or lstat() several times. For example when my directory contains 1416 files, there are 11343 calls recorded; there are more calls to stats functions, I counted just these referring to files present in the directory. Simple calculation shows that there are 8 calls of stats/lstat per directory entry.

WojciechMula avatar Mar 27 '20 20:03 WojciechMula

I certainly agree that the Geeqie code is no longer optimal, but I still do not see the problems being described. I can open a folder with 2947 images totalling 50GB, with thumbnails disabled, and the first image is displayed in less than 1 sec. Perhaps you could temporarily rename $HOME/.config/geeqierc.xml and then check if there is a difference. By starting Geeqie with the default configuration will eliminate the possibility that something in your setup is causing the problem.

caclark avatar Mar 27 '20 21:03 caclark

@caclark Thank you for the hint. When I reset the configuration that problem disappeared. Here's what has changed, hope this help to track down problem.

diff -u geeqie.xml geeqie.xml.old
--- geeqierc.xml	2020-03-28 21:45:52.889714238 +0100
+++ geeqierc.xml.old	2020-03-27 21:18:09.487232096 +0100
@@ -17,7 +17,7 @@
             show_guidelines = "false" 
             show_predefined_keyword_tree = "true" 
 
-            tree_descend_subdirs = "false" 
+            tree_descend_subdirs = "true" 
             view_dir_list_single_click_enter = "true" 
             lazy_image_sync = "false" 
             update_on_time_change = "true" 
@@ -25,7 +25,7 @@
             progressive_key_scrolling = "true" 
             keyboard_scroll_step = "1" 
             duplicates_similarity_threshold = "99" 
-            duplicates_match = "0" 
+            duplicates_match = "64" 
             duplicates_select_type = "0" 
             duplicates_thumbnails = "false" 
             rot_invariant_sim = "true" 
@@ -43,7 +43,7 @@
             use_saved_window_positions_for_new_windows = "false" 
             tools_restore_state = "true" 
             save_dialog_window_positions = "false" 
-            show_window_ids = "false" 
+            show_window_ids = "true" 
             log_window_lines = "1000" 
             log_window.timer_data = "false" 
             marks_save = "true" 
@@ -92,17 +92,17 @@
             thumbnails.quality = "1" 
             thumbnails.use_exif = "false" 
             thumbnails.use_ft_metadata = "true" 
-            thumbnails.collection_preview = "20" 
+            thumbnails.collection_preview = "21" 
             file_sort.method = "3" 
             file_sort.ascending = "true" 
             file_sort.case_sensitive = "false" 
             file_sort.natural = "false" 
             fullscreen.screen = "-1" 
-            fullscreen.clean_flip = "false" 
+            fullscreen.clean_flip = "true" 
             fullscreen.disable_saver = "true" 
             fullscreen.above = "false" 
 
-            image_overlay.template_string = "%collection:<i>*</i>\\n%(%number%/%total%) [%zoom%] <b>%name%</b>\n%res%|%date%|%size%\n%formatted.Aperture%|%formatted.ShutterSpeed%|%formatted.ISOSpeedRating:ISO *%|%formatted.FocalLength%|%formatted.ExposureBias:* Ev%\n%formatted.Camera:40%|%formatted.Flash%\n%formatted.star_rating%" 
+            image_overlay.template_string = "%number%/%total% <b>%name%</b> %size%\n%formatted.ShutterSpeed%, ISO %formatted.ISOSpeedRating%" 
             image_overlay.x = "10" 
             image_overlay.y = "-10" 
             image_overlay.text_red = "0" 
@@ -114,7 +114,7 @@
             image_overlay.background_blue = "240" 
             image_overlay.background_alpha = "210" 
             image_overlay.font = "" 
-            slideshow.delay = "5.0" 
+            slideshow.delay = "2.0" 
             slideshow.random = "false" 
             slideshow.repeat = "false" 
             collections.rectangular_selection = "false" 
@@ -133,7 +133,7 @@
             metadata.save_in_image_file = "false" 
             metadata.save_legacy_IPTC = "false" 
             metadata.warn_on_write_problems = "true" 
-            metadata.save_legacy_format = "false" 
+            metadata.save_legacy_format = "true" 
             metadata.sync_grouped_files = "true" 
             metadata.confirm_write = "true" 
             metadata.sidecar_extended_name = "false" 
@@ -142,7 +142,7 @@
             metadata.confirm_on_image_change = "false" 
             metadata.confirm_on_dir_change = "true" 
             metadata.keywords_case_sensitive = "false" 
-            metadata.write_orientation = "true" 
+            metadata.write_orientation = "false" 
             stereo.mode = "0" 
             stereo.fsmode = "0" 
             stereo.enable_fsmode = "false" 
@@ -178,26 +178,30 @@
         </color_profiles>
 
         <filter>
-            <file_type key = "ani" enabled = "true" extensions = ".ani" description = "Windows animated cursor" file_class = "1" writable = "true" allow_sidecar = "false" />
-            <file_type key = "bmp" enabled = "true" extensions = ".bmp" description = "BMP" file_class = "1" writable = "true" allow_sidecar = "false" />
-            <file_type key = "gif" enabled = "true" extensions = ".gif" description = "GIF" file_class = "1" writable = "true" allow_sidecar = "false" />
-            <file_type key = "icns" enabled = "true" extensions = ".icns" description = "MacOS X icon" file_class = "1" writable = "true" allow_sidecar = "false" />
-            <file_type key = "ico" enabled = "true" extensions = ".ico;.cur" description = "Windows icon" file_class = "1" writable = "true" allow_sidecar = "false" />
-            <file_type key = "jpeg" enabled = "true" extensions = ".jpeg;.jpe;.jpg" description = "JPEG" file_class = "1" writable = "true" allow_sidecar = "false" />
-            <file_type key = "png" enabled = "true" extensions = ".png" description = "PNG" file_class = "1" writable = "true" allow_sidecar = "false" />
-            <file_type key = "pnm" enabled = "true" extensions = ".pnm;.pbm;.pgm;.ppm" description = "PNM/PBM/PGM/PPM" file_class = "1" writable = "true" allow_sidecar = "false" />
-            <file_type key = "qtif" enabled = "true" extensions = ".qtif;.qif" description = "QuickTime" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "GdkPixdata" enabled = "true" extensions = ".gdkp" description = "Format GdkPixdata" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "tiff" enabled = "true" extensions = ".tiff;.tif" description = "Format obrazu TIFF" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "jpeg" enabled = "true" extensions = ".jpeg;.jpe;.jpg" description = "Format obrazu JPEG" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "pnm" enabled = "true" extensions = ".pnm;.pbm;.pgm;.ppm" description = "Rodzina formatów obrazów PNM/PBM/PGM/PPM" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "jpeg2000" enabled = "true" extensions = ".jp2;.jpc;.jpx;.j2k;.jpf" description = "Format obrazu JPEG 2000" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "ras" enabled = "true" extensions = ".ras" description = "Rastrowy format obrazu firmy SUN" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "xbm" enabled = "true" extensions = ".xbm" description = "Format obrazu XBM" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "xpm" enabled = "true" extensions = ".xpm" description = "Format obrazu XPM" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "ani" enabled = "true" extensions = ".ani" description = "Format obrazu ANI" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "tga" enabled = "true" extensions = ".tga;.targa" description = "Format obrazu Targa" file_class = "1" writable = "true" allow_sidecar = "false" />
             <file_type key = "svg" enabled = "true" extensions = ".svg;.svgz;.svg.gz" description = "Scalable Vector Graphics" file_class = "1" writable = "true" allow_sidecar = "false" />
-            <file_type key = "tga" enabled = "true" extensions = ".tga;.targa" description = "Targa" file_class = "1" writable = "true" allow_sidecar = "false" />
-            <file_type key = "tiff" enabled = "true" extensions = ".tiff;.tif" description = "TIFF" file_class = "1" writable = "true" allow_sidecar = "false" />
-            <file_type key = "xbm" enabled = "true" extensions = ".xbm" description = "XBM" file_class = "1" writable = "true" allow_sidecar = "false" />
-            <file_type key = "xpm" enabled = "true" extensions = ".xpm" description = "XPM" file_class = "1" writable = "true" allow_sidecar = "false" />
-            <file_type key = "ras" enabled = "false" extensions = ".ras" description = "Raster" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "bmp" enabled = "true" extensions = ".bmp" description = "Format obrazu BMP" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "gif" enabled = "true" extensions = ".gif" description = "Format obrazu GIF" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "icns" enabled = "true" extensions = ".icns" description = "Format obrazu ICNS" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "ico" enabled = "true" extensions = ".ico;.cur" description = "Format obrazu ICO" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "wmf" enabled = "true" extensions = ".wmf;.apm" description = "Windows Metafile" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "pcx" enabled = "true" extensions = ".pcx" description = "Format obrazu PCX" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "png" enabled = "true" extensions = ".png" description = "Format obrazu PNG" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "wbmp" enabled = "true" extensions = ".wbmp" description = "Format obrazu WBMP" file_class = "1" writable = "true" allow_sidecar = "false" />
+            <file_type key = "qtif" enabled = "true" extensions = ".qtif;.qif" description = "Format obrazu QTIF" file_class = "1" writable = "true" allow_sidecar = "false" />
             <file_type key = "jps" enabled = "true" extensions = ".jps" description = "Stereo side-by-side jpeg" file_class = "1" writable = "true" allow_sidecar = "false" />
             <file_type key = "mpo" enabled = "true" extensions = ".mpo" description = "Stereo multi-image jpeg" file_class = "1" writable = "false" allow_sidecar = "true" />
             <file_type key = "xmp" enabled = "true" extensions = ".xmp" description = "XMP sidecar" file_class = "3" writable = "true" allow_sidecar = "false" />
-            <file_type key = "meta" enabled = "true" extensions = ".meta" description = "GQview legacy metadata" file_class = "3" writable = "true" allow_sidecar = "false" />
-            <file_type key = "gqv" enabled = "true" extensions = ".gqv" description = "Geeqie image collection" file_class = "5" writable = "false" allow_sidecar = "false" />
+            <file_type key = "gqv" enabled = "true" extensions = ".gqv" description = "Geeqie image collection" file_class = "3" writable = "false" allow_sidecar = "false" />
             <file_type key = "ufraw" enabled = "true" extensions = ".ufraw" description = "UFRaw ID file" file_class = "3" writable = "false" allow_sidecar = "false" />
             <file_type key = "pto" enabled = "true" extensions = ".pto" description = "Panorama script file" file_class = "3" writable = "false" allow_sidecar = "false" />
             <file_type key = "arw" enabled = "true" extensions = ".arw;.srf;.sr2" description = "Sony raw format" file_class = "2" writable = "false" allow_sidecar = "true" />
@@ -217,6 +221,7 @@
             <file_type key = "erf" enabled = "true" extensions = ".erf" description = "Epson raw format" file_class = "2" writable = "false" allow_sidecar = "true" />
             <file_type key = "srw" enabled = "true" extensions = ".srw" description = "Samsung raw format" file_class = "2" writable = "false" allow_sidecar = "true" />
             <file_type key = "rw2" enabled = "true" extensions = ".rw2" description = "Panasonic raw format" file_class = "2" writable = "false" allow_sidecar = "true" />
+            <file_type key = "meta" enabled = "true" extensions = ".meta" description = "GQview legacy metadata" file_class = "3" writable = "true" allow_sidecar = "false" />
             <file_type key = "mp4" enabled = "false" extensions = ".mp4;.m4v;.3gp;.3g2" description = "MP4 video file" file_class = "4" writable = "false" allow_sidecar = "false" />
             <file_type key = "3gp" enabled = "false" extensions = ".3gp;.3g2" description = "3GP video file" file_class = "4" writable = "false" allow_sidecar = "false" />
             <file_type key = "mov" enabled = "false" extensions = ".mov;.qt" description = "MOV video file" file_class = "4" writable = "false" allow_sidecar = "false" />
@@ -246,12 +251,86 @@
         </disabled_plugins>
 
         <keyword_tree>
+            <keyword name = "Ludzie" kw = "true" >
+                <keyword name = "Rodzina" kw = "true" />
+                <keyword name = "Wolny czas" kw = "true" />
+                <keyword name = "Dzieci" kw = "true" />
+                <keyword name = "Sport" kw = "true" />
+                <keyword name = "Kultura" kw = "true" >
+                    <keyword name = "Festiwal" kw = "true" />
+                </keyword>
+            </keyword>
+            <keyword name = "Natura" kw = "true" >
+                <keyword name = "Zwierzę" kw = "true" >
+                    <keyword name = "Ptak" kw = "true" />
+                    <keyword name = "Owady" kw = "true" />
+                    <keyword name = "Zwierzaki" kw = "true" />
+                    <keyword name = "Fauna i flora" kw = "true" />
+                    <keyword name = "Zoo" kw = "true" />
+                </keyword>
+                <keyword name = "Roślina" kw = "true" >
+                    <keyword name = "Drzewo" kw = "true" />
+                    <keyword name = "Kwiat" kw = "true" />
+                </keyword>
+                <keyword name = "Woda" kw = "true" >
+                    <keyword name = "Rzeka" kw = "true" />
+                    <keyword name = "Jezioro" kw = "true" />
+                    <keyword name = "Morze" kw = "true" />
+                </keyword>
+                <keyword name = "Pejzaż" kw = "true" />
+            </keyword>
+            <keyword name = "Sztuka" kw = "true" >
+                <keyword name = "Statua" kw = "true" />
+                <keyword name = "Malowidło" kw = "true" />
+                <keyword name = "Historyczne" kw = "true" />
+                <keyword name = "Nowoczesne" kw = "true" />
+            </keyword>
+            <keyword name = "Miasto" kw = "true" >
+                <keyword name = "Park" kw = "true" />
+                <keyword name = "Ulica" kw = "true" />
+                <keyword name = "Plac" kw = "true" />
+            </keyword>
+            <keyword name = "Architektura" kw = "true" >
+                <keyword name = "Budynki" kw = "false" >
+                    <keyword name = "Dom" kw = "true" />
+                    <keyword name = "Katedra" kw = "true" />
+                    <keyword name = "Pałac" kw = "true" />
+                    <keyword name = "Zamek" kw = "true" />
+                    <keyword name = "Most" kw = "true" />
+                </keyword>
+                <keyword name = "Wnętrze" kw = "true" />
+                <keyword name = "Historyczne" kw = "true" />
+                <keyword name = "Nowoczesne" kw = "true" />
+            </keyword>
+            <keyword name = "Miejsca" kw = "false" />
+            <keyword name = "Warunki" kw = "false" >
+                <keyword name = "Noc" kw = "true" >
+                    <keyword name = "Światła" kw = "true" />
+                </keyword>
+                <keyword name = "Odbicia" kw = "true" />
+                <keyword name = "Słońce" kw = "true" />
+                <keyword name = "Pogoda" kw = "false" >
+                    <keyword name = "Mgła" kw = "true" />
+                    <keyword name = "Deszcz" kw = "true" />
+                    <keyword name = "Chmury" kw = "true" />
+                    <keyword name = "Śnieg" kw = "true" />
+                    <keyword name = "Słoneczna pogoda" kw = "true" />
+                </keyword>
+            </keyword>
+            <keyword name = "Fotografia" kw = "false" >
+                <keyword name = "Edytowany" kw = "true" />
+                <keyword name = "Szczegóły" kw = "true" />
+                <keyword name = "Makro" kw = "true" />
+                <keyword name = "Portret" kw = "true" />
+                <keyword name = "Biało-czarny" kw = "true" />
+                <keyword name = "Perspektywa" kw = "true" />
+            </keyword>
         </keyword_tree>
     </global>
 
 
     <layout
-        id = "main" 
+        id = "lw1" 
         style = "0" 
         order = "123" 
         dir_view_type = "0" 
@@ -261,25 +340,25 @@
         show_thumbnails = "false" 
         show_directory_date = "false" 
         home_path = "" 
-        last_path = "/home/wojtek/" 
+        last_path = "/home/wojtek/test" 
         startup_path = "0" 
         exit_on_close = "false" 
 
-        main_window.x = "0" 
+        main_window.x = "578" 
         main_window.y = "0" 
-        main_window.w = "720" 
-        main_window.h = "540" 
+        main_window.w = "700" 
+        main_window.h = "500" 
         main_window.maximized = "true" 
-        main_window.hdivider_pos = "428" 
-        main_window.vdivider_pos = "403" 
+        main_window.hdivider_pos = "380" 
+        main_window.vdivider_pos = "260" 
 
         folder_window.vdivider_pos = "1" 
 
         float_window.x = "0" 
         float_window.y = "0" 
-        float_window.w = "260" 
-        float_window.h = "450" 
-        float_window.vdivider_pos = "-1" 
+        float_window.w = "1280" 
+        float_window.h = "746" 
+        float_window.vdivider_pos = "250" 
 
         properties_window.w = "0" 
         properties_window.h = "0" 
@@ -296,15 +375,15 @@
         bars_state.tools_hidden = "false" 
         bars_state.hidden = "false" 
 
-        image_overlay.state = "0" 
+        image_overlay.state = "3" 
         image_overlay.histogram_channel = "4" 
-        image_overlay.histogram_mode = "1" 
+        image_overlay.histogram_mode = "0" 
         log_window.x = "0" 
         log_window.y = "0" 
-        log_window.w = "520" 
-        log_window.h = "400" 
+        log_window.w = "1280" 
+        log_window.h = "746" 
 
-        animate = "true" >
+        animate = "false" >
         <toolbar>

WojciechMula avatar Mar 29 '20 16:03 WojciechMula

I don't see anything in the config. file that would cause the problem. Unfortunately I think the only way to isolate the problem is to make one-by-one changes until you find which one is responsible....

caclark avatar Mar 30 '20 10:03 caclark

On my systems, geeqie hangs at startup for a very long time in marks_load. For every file listed in ~/.config/geeqie/marks, the contents of the entire directory containing that file are stated, and over NFS with tens of thousands of files present (which are not marked, but in the same directories) -- that takes a long time, sometimes upwards of minutes.

jimparis avatar Sep 03 '20 16:09 jimparis

The problem with saved marks is fixed in commit: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commit;h=0ff5c85b082fa2b1dc578807fac8dbfd9b93421c

caclark avatar Sep 04 '20 11:09 caclark

Ah, in my case it seems the culprit was the option "Show star rating". It apparently is read on directory entry but might be better if it would be updated afterwards, just like e.g. thumbnails.

Same here. Maybe enabling this option could come with a big warning: expect huge impact when opening directories with thousands of files.

jose1711 avatar Sep 21 '20 14:09 jose1711

The problem with saved marks is fixed in commit: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commit;h=0ff5c85b082fa2b1dc578807fac8dbfd9b93421c

I can verify that this fixes it -- brings my startup time from about 53 seconds to about 1 second. Thank you!

jimparis avatar Sep 26 '20 22:09 jimparis

Ah, in my case it seems the culprit was the option "Show star rating". It apparently is read on directory entry but might be better if it would be updated afterwards, just like e.g. thumbnails.

Fixed in commit: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commit;h=f8f558aa337185b19b338d482eedc648d2504f90

caclark avatar Oct 11 '20 13:10 caclark

Ah, in my case it seems the culprit was the option "Show star rating". It apparently is read on directory entry but might be better if it would be updated afterwards, just like e.g. thumbnails.

Fixed in commit: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commit;h=f8f558aa337185b19b338d482eedc648d2504f90

Thank you, I can confirm it's working nicely.

jose1711 avatar Oct 11 '20 13:10 jose1711

Since upgrading to Ubuntu 20.10, Geeqie (1.5.1+git20200808-2a27c9ab) has been very slow to start for me.

When I run geeqie from the terminal, it takes about two seconds to start. When I start it from a file manager (by double clicking on an associated file), it's more like four seconds.

This does not seem to be related to the number of files in the startup directory, to the "Show star rating" option mentioned above (which is turned off) or to the ~/.config/geeqie/marks file (which is empty). Once Geeqie has started, there's no delay in navigating between directories, performing file operations etc. But if I close the program and start again right away, there's the same delay.

The slow execution is present even when I just run geeqie --version from the terminal which takes about two seconds to execute.

pinnerup@ergi:~$ geeqie --version --debug=4
main.c:parse_command_line_for_debug_option:544:debugging output enabled (level 4)
main.c:main:933:    0.000235 (+00000.000235) main: gtk_init
main.c:main:962:    1.737023 (+00001.736788) main: pixbuf_inline_register_stock_icons
main.c:main:965:    1.737552 (+00000.000529) main: setting default options before commandline handling
ui_fileops.c:homedir:199:Home directory: /home/pinnerup
ui_fileops.c:homedir:199:Home directory: /home/pinnerup
ui_fileops.c:homedir:199:Home directory: /home/pinnerup
main.c:main:973:    1.737683 (+00000.000131) main: parse_command_line
Geeqie 1.5.1+git20200808-2a27c9ab

pinnerup avatar Nov 24 '20 20:11 pinnerup

Would you please try: geeqie --disable-clutter --version --debug=4

caclark avatar Nov 24 '20 21:11 caclark

Thanks. Using that command geeqie executes much faster:

pinnerup@ergi:~$ geeqie --disable-clutter --version --debug=4
main.c:parse_command_line_for_debug_option:544:debugging output enabled (level 4)
main.c:main:933:    0.000246 (+00000.000246) main: gtk_init
main.c:main:962:    0.065139 (+00000.064893) main: pixbuf_inline_register_stock_icons
main.c:main:965:    0.065573 (+00000.000434) main: setting default options before commandline handling
ui_fileops.c:homedir:199:Home directory: /home/pinnerup
ui_fileops.c:homedir:199:Home directory: /home/pinnerup
ui_fileops.c:homedir:199:Home directory: /home/pinnerup
main.c:main:973:    0.065639 (+00000.000066) main: parse_command_line
Geeqie 1.5.1+git20200808-2a27c9ab

pinnerup avatar Nov 24 '20 21:11 pinnerup

The culprit appears to be gtk_clutter_init() Which graphics card are you using?

caclark avatar Nov 24 '20 21:11 caclark

The relevant part from sudo lspci -v is:

00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06) (prog-if 00 [VGA controller])
	DeviceName:  Onboard IGD
	Subsystem: Lenovo Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller
	Flags: bus master, fast devsel, latency 0, IRQ 33
	Memory at f7800000 (64-bit, non-prefetchable) [size=4M]
	Memory at e0000000 (64-bit, prefetchable) [size=256M]
	I/O ports at f000 [size=64]
	Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
	Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
	Capabilities: [d0] Power Management version 2
	Capabilities: [a4] PCI Advanced Features
	Kernel driver in use: i915
	Kernel modules: i915

pinnerup avatar Nov 24 '20 22:11 pinnerup

I have a laptop that shows an initialisation time of 1.3 secs., and a desktop shows 0.7 secs. So this is a general problem with Clutter. The development site for Clutter says that is no longer under development, as it will be replaced by GTK4 (which will open another can of worms, no doubt). I don't think it worth pursuing his problem.

caclark avatar Nov 25 '20 11:11 caclark

And the same problem here

LeTink avatar Jul 14 '21 02:07 LeTink

Would you please try: geeqie --disable-clutter --version --debug=4

In my case, it's indeed faster, but if I don't add --version, and try a normal startup, it takes ages again.

How can I help to diagnose this ?

lapineige avatar Jan 06 '24 16:01 lapineige

Removing ~/.config/geeqie solves the issue, so there is something here that slows everything...

There is an option in Preferences/Metadata to read metadata in the idle loop

I did that, no change.

Files are sorted by name.

star_rating is disabled. But it was present in image_overlay.template_string, from geeqierc.xml. Removing it didn't change anything.

lapineige avatar Jan 06 '24 16:01 lapineige

I found the issue: dir_view_type option value was "1". It corresponds in the UI to View > Files and Folder > Toggle folder view. If I activate it, startup takes ages, and if it's after startup, it freezes.

For some reason this option make it scan something in the storage and it's insanely slow, and blocking.

lapineige avatar Jan 06 '24 16:01 lapineige