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 via email to