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

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: