linuxmint / pix

Image management application
GNU General Public License v2.0
209 stars 43 forks source link

Pix crashes on launch: "Pix is not responding" #167

Open DGedye opened 1 year ago

DGedye commented 1 year ago
pix --2.8.9+vera
Linux Mint 21.1 Cinnamon 

Issue Pix crashes on startup It used to work fine, problem appeared last year approximately around the time that I downloaded a photo from google photos, but I am not sure if that is related. I have tried uninstalling and reinstalling pix but no change. I thought I would retry after doing installing Linux Mint 21.1 Cinnamon but getting same problem

Steps to reproduce Launch pix Pix screen appears but is unresponsive After about 1 minute a box appears "Downloads - Pix is not responding. [force quit] [wait]

Expected behaviour

Other information I tried running it from a terminal and got the following:

(pix:452625): GLib-GObject-WARNING **: 19:00:57.688: g_type_class_add_private() called multiple times for the same type

matinh commented 1 year ago

Hi!

Same for me on Linux Mint 21 with pix 2.8.7. Running strace on the pix-process shows it's polling something. Lot's of

poll([{fd=4, events=POLLIN}], 1, -1)    = 1 ([{fd=4, revents=POLLIN}])
recvmsg(4, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0)\246\0\0\0\0\16\0\300\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(4, {msg_namelen=0}, 0)          = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
futex(0x558871d5d9f0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x558871d5d9f0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f65f0850128, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
futex(0x7f6534000030, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
futex(0x7f6534000030, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
futex(0x7f6534000030, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f6534000030, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
futex(0x7f6534000030, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f6534000030, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
futex(0x7f6534000030, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f6534000030, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f65f0850128, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
futex(0x7f65f0850128, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f65f0850128, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)

I also noticed, the crash does not happen always. If I open a folder without images pix seems to work fine. It is also working if I open some folders taken with a rather old camera. Maybe it has problems with reading some meta-info like exif-tags?

When running from terminal I once got many of this messages: Error: Directory Sony1, entry 0xffff has invalid size 4294967295*1; skipping entry. And another time I got a similar message for "NikonPreview" instead of "Sony1". However sometimes it hangs without any message.

Any ideas anybody?

Sythelux commented 1 year ago

I have that too starting today. I'm not sure how to provide any logs.

edit: I figured out I have a wonky network mount, that wasn't responding anymore. Pix apparently tried to IO pull (without timeout) files on that drive. I unmounted said drive and it works for now.

matinh commented 1 year ago

Additional info: the problem disappears, when I disable the EXIF/IPTC/XMP plugin!

But interestingly, the problem seems to depend on multiple conditions: even with all plugins enabled, the problem is not reproducible with a directory with 3 images. Adding a 4th one triggers the problem for me. But having only the 4th image alone in a folder shows the image without problems. So it seems the number of processed images makes a difference.

matinh commented 1 year ago

Here is some library version information for the problematic plugin:

martin@linux-du94:~$ ldd /usr/lib/x86_64-linux-gnu/pix/extensions/libexiv2_tools.so
    linux-vdso.so.1 (0x00007ffffc7cc000)
    libgtk-3.so.0 => /lib/x86_64-linux-gnu/libgtk-3.so.0 (0x00007fa3947f6000)
    libcairo.so.2 => /lib/x86_64-linux-gnu/libcairo.so.2 (0x00007fa3946ce000)
    libgdk_pixbuf-2.0.so.0 => /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007fa39469e000)
    libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007fa3944c5000)
    libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007fa394465000)
    libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fa394329000)
    libexiv2.so.27 => /lib/x86_64-linux-gnu/libexiv2.so.27 (0x00007fa394034000)
    libedit_metadata.so => /usr/lib/x86_64-linux-gnu/pix/extensions/libedit_metadata.so (0x00007fa394023000)
    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa393df9000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa393bd1000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa393bb1000)
    libgdk-3.so.0 => /lib/x86_64-linux-gnu/libgdk-3.so.0 (0x00007fa393aa8000)
    libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007fa393aa1000)
    libpangocairo-1.0.so.0 => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007fa393a8f000)
    libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007fa39394f000)
    libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6 (0x00007fa39393b000)
    libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007fa393933000)
    libcairo-gobject.so.2 => /lib/x86_64-linux-gnu/libcairo-gobject.so.2 (0x00007fa393925000)
    libatk-1.0.so.0 => /lib/x86_64-linux-gnu/libatk-1.0.so.0 (0x00007fa3938fb000)
    libatk-bridge-2.0.so.0 => /lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0 (0x00007fa3938c3000)
    libepoxy.so.0 => /lib/x86_64-linux-gnu/libepoxy.so.0 (0x00007fa39378e000)
    libfribidi.so.0 => /lib/x86_64-linux-gnu/libfribidi.so.0 (0x00007fa393772000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa39368b000)
    libpangoft2-1.0.so.0 => /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007fa39366e000)
    libpango-1.0.so.0 => /lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007fa393607000)
    libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007fa393538000)
    libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007fa3934ee000)
    libpixman-1.so.0 => /lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007fa393443000)
    libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fa393379000)
    libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007fa39333e000)
    libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007fa393339000)
    libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fa39330f000)
    libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007fa393300000)
    libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007fa3932f3000)
    libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007fa3932de000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fa3932c0000)
    libjpeg.so.8 => /lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007fa39323f000)
    libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007fa3931fb000)
    libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fa3931cf000)
    libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007fa3931c2000)
    libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fa39314a000)
    libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007fa393119000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fa395054000)
    libXinerama.so.1 => /lib/x86_64-linux-gnu/libXinerama.so.1 (0x00007fa393114000)
    libXrandr.so.2 => /lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007fa393107000)
    libXcursor.so.1 => /lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007fa3930fb000)
    libXcomposite.so.1 => /lib/x86_64-linux-gnu/libXcomposite.so.1 (0x00007fa3930f4000)
    libXdamage.so.1 => /lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007fa3930ef000)
    libxkbcommon.so.0 => /lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007fa3930a8000)
    libwayland-cursor.so.0 => /lib/x86_64-linux-gnu/libwayland-cursor.so.0 (0x00007fa39309e000)
    libwayland-egl.so.1 => /lib/x86_64-linux-gnu/libwayland-egl.so.1 (0x00007fa393099000)
    libwayland-client.so.0 => /lib/x86_64-linux-gnu/libwayland-client.so.0 (0x00007fa393088000)
    libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007fa393038000)
    libatspi.so.0 => /lib/x86_64-linux-gnu/libatspi.so.0 (0x00007fa392ffe000)
    libthai.so.0 => /lib/x86_64-linux-gnu/libthai.so.0 (0x00007fa392ff3000)
    libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007fa392fcc000)
    libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fa392fc1000)
    libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007fa392fb3000)
    libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007fa392fad000)
    libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fa392fa5000)
    libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007fa392f6e000)
    libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007fa392ed5000)
    libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007fa392e0e000)
    libdatrie.so.1 => /lib/x86_64-linux-gnu/libdatrie.so.1 (0x00007fa392e05000)
    libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007fa392de2000)
    libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fa392dca000)
    liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fa392d9d000)
    libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007fa392cce000)
    liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007fa392cae000)
    libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007fa392ca3000)
    libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007fa392b65000)
    libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007fa392b58000)
    libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007fa392b30000)