linuxmint / pix

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

Segmentation fault at the opening of Pix #145

Closed FabienRCT closed 4 months ago

FabienRCT commented 2 years ago
 * Pix version 2.8.4
 * Distribution - (Mint 20.3)

Issue Segmentation fault at the opening of Pix after updating to Mint 20.3

Steps to reproduce After a lot of trial and error ( the segfault error with the immediate closing of the application doesn't happen 100% of the time), I narrowed the problem to the ~/.config/gtk-3.0/bookmarks files. After importing my bookmarks file in a test VM, I could reproduce the crash by letting more than 8 entries with the following character string "%20-%20" in this file. But I'm not sure if it's the number of line or the number of time this string appears in the file that cause the segfault. N.B: Deactivating the bookmark extension in Pix also prevent these segfault crashes.

Edit: after further test, it looks like it's not the string "%20-%20" that trigger the segfault, but the total number of entries in the bookmark file. If there are more than 45 lines in the files, Pix crashes.

bernd-wechner commented 4 months ago

I am seeing:

(pix:1506784): GLib-CRITICAL **: 17:23:38.330: g_strsplit: assertion 'string != NULL' failed
Segmentation fault (core dumped)

My system:

$ inxi -Fz
System:
  Kernel: 5.15.0-107-generic x86_64 bits: 64 Desktop: Cinnamon 6.0.4
    Distro: Linux Mint 21.3 Virginia
Machine:
  Type: Desktop System: ASUS product: All Series v: N/A
    serial: <superuser required>
  Mobo: ASUSTeK model: MAXIMUS VII FORMULA v: Rev 1.xx
    serial: <superuser required> UEFI: American Megatrends v: 3503
    date: 04/18/2018
CPU:
  Info: quad core model: Intel Core i7-4790 bits: 64 type: MT MCP cache:
    L2: 1024 KiB
  Speed (MHz): avg: 3882 min/max: 800/4000 cores: 1: 3911 2: 3902 3: 3853
    4: 3850 5: 3823 6: 3941 7: 3891 8: 3885
Graphics:
  Device-1: NVIDIA GP108 [GeForce GT 1030] driver: nvidia v: 535.171.04
  Display: x11 server: X.Org v: 1.21.1.4 driver: X: loaded: nvidia
    unloaded: fbdev,modesetting,nouveau,vesa gpu: nvidia
    resolution: 3840x2160~60Hz
  OpenGL: renderer: N/A v: N/A
Audio:
  Device-1: Intel 9 Series Family HD Audio driver: snd_hda_intel
  Device-2: NVIDIA GP108 High Definition Audio driver: snd_hda_intel
  Device-3: Logitech G930 type: USB
    driver: hid-generic,snd-usb-audio,usbhid
  Sound Server-1: ALSA v: k5.15.0-107-generic running: yes
  Sound Server-2: PulseAudio v: 15.99.1 running: yes
  Sound Server-3: PipeWire v: 0.3.48 running: yes
Network:
  Device-1: Intel Ethernet I218-V driver: e1000e
  IF: eno1 state: up speed: 100 Mbps duplex: full mac: <filter>
  Device-2: NetGear Managed Switch M4100 series M5300 M7100 series
    type: USB driver: cp210x
Drives:
  Local Storage: total: 9.72 TiB used: 3.55 TiB (36.5%)
  ID-1: /dev/sda vendor: Kingston model: SV300S37A240G size: 223.57 GiB
  ID-2: /dev/sdb vendor: Samsung model: SSD 830 Series size: 119.24 GiB
  ID-3: /dev/sdc vendor: Maxtor model: 6V320F0 size: 298.09 GiB
  ID-4: /dev/sdd vendor: Western Digital model: WD10EACS-00D6B1
    size: 931.51 GiB
  ID-5: /dev/sde vendor: Western Digital model: WD40PURX-64AKYY0
    size: 3.64 TiB
  ID-6: /dev/sdf vendor: Western Digital model: WD20EARX-00PASB0
    size: 1.82 TiB
  ID-7: /dev/sdg vendor: Western Digital model: WD33PURZ-85BWPY0
    size: 2.73 TiB
Partition:
  ID-1: / size: 218.51 GiB used: 41.65 GiB (19.1%) fs: ext4 dev: /dev/sda3
  ID-2: /boot/efi size: 512 MiB used: 16.7 MiB (3.3%) fs: vfat
    dev: /dev/sda2
  ID-3: /home size: 293.22 GiB used: 72.38 GiB (24.7%) fs: ext4
    dev: /dev/sdc1
Swap:
  ID-1: swap-1 type: file size: 2 GiB used: 1.91 GiB (95.3%) file: /swapfile
Sensors:
  System Temperatures: cpu: 54.0 C mobo: 27.8 C gpu: nvidia temp: 50 C
  Fan Speeds (RPM): N/A gpu: nvidia fan: 0%
Info:
  Processes: 508 Uptime: 48d 21h 53m Memory: 31.28 GiB
  used: 17.23 GiB (55.1%) Shell: Bash inxi: 3.3.13

and pix:

$ apt show pix
Package: pix
Version: 3.2.2+virginia
Priority: optional
Section: gnome
Maintainer: Linux Mint <root@linuxmint.com>
Installed-Size: 5,460 kB
Depends: gsettings-desktop-schemas, pix-data (= 3.2.2+virginia), libgl1-mesa-dri, libbrasero-media3-1 (>= 3.0.0), libc6 (>= 2.34), libcairo2 (>= 1.10.0), libclutter-1.0-0 (>= 1.11.10), libclutter-gtk-1.0-0 (>= 0.91.8), libexiv2-27 (>= 0.27.2), libgcc-s1 (>= 3.3.1), libgdk-pixbuf-2.0-0 (>= 2.27.1), libglib2.0-0 (>= 2.55.1), libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.4.0), libgtk-3-0 (>= 3.21.5), libheif1 (>= 1.11~), libjpeg8 (>= 8c), liblcms2-2 (>= 2.2+git20110628), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0 (>= 1.14.0), libpng16-16 (>= 1.6.2-1), libraw20 (>= 0.16.0), librsvg2-2 (>= 2.32.0), libsecret-1-0 (>= 0.7), libsoup2.4-1 (>= 2.41.90), libstdc++6 (>= 5.2), libtiff5 (>= 4.0.3), libwebkit2gtk-4.0-37 (>= 2.5.3), libwebp7, libx11-6, libxapp1 (>= 2.6.0), zlib1g (>= 1:1.1.4), dcraw, xapps-common (>= 2.5.0)
Recommends: libgphoto2-6, libgphoto2-port12
Homepage: https://github.com/linuxmint/pix
Download-Size: 1,086 kB
APT-Manual-Installed: yes
APT-Sources: https://mirror.aarnet.edu.au/pub/linuxmint-packages virginia/backport amd64 Packages
Description: image viewer and browser
 Pix is an advanced image viewer and browser. It has many useful
 features, such as filesystem browsing, slide show, image catalogs, web
 album creation, camera import, image CD burning, batch file operations and
 quick image editing features like transformation and color manipulation.
 .
 For camera import feature, the gPhoto2 library is used.
mtwebster commented 4 months ago

@bernd-wechner I can't reproduce this in the latest pix (3.4.1 - not much different than the 3.2.2) - does the crash occur immediately when opening pix? Or when performing some other action? Does this happen with a lot of bookmarks as the OP reported or is there some other way?

bernd-wechner commented 4 months ago

@bernd-wechner I can't reproduce this in the latest pix (3.4.1 - not much different than the 3.2.2) - does the crash occur immediately when opening pix? Or when performing some other action? Does this happen with a lot of bookmarks as the OP reported or is there some other way?

Yes on opening it. But rebooting it went away. So it's something environmental. Pix not liking something that emerged since start up. I've had this before in fact. But sure if the message was the exact same one because I was in a hurry to get some stuff done so rebooted and it went away. This time I took a copy of the console output and searched issues and found this one.

Alas right view I can't reproduce either. What I can do, is if it recurs come back here (by searching Segmentation fault under pix issues) and report again.

If that does happen is there any information u could collect that might help? I could probably find a core dump but I'm not sure if that's helpful (if it's not committed with debug symbols I redirect the best we could get from a cute dump is a disassembled view of the instructions leading to the segmentation fault.

The nature of segmentation faults is to implicate a memory management issue and typically use of an uninitialised pointer that is pointing to a random memory address somewhere outside of a legal range. But I speculate wildly ... That's just my experience with segmentation faults 😉

What I know, of hand, that might play a role, maybe, is that I do have quite a few drives mounted permanently, mostly ext4, but could be an odd NTFS or btrfs in the mix, AC few network mounts (NAS) and I often have a fuse mount or two produced by sshfs as well if I've been working on a server and haven't dismounted it yet. None of which should bother pix, but I noticed the issue right clicking an image file on the network mounted NAS in Nemo, and Open with pix. When nothing happens after several tries I open a terminal and just run pix to see if it has any console messages. And I saw the segmentation fault.

Now, if pix did perchance record the last viewed folder and that pointed to a folder that it has some issue finding ... Hmmmm. None of which should cause a crash of course, I'm grasping at straws considering what might be unusual about my setup and use case. In short I use pix to browse my photos and they are between a Nextcloud folder on a local data drive and in a qnap NAS.

mtwebster commented 4 months ago

You can run the System Reports tool, in it there's a crash tab. Previous crash reports may still be there. If so, click on one, then the Local Files button, and attach crash.tar.gz here.

I'll try to reproduce this with some removable/remote devices mixed in.

bernd-wechner commented 4 months ago

You can run the System Reports tool, in it there's a crash tab.

Man, you guys rock. Mint is just the best. Really. Not only are all the crash reports from yesterday there, there's even a pastebinb button for sharing it:

https://termbin.com/quhq

I have six crash reports, that's the last one, no doubt a console run.

mtwebster commented 4 months ago

Can you still get me the crash.tar.gz file from System Reports (click the Local Files button for the selected crash)

bernd-wechner commented 4 months ago

Ah, I can indeed, didn't see that. Alas, it will have to wait now, as I won't get onto that box again for about 8 hours or more. I'm on AEST and went to work and this issue is at home ;-)

bernd-wechner commented 4 months ago

And voila!

crash.tar.gz

mtwebster commented 4 months ago

Ok this probably isn't an issue with pix - here's that trace you attached, filled out:

(gdb) bt
#0  __GI_____strtoul_l_internal (nptr=nptr@entry=0x0, endptr=endptr@entry=0x7ffcdd99aa78, base=base@entry=10, group=group@entry=0, loc=0x7fcf78d319a0 <_nl_C_locobj>)
    at ../stdlib/strtol_l.c:291
#1  0x00007fcf78b5ff3e in __GI___strtoul_l (nptr=nptr@entry=0x0, endptr=endptr@entry=0x7ffcdd99aa78, base=base@entry=10, loc=<optimized out>) at ../stdlib/strtol_l.c:546
#2  0x00007fcf7a00adbd in g_ascii_strtoull (nptr=nptr@entry=0x0, endptr=endptr@entry=0x7ffcdd99aa78, base=base@entry=10) at ../../../glib/gstrfuncs.c:1218
#3  0x00007fcf783a3f41 in _cogl_gpu_info_parse_version_string.constprop.0
    (version_string=<optimized out>, tail=tail@entry=0x7ffcdd99aab0, version_ret=version_ret@entry=0x0, n_components=2)
    at /build/cogl-lZF0K3/cogl-1.22.8/cogl/cogl-gpu-info.c:90
#4  0x00007fcf78352882 in check_mesa_driver_package (strings=<optimized out>, version_ret=0x55bd4e927678) at /build/cogl-lZF0K3/cogl-1.22.8/cogl/cogl-gpu-info.c:421
#5  0x00007fcf78353572 in _cogl_gpu_info_init (ctx=ctx@entry=0x55bd4e927600, gpu=gpu@entry=0x55bd4e927658) at /build/cogl-lZF0K3/cogl-1.22.8/cogl/cogl-gpu-info.c:527
#6  0x00007fcf78355bb1 in _cogl_driver_update_features (context=0x55bd4e927600, error=<optimized out>) at driver/gl/gles/cogl-driver-gles.c:285
#7  0x00007fcf78385000 in _cogl_context_update_features (error=<optimized out>, context=0x55bd4e927600) at /build/cogl-lZF0K3/cogl-1.22.8/cogl/cogl-context.c:648
#8  _cogl_winsys_context_init (context=0x55bd4e927600, error=<optimized out>) at winsys/cogl-winsys-stub.c:110
#9  0x00007fcf7835b2e0 in cogl_context_new (display=0x55bd4e755f20, error=error@entry=0x7ffcdd99ac70) at /build/cogl-lZF0K3/cogl-1.22.8/cogl/cogl-context.c:237
#10 0x00007fcf790bf370 in clutter_backend_do_real_create_context (error=0x7ffcdd99ac68, driver_id=<optimized out>, backend=0x55bd4e65e9c0 [ClutterBackendGdk])
    at /build/clutter-1.0-q2dS3N/clutter-1.0-1.26.4+dfsg/clutter/clutter-backend.c:331
#11 clutter_backend_real_create_context (backend=0x55bd4e65e9c0 [ClutterBackendGdk], error=0x7ffcdd99adf8)
    at /build/clutter-1.0-q2dS3N/clutter-1.0-1.26.4+dfsg/clutter/clutter-backend.c:414
#12 0x00007fcf790e42b7 in _clutter_backend_create_context (error=0x7ffcdd99adf8, backend=<optimized out>)
    at /build/clutter-1.0-q2dS3N/clutter-1.0-1.26.4+dfsg/clutter/clutter-backend.c:901
#13 _clutter_feature_init (error=0x7ffcdd99adf8) at /build/clutter-1.0-q2dS3N/clutter-1.0-1.26.4+dfsg/clutter/clutter-feature.c:107
#14 _clutter_feature_init (error=0x7ffcdd99adf8) at /build/clutter-1.0-q2dS3N/clutter-1.0-1.26.4+dfsg/clutter/clutter-feature.c:88
#15 clutter_init_real (error=error@entry=0x7ffcdd99adf8) at /build/clutter-1.0-q2dS3N/clutter-1.0-1.26.4+dfsg/clutter/clutter-main.c:1418
#16 0x00007fcf790e474e in clutter_init_with_args
    (argc=argc@entry=0x0, argv=argv@entry=0x0, parameter_string=parameter_string@entry=0x0, entries=entries@entry=0x0, translation_domain=translation_domain@entry=0x0, error=error@entry=0x7ffcdd99adf8) at /build/clutter-1.0-q2dS3N/clutter-1.0-1.26.4+dfsg/clutter/clutter-main.c:1777
#17 0x00007fcf78f00d7a in post_parse_hook (context=<optimized out>, group=<optimized out>, data=<optimized out>, error=0x7ffcdd99adf8)
    at /build/clutter-gtk-roWknY/clutter-gtk-1.8.4/clutter-gtk/gtk-clutter-util.c:149
#18 0x00007fcf79ff7a48 in g_option_context_parse
    (context=context@entry=0x55bd4e6d1cc0, argc=argc@entry=0x7ffcdd99adf4, argv=argv@entry=0x7ffcdd99ae00, error=error@entry=0x7ffcdd99adf8) at ../../../glib/goption.c:2217
#19 0x000055bd4e059963 in gth_application_local_command_line (application=<optimized out>, arguments=0x7ffcdd99ae48, exit_status=0x7ffcdd99ae44)
    at ../pix/gth-application.c:367
#20 0x00007fcf79e93f46 in g_application_run (application=0x55bd4e6630f0 [GthApplication], argc=argc@entry=2, argv=argv@entry=0x7ffcdd99afd8)
    at ../../../gio/gapplication.c:2538
#21 0x000055bd4e044ee7 in main (argc=2, argv=0x7ffcdd99afd8) at ../pix/main.c:63

There's a report with an identical trace here: https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/1871385

I think this is more an issue with the libraries used for the slideshow feature - the clutter/gtkclutter libraries provide animated transitions to the slideshow. I'm not sure it's something that will be fixed either, as both of those libraries are also now 'retired' - we'll likely need to re-implement this stuff.

If you get a chance please try to reproduce this in the latest version - it's possible something else from the new package base (Mint 21->22) has 'fixed' it.

mtwebster commented 4 months ago

I've modified the build so it no longer uses these libraries, so this bug should no longer apply in the next release.

bernd-wechner commented 4 months ago

Have to admit it piques my curiosity what environmental parameter triggers it. I did work out it was not in user space though (pretty sure). Because my observations were:

  1. pix crashes on startup
  2. log out, log in. pix still crashes on startup
  3. reboot. pix starts fine.

Which suggests something in environment outside of user space triggered it.

I have only seen it I think twice. The first time I did steps 1 and 3 above (and was months ago). The last time I did 1, 2, 3 above and was when I thought it best to report, searched the issues for related items found this one and added to it (though it may in fact be unrelated ;-).