I’m running the same code on macOS and linux, and it’s crashing with SEGV received in ILL handler on linux, while running fine on macOS. It crashes on the activerecord variant .processed function.
app/models/user.rb:
def avatar_thumbnail
if avatar.attached?
avatar.variant(resize_to_fit: [250, 250]).processed
else
'default_avatar.jpg'
end
end
I’ve just checked the active record version, as well as the ruby-vips version, uninstalled the vips gem (the working version on mac did not use it) etc. Nothing.
If I were troubleshooting this problem, the first thing I’d want to know is which executable or library is generating the SIGSEGV, then search that package’s bug list to see if it’s a known problem. Odds are that you aren’t the first person to trigger this bug.
A core dump should provide a stack trace that lets you know which package was at fault. Unfortunately, different Linux distros handle core dumps differently so you’ll have to do some research to figure out how to enable core dumps, where the dump files will be located, and how to read them. But there’s abundant literature on the web about that.
Not exactly sure how to find out which executable or library caused this. It looks like activerecord? Here is the link to the outputs if you did not see it.
This is what the core dumped. It actually looks like the offending library is libvips?
PID: 22415 (ruby)
UID: 1000 (redacted)
GID: 1000 (redacted)
Signal: 6 (ABRT)
Timestamp: Sun 2024-08-25 20:48:03 CDT (4s ago)
Command Line: $'puma 5.6.8 (tcp://localhost:3000) [3pt]'
Executable: /home/redacted/.rbenv/versions/3.2.2/bin/ruby
Control Group: /user.slice/user-1000.slice/user@1000.service/kitty-1828-0.scope
Unit: user@1000.service
User Unit: kitty-1828-0.scope
Slice: user-1000.slice
Owner UID: 1000 (redacted)
Boot ID: 36821efae9864836a1153dde52c7b8b9
Machine ID: cb197f3c36e346f9ae11d0a5f31bb4f4
Hostname: redacted
Storage: /var/lib/systemd/coredump/core.ruby.1000.36821efae9864836a1153dde52c7b8b9.22415.1724636883000000.zst (present)
Size on Disk: 38.8M
Message: Process 22415 (ruby) of user 1000 dumped core.
Module libtinfo.so.6 from rpm ncurses-6.4-12.20240127.fc40.aarch64
Module libncurses.so.6 from rpm ncurses-6.4-12.20240127.fc40.aarch64
Module libreadline.so.8 from rpm readline-8.2-8.fc40.aarch64
Module libSvtAv1Enc.so.2 from rpm svt-av1-2.1.0-1.fc40.aarch64
Module libheif-svtenc.so from rpm libheif-1.17.6-1.fc40.aarch64
Module librav1e.so.0 from rpm rust-rav1e-0.7.1-2.fc40.aarch64
Module libheif-rav1e.so from rpm libheif-1.17.6-1.fc40.aarch64
Module libgpg-error.so.0 from rpm libgpg-error-1.49-1.fc40.aarch64
Module libplds4.so from rpm nss-3.101.0-1.fc40.aarch64
Module libnspr4.so from rpm nss-3.101.0-1.fc40.aarch64
Module libplc4.so from rpm nss-3.101.0-1.fc40.aarch64
Module libpoppler.so.134 from rpm poppler-24.02.0-2.fc40.aarch64
Module libpoppler-glib.so.8 from rpm poppler-24.02.0-2.fc40.aarch64
Module vips-poppler.so from rpm vips-8.15.1-2.fc40.aarch64
Module libdicom.so.1 from rpm libdicom-1.1.0-1.fc40.aarch64
Module libopenslide.so.1 from rpm openslide-4.0.0-3.fc40.aarch64
Module vips-openslide.so from rpm vips-8.15.1-2.fc40.aarch64
Module libuuid.so.1 from rpm util-linux-2.40.1-1.fc40.aarch64
Module libltdl.so.7 from rpm libtool-2.4.7-10.fc40.aarch64
Module libzip.so.5 from rpm libzip-1.10.1-3.fc40.aarch64
Module libXt.so.6 from rpm libXt-1.3.0-3.fc40.aarch64
Module libICE.so.6 from rpm libICE-1.1.1-3.fc40.aarch64
Module libSM.so.6 from rpm libSM-1.2.4-3.fc40.aarch64
Module libraqm.so.0 from rpm libraqm-0.8.0-7.fc40.aarch64
Module libMagickCore-7.Q16HDRI.so.10 from rpm ImageMagick-7.1.1.26-5.fc40.aarch64
Module vips-magick.so from rpm vips-8.15.1-2.fc40.aarch64
Module libjxl_threads.so.0.8 from rpm jpegxl-0.8.3-1.fc40.aarch64
Module vips-jxl.so from rpm vips-8.15.1-2.fc40.aarch64
Module libbrotlienc.so.1 from rpm brotli-1.1.0-3.fc40.aarch64
Module libjxl.so.0.8 from rpm jpegxl-0.8.3-1.fc40.aarch64
Module libaom.so.3 from rpm aom-3.9.0-1.fc40.aarch64
Module libdav1d.so.7 from rpm dav1d-1.4.3-1.fc40.aarch64
Module libheif.so.1 from rpm libheif-1.17.6-1.fc40.aarch64
Module vips-heif.so from rpm vips-8.15.1-2.fc40.aarch64
Module libbrotlicommon.so.1 from rpm brotli-1.1.0-3.fc40.aarch64
Module libunistring.so.5 from rpm libunistring-1.1-7.fc40.aarch64
Module libsz.so.2 from rpm libaec-1.1.2-1.fc40.aarch64
Module libXau.so.6 from rpm libXau-1.0.11-6.fc40.aarch64
Module libdatrie.so.1 from rpm libdatrie-0.2.13-9.fc40.aarch64
Module libgraphite2.so.3 from rpm graphite2-1.3.14-15.fc40.aarch64
Module libbrotlidec.so.1 from rpm brotli-1.1.0-3.fc40.aarch64
Module libpsl.so.5 from rpm libpsl-0.21.5-3.fc40.aarch64
Module libssh.so.4 from rpm libssh-0.10.6-5.fc40.aarch64
Module libidn2.so.0 from rpm libidn2-2.3.7-1.fc40.aarch64
Module libnghttp2.so.14 from rpm nghttp2-1.59.0-3.fc40.aarch64
Module libattr.so.1 from rpm attr-2.5.2-3.fc40.aarch64
Module libblkid.so.1 from rpm util-linux-2.40.1-1.fc40.aarch64
Module libIex-3_1.so.30 from rpm openexr-3.1.13-1.fc40.aarch64
Module libIlmThread-3_1.so.30 from rpm openexr-3.1.13-1.fc40.aarch64
Module libImath-3_1.so.29 from rpm imath-3.1.10-1.fc40.aarch64
Module libhdf5.so.200 from rpm hdf5-1.12.1-15.fc40.aarch64
Module libgdk_pixbuf-2.0.so.0 from rpm gdk-pixbuf2-2.42.10-8.fc40.aarch64
Module libcairo-gobject.so.2 from rpm cairo-1.18.0-3.fc40.aarch64
Module libjbig.so.2.1 from rpm jbigkit-2.1-29.fc40.aarch64
Module libLerc.so.4 from rpm liblerc-4.0.0-6.fc40.aarch64
Module libpixman-1.so.0 from rpm pixman-0.43.4-1.fc40.aarch64
Module libxcb-shm.so.0 from rpm libxcb-1.17.0-1.fc40.aarch64
Module libxcb-render.so.0 from rpm libxcb-1.17.0-1.fc40.aarch64
Module libxcb.so.1 from rpm libxcb-1.17.0-1.fc40.aarch64
Module libXrender.so.1 from rpm libXrender-0.9.11-6.fc40.aarch64
Module libXext.so.6 from rpm libXext-1.3.6-1.fc40.aarch64
Module libX11.so.6 from rpm libX11-1.8.9-1.fc40.aarch64
Module libfreetype.so.6 from rpm freetype-2.13.2-5.fc40.aarch64
Module libpng16.so.16 from rpm libpng-1.6.40-3.fc40.aarch64
Module libthai.so.0 from rpm libthai-0.1.29-8.fc40.aarch64
Module libfribidi.so.0 from rpm fribidi-1.0.14-2.fc40.aarch64
Module libharfbuzz.so.0 from rpm harfbuzz-8.5.0-1.fc40.aarch64
Module libsharpyuv.so.0 from rpm libwebp-1.3.2-5.fc40.aarch64
Module libcurl.so.4 from rpm curl-8.6.0-8.fc40.aarch64
Module libxml2.so.2 from rpm libxml2-2.12.8-1.fc40.aarch64
Module libbz2.so.1 from rpm bzip2-1.0.8-18.fc40.aarch64
Module liblz4.so.1 from rpm lz4-1.9.4-6.fc40.aarch64
Module libzstd.so.1 from rpm zstd-1.5.6-1.fc40.aarch64
Module liblzma.so.5 from rpm xz-5.4.6-3.fc40.aarch64
Module libacl.so.1 from rpm acl-2.3.2-1.fc40.aarch64
Module libmount.so.1 from rpm util-linux-2.40.1-1.fc40.aarch64
Module libznz.so.2 from rpm nifticlib-2.0.0-32.fc40.aarch64
Module libniftiio.so.2 from rpm nifticlib-2.0.0-32.fc40.aarch64
Module libopenjp2.so.7 from rpm openjpeg2-2.5.2-1.fc40.aarch64
Module libOpenEXR-3_1.so.30 from rpm openexr-3.1.13-1.fc40.aarch64
Module liblcms2.so.2 from rpm lcms2-2.16-3.fc40.aarch64
Module libmatio.so.11 from rpm matio-1.5.26-3.fc40.aarch64
Module librsvg-2.so.2 from rpm librsvg2-2.57.1-6.fc40.aarch64
Module libtiff.so.6 from rpm libtiff-4.6.0-2.fc40.aarch64
Module libfontconfig.so.1 from rpm fontconfig-2.15.0-6.fc40.aarch64
Module libpangoft2-1.0.so.0 from rpm pango-1.54.0-1.fc40.aarch64
Module libcairo.so.2 from rpm cairo-1.18.0-3.fc40.aarch64
Module libpango-1.0.so.0 from rpm pango-1.54.0-1.fc40.aarch64
Module libpangocairo-1.0.so.0 from rpm pango-1.54.0-1.fc40.aarch64
Module libwebpdemux.so.2 from rpm libwebp-1.3.2-5.fc40.aarch64
Module libwebpmux.so.3 from rpm libwebp-1.3.2-5.fc40.aarch64
Module libwebp.so.7 from rpm libwebp-1.3.2-5.fc40.aarch64
Module libspng.so.0 from rpm libspng-0.7.4-4.fc40.aarch64
Module libjpeg.so.62 from rpm libjpeg-turbo-3.0.2-1.fc40.aarch64
Module libexif.so.12 from rpm libexif-0.6.24-7.fc40.aarch64
Module libcgif.so.0 from rpm libcgif-0.4.1-1.fc40.aarch64
Module libimagequant.so.0 from rpm rust-imagequant-sys-4.0.3-3.fc40.aarch64
Module libcfitsio.so.10 from rpm cfitsio-4.4.0-2.fc40.aarch64
Module libfftw3.so.3 from rpm fftw-3.3.10-12.fc40.aarch64
Module libarchive.so.13 from rpm libarchive-3.7.2-4.fc40.aarch64
Module libexpat.so.1 from rpm expat-2.6.2-1.fc40.aarch64
Module libgmodule-2.0.so.0 from rpm glib2-2.80.3-1.fc40.aarch64
Module libgio-2.0.so.0 from rpm glib2-2.80.3-1.fc40.aarch64
Module libvips.so.42 from rpm vips-8.15.1-2.fc40.aarch64
Module libffi.so.8 from rpm libffi-3.4.4-7.fc40.aarch64
Module libgobject-2.0.so.0 from rpm glib2-2.80.3-1.fc40.aarch64
Module libglib-2.0.so.0 from rpm glib2-2.80.3-1.fc40.aarch64
Module libpcre2-8.so.0 from rpm pcre2-10.44-1.fc40.aarch64
Module libselinux.so.1 from rpm libselinux-3.6-4.fc40.aarch64
Module libsasl2.so.3 from rpm cyrus-sasl-2.1.28-19.fc40.aarch64
Module libevent-2.1.so.7 from rpm libevent-2.1.12-12.fc40.aarch64
Module libkeyutils.so.1 from rpm keyutils-1.6.3-3.fc40.aarch64
Module libkrb5support.so.0 from rpm krb5-1.21.3-1.fc40.aarch64
Module libcom_err.so.2 from rpm e2fsprogs-1.47.0-5.fc40.aarch64
Module libk5crypto.so.3 from rpm krb5-1.21.3-1.fc40.aarch64
Module libkrb5.so.3 from rpm krb5-1.21.3-1.fc40.aarch64
Module libgssapi_krb5.so.2 from rpm krb5-1.21.3-1.fc40.aarch64
Module libpq.so.5 from rpm libpq-16.1-4.fc40.aarch64
Module libcrypto.so.3 from rpm openssl-3.2.1-2.fc40.aarch64
Module libssl.so.3 from rpm openssl-3.2.1-2.fc40.aarch64
Module libyaml-0.so.2 from rpm libyaml-0.2.5-14.fc40.aarch64
Module libcrypt.so.2 from rpm libxcrypt-4.4.36-5.fc40.aarch64
Module libz.so.1 from rpm zlib-ng-2.1.7-1.fc40.aarch64
Stack trace of thread 22804:
#0 0x0000ffffa47385e0 __pthread_kill_implementation (libc.so.6 + 0x985e0)
#1 0x006cffffa46e5a00 n/a (n/a + 0x0)
#2 0x006cffffa46e5a00 n/a (n/a + 0x0)
#3 0x0007ffffa46d0288 n/a (n/a + 0x0)
#4 0x0004ffffa4c984d4 n/a (n/a + 0x0)
#5 0x0043ffffa4c98610 n/a (n/a + 0x0)
#6 0x0025ffffa5064800 n/a (n/a + 0x0)
#7 0x0000ffffa4c98514 n/a (/home/june/.rbenv/versions/3.2.2/lib/libruby.so.3.2.2 + 0x278514)
#8 0x0006ffffa4c9867c n/a (n/a + 0x0)
#9 0x006fffffa5064800 n/a (n/a + 0x0)
#10 0x003bffff8f2b872c n/a (n/a + 0x0)
#11 0x003bffff8f2b872c n/a (n/a + 0x0)
#12 0x0041ffff8f3774f4 n/a (n/a + 0x0)
#13 0x0001ffff8f36be1c n/a (n/a + 0x0)
#14 0x0027ffff8f377d08 n/a (n/a + 0x0)
#15 0x0007ffff8f35e27c n/a (n/a + 0x0)
#16 0x0051ffff8f3774f4 n/a (n/a + 0x0)
#17 0x004dffff8f36be1c n/a (n/a + 0x0)
#18 0x0056ffff8f377d08 n/a (n/a + 0x0)
#19 0x001effff8f2f152c n/a (n/a + 0x0)
#20 0x0069ffff8f3774f4 n/a (n/a + 0x0)
#21 0x0034ffff8f378220 n/a (n/a + 0x0)
#22 0x0065ffff8f378454 n/a (n/a + 0x0)
#23 0x0076ffff8f2f8100 n/a (n/a + 0x0)
#24 0x0022ffff8f3774f4 n/a (n/a + 0x0)
#25 0x0065ffff8f36be1c n/a (n/a + 0x0)
#26 0x0017ffff8f377d08 n/a (n/a + 0x0)
#27 0x0039ffff8f2b83a8 n/a (n/a + 0x0)
#28 0x0026ffff8f3774f4 n/a (n/a + 0x0)
#29 0x0062ffff8f36be1c n/a (n/a + 0x0)
#30 0x0014ffff8f377d08 n/a (n/a + 0x0)
#31 0x004effff8f35e27c n/a (n/a + 0x0)
#32 0x006cffff8f3774f4 n/a (n/a + 0x0)
#33 0x0060ffff8f36be1c n/a (n/a + 0x0)
#34 0x002affff8f377d08 n/a (n/a + 0x0)
#35 0x007affff8f35e27c n/a (n/a + 0x0)
#36 0x0032ffff8f3774f4 n/a (n/a + 0x0)
#37 0x007affff8f36be1c n/a (n/a + 0x0)
#38 0x006dffff8f377d08 n/a (n/a + 0x0)
#39 0x007cffff8f2f152c n/a (n/a + 0x0)
#40 0x004affff8f3774f4 n/a (n/a + 0x0)
#41 0x007dffff8f378220 n/a (n/a + 0x0)
#42 0x002dffff8f378454 n/a (n/a + 0x0)
#43 0x0026ffff8f2f8100 n/a (n/a + 0x0)
#44 0x002effff8f3774f4 n/a (n/a + 0x0)
#45 0x002fffff8f36be1c n/a (n/a + 0x0)
#46 0x0021ffff8f377d08 n/a (n/a + 0x0)
#47 0x0028ffff8f3255dc n/a (n/a + 0x0)
#48 0x002fffff8f3774f4 n/a (n/a + 0x0)
#49 0x0015ffff8f36be1c n/a (n/a + 0x0)
#50 0x0049ffff8f377d08 n/a (n/a + 0x0)
#51 0x0075ffff8f35e27c n/a (n/a + 0x0)
#52 0x003effff8f3774f4 n/a (n/a + 0x0)
#53 0x0074ffff8f36be1c n/a (n/a + 0x0)
#54 0x0016ffff8f377d08 n/a (n/a + 0x0)
#55 0x0016ffff8f35e27c n/a (n/a + 0x0)
#56 0x0000ffff8f3774f4 vips_region_generate (libvips.so.42 + 0x1e74f4)
#57 0x0000ffff8f3774a4 vips_buffer_dump_all (libvips.so.42 + 0x1e74a4)
#58 0x0000ffff8f3774a4 vips_buffer_dump_all (libvips.so.42 + 0x1e74a4)
#59 0x0000ffff8f3774a4 vips_buffer_dump_all (libvips.so.42 + 0x1e74a4)
#60 0x0000ffff8f3774a4 vips_buffer_dump_all (libvips.so.42 + 0x1e74a4)
#61 0x0000ffff8f3774a4 vips_buffer_dump_all (libvips.so.42 + 0x1e74a4)
#62 0x0000ffff8f3774a4 vips_buffer_dump_all (libvips.so.42 + 0x1e74a4)
#63 0x0000ffff8f3774a4 vips_buffer_dump_all (libvips.so.42 + 0x1e74a4)
Stack trace of thread 22436:
#0 0x0000ffffa473290c __GI___futex_abstimed_wait_cancelable64 (libc.so.6 + 0x9290c)
#1 0x0056ffffa4735ca0 n/a (n/a + 0x0)
#2 0x0056ffffa4735ca0 n/a (n/a + 0x0)
#3 0x0002ffffa4ce219c n/a (n/a + 0x0)
#4 0x004affffa4ce2370 n/a (n/a + 0x0)
#5 0x0045ffffa4ce582c n/a (n/a + 0x0)
#6 0x007dffffa4c3816c n/a (n/a + 0x0)
#7 0x0049ffffa4d1e880 n/a (n/a + 0x0)
#8 0x004affffa4d2e45c n/a (n/a + 0x0)
#9 0x002bffffa4d33da8 n/a (n/a + 0x0)
#10 0x0020ffffa4ce7214 n/a (n/a + 0x0)
#11 0x005affffa4ce7eb4 n/a (n/a + 0x0)
#12 0x005cffffa4ce82b8 n/a (n/a + 0x0)
#13 0x004fffffa47367d8 n/a (n/a + 0x0)
#14 0x0013ffffa47a1b8c n/a (n/a + 0x0)
ELF object binary architecture: AARCH64