Bug#956497: ristretto: 25 seconds delay when starting under openbox
Package: ristretto
Version: 0.8.3-1
Severity: important
Dear Maintainer,
When I run «ristretto» under Openbox, there is a 25s delay before the
window opens. That doesn't happen under XFCE.
- I tried to run ristretto with and without command-line arguments.
That did not affect the outcome. At the time, the current working
directory contained one *.png file (sized 1.2MB) and nothing else.
- I timed the delay with a wallclock. It was approximately 25 seconds.
- I ran «strace ristretto» (without any other arguments). A delay
occurs at this point:
openat(AT_FDCWD, "/etc/localtime", O_RDONLY|O_CLOEXEC) = 10
fstat(10, {st_mode=S_IFREG|0644, st_size=127, ...}) = 0
fstat(10, {st_mode=S_IFREG|0644, st_size=127, ...}) = 0
read(10, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\1\0\0\0\0"..., 4096) = 127
lseek(10, -71, SEEK_CUR) = 56
read(10, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\1\0\0\0\0"..., 4096) = 71
close(10) = 0
brk(0x55fccb38d000) = 0x55fccb38d000
brk(0x55fccb38c000) = 0x55fccb38c000
write(8, "\1\0\0\0\0\0\0\0", 8) = 8
futex(0x55fccb313320, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x55fccb3130b0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x55fccb30a048, FUTEX_WAKE_PRIVATE, 1) = 1
write(8, "\1\0\0\0\0\0\0\0", 8) = 8
futex(0x55fccb3130b0, FUTEX_WAKE_PRIVATE, 1) = 1
write(8, "\1\0\0\0\0\0\0\0", 8) = 8
futex(0x55fccb30a048, FUTEX_WAKE_PRIVATE, 1) = 1
eventfd2(0, EFD_CLOEXEC|EFD_NONBLOCK) = 10
write(10, "\1\0\0\0\0\0\0\0", 8) = 8
write(8, "\1\0\0\0\0\0\0\0", 8) = 8
futex(0x55fccb313320, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x55fccb3130b0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x55fccb30a048, FUTEX_WAKE_PRIVATE, 1) = 1
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^Cstrace: Process 4556 detached
<detached ...>
I captured a backtrace (from a different ristretto run, because lldb
failed to attached to the strace'd run):
* thread #1, name = 'ristretto', stop reason = signal SIGSTOP
* frame #0: 0x00007ffff6ba0819 libc.so.6`__GI___poll(fds=0x0000555555648720, nfds=1, timeout=25000) at poll.c:29
frame #1: 0x00007ffff762b136 libglib-2.0.so.0`___lldb_unnamed_symbol193$$libglib-2.0.so.0 + 374
frame #2: 0x00007ffff762b4c2 libglib-2.0.so.0`g_main_loop_run + 178
frame #3: 0x00007ffff78a1b53 libgio-2.0.so.0`___lldb_unnamed_symbol2705$$libgio-2.0.so.0 + 243
frame #4: 0x00007ffff78118c2 libgio-2.0.so.0`g_initable_new_valist + 146
frame #5: 0x00007ffff7811979 libgio-2.0.so.0`g_initable_new + 153
frame #6: 0x00007ffff78a34fc libgio-2.0.so.0`g_dbus_proxy_new_for_bus_sync + 236
frame #7: 0x0000555555575ef5 ristretto`rstto_main_window_init(window=0x00005555555d9260) at main_window.c:809
frame #8: 0x00007ffff7730107 libgobject-2.0.so.0`g_type_create_instance + 775
frame #9: 0x00007ffff7712548 libgobject-2.0.so.0`___lldb_unnamed_symbol123$$libgobject-2.0.so.0 + 744
frame #10: 0x00007ffff7713cc5 libgobject-2.0.so.0`g_object_new_with_properties + 757
frame #11: 0x00007ffff7714731 libgobject-2.0.so.0`g_object_new + 193
frame #12: 0x0000555555578f5a ristretto`rstto_main_window_new(image_list=0x00005555555a95a0, fullscreen=0) at main_window.c:1263
frame #13: 0x0000555555566c74 ristretto`main(argc=<unavailable>, argv=<unavailable>) at main.c:134
frame #14: 0x00007ffff6ad609b libc.so.6`__libc_start_main(main=(ristretto`main at main.c:86), argc=1, argv=0x00007fffffffe6e8, init=<unavailable>, fini=<unavailable>, rtld_fini=<unavailable>, stack_end=0x00007fffffffe6d8) at libc-start.c:308
frame #15: 0x0000555555566e0a ristretto`_start + 42
- The delay occurs when I run ristretto under Openbox (using «startx
openbox» after logging in on a Ctrl+Alt+F<digit> tty, without a login
manager), but does not occur when I run ristretto under XFCE.
- This used to work fine. I don't remember when it last worked, but
that may well have been on stretch. (I'm currently on buster.)
- I have not tested 0.10.0-1, since I do not have a testing or sid
headful VM. However, I did check the bug trackers and changelogs,
both Debian's and upstream's, and found no relevant matches.
It would seem that the last poll(2) call times out while reading from
the eventfd2() fd.
I would be grateful for a workaround for getting rid of the delay.
Cheers,
Daniel
-- System Information:
Debian Release: 10.3
APT prefers stable-debug
APT policy: (500, 'stable-debug'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 4.19.0-8-amd64 (SMP w/4 CPU cores)
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE=C.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages ristretto depends on:
ii libc6 2.28-10
ii libcairo2 1.16.0-4
ii libexif12 0.6.21-5.1+deb10u1
ii libgdk-pixbuf2.0-0 2.38.1+dfsg-1
ii libglib2.0-0 2.58.3-2+deb10u2
ii libgtk2.0-0 2.24.32-3
ii libmagic1 1:5.35-4+deb10u1
ii libpango-1.0-0 1.42.4-7~deb10u1
ii libpangocairo-1.0-0 1.42.4-7~deb10u1
ii libx11-6 2:1.6.7-1
ii libxfce4ui-1-0 4.12.1-3
ii libxfce4util7 4.12.1-3
ii libxfconf-0-2 4.12.1-1
Versions of packages ristretto recommends:
ii tumbler 0.2.3-1
ristretto suggests no packages.
-- no debconf information
Reply to: