Skip to content

JPG-related (?) core-dumps/process kills happening #4447

@tim-kos

Description

@tim-kos

Possible bug

Is this a possible bug in a feature of sharp, unrelated to installation?

  • x ] Running npm install sharp completes without error.
  • Running node -e "require('sharp')" completes without error.

If you cannot confirm both of these, please open an installation issue instead.

Are you using the latest version of sharp?

  • I am using the latest version of sharp as reported by npm view sharp dist-tags.latest.

If you cannot confirm this, please upgrade to the latest version and try again before opening an issue.

If you are using another package which depends on a version of sharp that is not the latest, please open an issue against that package instead.

What is the output of running npx envinfo --binaries --system --npmPackages=sharp --npmGlobalPackages=sharp?

ubuntu at sd330up@us-east-1-aws in /srv/current/api2 on api2/drone#17270123749
$ npx envinfo --binaries --system --npmPackages=sharp --npmGlobalPackages=sharp
npm warn exec The following package was not found and will be installed: envinfo@7.14.0

  System:
    OS: Linux 6.14 Ubuntu 24.04.3 LTS 24.04.3 LTS (Noble Numbat)
    CPU: (48) arm64 unknown
    Memory: 64.64 GB / 92.59 GB
    Container: Yes
    Shell: 5.2.21 - /bin/bash
  Binaries:
    Node: 24.6.0 - /srv/recent/17270123749/api2/software/bin/node
    npm: 11.5.1 - /srv/recent/17270123749/core/bin/npm
  npmPackages:
    sharp: ^0.34.3 => 0.34.3

Does this problem relate to file caching?

The default behaviour of libvips is to cache input files, which can lead to EBUSY or EPERM errors on Windows.
Use sharp.cache(false) to switch this feature off.

  • Adding sharp.cache(false) does not fix this problem.

Does this problem relate to images appearing to have been rotated by 90 degrees?

Images that contain EXIF Orientation metadata are not auto-oriented. By default, EXIF metadata is removed.

  • To auto-orient pixel values use the parameter-less rotate() operation.

  • To retain EXIF Orientation use keepExif().

  • Using rotate() or keepExif() does not fix this problem.

What are the steps to reproduce?

Some customer images that I was not able to intercept and download yet cause core-dumps.

Aug 27 20:35:22 sd330up.mydomain.com systemd[1]: Failed to start apport-coredump-hook@4-140057-0.service.
Aug 27 20:35:22 sd330up.mydomain.com systemd[1]: apport-coredump-hook@4-140057-0.service: Failed with result 'exit-code'.
Aug 27 20:35:22 sd330up.mydomain.com systemd[1]: apport-coredump-hook@4-140057-0.service: Main process exited, code=exited, status=1/FAILURE
Aug 27 20:35:22 sd330up.mydomain.com CRON[126825]: pam_unix(cron:session): session closed for user ubuntu
Aug 27 20:35:22 sd330up.mydomain.com sudo[140971]: pam_unix(sudo:session): session closed for user transloadit-api2
Aug 27 20:35:22 sd330up.mydomain.com systemd[1]: image-resizer6.service: Consumed 21.308s CPU time, 777.4M memory peak, 0B memory swap peak.
Aug 27 20:35:22 sd330up.mydomain.com systemd[1]: image-resizer6.service: Failed with result 'core-dump'.
Aug 27 20:35:22 sd330up.mydomain.com systemd[1]: image-resizer6.service: Main process exited, code=dumped, status=7/BUS

Here is the dumped core:

Process 8780 (MainThread) of user 1001 dumped core.

                                                                  Module libpoppler-glib.so.8.29.0 without build-id.
                                                                  Module libpoppler.so.149.0.0 without build-id.
                                                                  Module libsmime3.so without build-id.
                                                                  Module libnss3.so without build-id.
                                                                  Module libplc4.so without build-id.
                                                                  Module libnspr4.so without build-id.
                                                                  Module libnssutil3.so without build-id.
                                                                  Module libplds4.so without build-id.
                                                                  Module vips-poppler.so without build-id.
                                                                  Module vips-heif.so without build-id.
                                                                  Module vips-jxl.so without build-id.
                                                                  Module libopenslide.so.1.0.0 without build-id.
                                                                  Module libdicom.so.1.0.0 without build-id.
                                                                  Module vips-openslide.so without build-id.
                                                                  Module libMagickCore-7.Q16HDRI.so.10.0.2 without build-id.
                                                                  Module libraqm.so.0.10.2 without build-id.
                                                                  Module libjxl.so.0.11.1 without build-id.
                                                                  Module libjxl_threads.so.0.11.1 without build-id.
                                                                  Module liblqr-1.so.0.3.2 without build-id.
                                                                  Module libdjvulibre.so.21.7.0 without build-id.
                                                                  Module libheif.so.1.19.8 without build-id.
                                                                  Module libXt.so.6.0.0 without build-id.
                                                                  Module libSM.so.6.0.1 without build-id.
                                                                  Module libICE.so.6.3.0 without build-id.
                                                                  Module libOpenEXRUtil-3_2.so.31.3.2.4 without build-id.
                                                                  Module libraw_r.so.23.0.0 without build-id.
                                                                  Module libgomp.so.1.0.0 without build-id.
                                                                  Module libjxl_cms.so.0.11.1 without build-id.
                                                                  Module libbrotlienc.so.1.1.0 without build-id.
                                                                  Module libx265.so.215 without build-id.
                                                                  Module libde265.so without build-id.
                                                                  Module libaom.so.3.11.0 without build-id.
                                                                  Module libnuma.so.1.0.0 without build-id.
                                                                  Module libvmaf.so.3.0.0 without build-id.
                                                                  Module libatomic.so.1.2.0 without build-id.
                                                                  Module vips-magick.so without build-id.
                                                                  Module libexpat.so.1.10.2 without build-id.
                                                                  Module libarchive.so.13.8.0 without build-id.
                                                                  Module libfftw3.so.3.6.10 without build-id.
                                                                  Module libcfitsio.so.10.4.4.1 without build-id.
                                                                  Module libimagequant.so.0.4.0 without build-id.
                                                                  Module libcgif.so.0.5.0 without build-id.
                                                                  Module libexif.so.12.3.4 without build-id.
                                                                  Module libjpeg.so.62.4.0 without build-id.
                                                                  Module libspng.so.0.7.4 without build-id.
                                                                  Module libwebp.so.7.1.10 without build-id.
                                                                  Module libwebpmux.so.3.1.1 without build-id.
                                                                  Module libwebpdemux.so.2.0.16 without build-id.
                                                                  Module libpangocairo-1.0.so.0.5600.3 without build-id.
                                                                  Module libpango-1.0.so.0.5600.3 without build-id.
                                                                  Module libpangoft2-1.0.so.0.5600.3 without build-id.
                                                                  Module libfontconfig.so.1.15.0 without build-id.
                                                                  Module libtiff.so.6.1.0 without build-id.
                                                                  Module librsvg-2.so.2.60.0 without build-id.
                                                                  Module libmatio.so.13.0.1 without build-id.
                                                                  Module liblcms2.so.2.0.17 without build-id.
                                                                  Module libOpenEXR-3_2.so.31.3.2.4 without build-id.
                                                                  Module libopenjp2.so.2.5.2 without build-id.
                                                                  Module libacl.so.1.1.2302 without build-id.
                                                                  Module libzstd.so.1.5.7 without build-id.
                                                                  Module libbz2.so.1.0.8 without build-id.
                                                                  Module liblzma.so.5.8.1 without build-id.
                                                                  Module libxml2.so.2.13.8 without build-id.
                                                                  Module libsharpyuv.so.0.1.1 without build-id.
                                                                  Module libharfbuzz.so.0.61020.0 without build-id.
                                                                  Module libfribidi.so.0.4.0 without build-id.
                                                                  Module libthai.so.0.3.1 without build-id.
                                                                  Module libpng16.so.16.46.0 without build-id.
                                                                  Module libfreetype.so.6.20.2 without build-id.
                                                                  Module libX11.so.6.4.0 without build-id.
                                                                  Module libXext.so.6.4.0 without build-id.
                                                                  Module libXrender.so.1.3.0 without build-id.
                                                                  Module libxcb.so.1.1.0 without build-id.
                                                                  Module libxcb-render.so.0.0.0 without build-id.
                                                                  Module libxcb-shm.so.0.0.0 without build-id.
                                                                  Module libbrotlidec.so.1.1.0 without build-id.
                                                                  Module libdeflate.so.0 without build-id.
                                                                  Module libLerc.so.4 without build-id.
                                                                  Module libdav1d.so.7.0.0 without build-id.
                                                                  Module libhdf5.so.310.5.1 without build-id.
                                                                  Module libIlmThread-3_2.so.31.3.2.4 without build-id.
                                                                  Module libOpenEXRCore-3_2.so.31.3.2.4 without build-id.
                                                                  Module libIex-3_2.so.31.3.2.4 without build-id.
                                                                  Module libImath-3_1.so.29.11.0 without build-id.
                                                                  Module libattr.so.1.1.2502 without build-id.
                                                                  Module libnghttp2.so.14.28.4 without build-id.
                                                                  Module libidn2.so.0.4.0 without build-id.
                                                                  Module libssh2.so.1.0.1 without build-id.
                                                                  Module libpsl.so.5.3.5 without build-id.
                                                                  Module libgssapi_krb5.so.2.2 without build-id.
                                                                  Module libgraphite2.so.3.2.1 without build-id.
                                                                  Module libdatrie.so.1.3.5 without build-id.
                                                                  Module libXau.so.6.0.0 without build-id.
                                                                  Module libXdmcp.so.6.0.0 without build-id.
                                                                  Module libbrotlicommon.so.1.1.0 without build-id.
                                                                  Module libunistring.so.5.2.0 without build-id.
                                                                  Module libkrb5.so.3.3 without build-id.
                                                                  Module libk5crypto.so.3.1 without build-id.
                                                                  Module libcom_err.so.3.0 without build-id.
                                                                  Module libkrb5support.so.0.1 without build-id.
                                                                  Module libkeyutils.so.1.10 without build-id.
                                                                  Module libvips-cpp.so.42.19.1 without build-id.
                                                                  Module libvips.so.42.19.1 without build-id.
                                                                  Module libstdc++.so.6.0.33 without build-id.
                                                                  Module libgcc_s.so.1 without build-id.
                                                                  Module libpcre2-8.so.0.13.0 without build-id.
                                                                  Module libffi.so.8.1.4 without build-id.
                                                                  Module libz.so.1.3.1 without build-id.
                                                                  Module libselinux.so.1 without build-id.
                                                                  Module sharp-linux-arm64.node without build-id.
                                                                  Module libicudata.so.76 without build-id.

And here is the main thread stack trace:

Stack trace of thread 140054:
                                                                  #0  0x0000ea721ea1d1c8 jpeg_fill_bit_buffer (libjpeg.so.62.4.0 + 0x4d1c8)
                                                                  #1  0x0000ea721ea246c4 decode_mcu_AC_refine (libjpeg.so.62.4.0 + 0x546c4)
                                                                  #2  0x0000ea721e9eb3bc consume_data (libjpeg.so.62.4.0 + 0x1b3bc)
                                                                  #3  0x0000ea721e9de328 jpeg_start_decompress (libjpeg.so.62.4.0 + 0xe328)
                                                                  #4  0x0000ea7222064590 read_jpeg_image (libvips.so.42.19.1 + 0x74590)
                                                                  #5  0x0000ea72220647b4 vips__jpeg_read_source (libvips.so.42.19.1 + 0x747b4)
                                                                  #6  0x0000ea7222064c4c vips_foreign_load_jpeg_load (libvips.so.42.19.1 + 0x74c4c)
                                                                  #7  0x0000ea7222059a40 vips_foreign_load_start (libvips.so.42.19.1 + 0x69a40)
                                                                  #8  0x0000ea7222192fa4 vips__region_start (libvips.so.42.19.1 + 0x1a2fa4)
                                                                  #9  0x0000ea7222193030 vips_region_generate (libvips.so.42.19.1 + 0x1a3030)
                                                                  #10 0x0000ea7222193d28 vips_region_fill (libvips.so.42.19.1 + 0x1a3d28)
                                                                  #11 0x0000ea7222197a74 vips_region_prepare (libvips.so.42.19.1 + 0x1a7a74)
                                                                  #12 0x0000ea722212c7f8 vips_copy_gen (libvips.so.42.19.1 + 0x13c7f8)
                                                                  #13 0x0000ea7222193050 vips_region_generate (libvips.so.42.19.1 + 0x1a3050)
                                                                  #14 0x0000ea7222193d28 vips_region_fill (libvips.so.42.19.1 + 0x1a3d28)
                                                                  #15 0x0000ea7222197a74 vips_region_prepare (libvips.so.42.19.1 + 0x1a7a74)
                                                                  #16 0x0000ea722212c7f8 vips_copy_gen (libvips.so.42.19.1 + 0x13c7f8)
                                                                  #17 0x0000ea7222193050 vips_region_generate (libvips.so.42.19.1 + 0x1a3050)
                                                                  #18 0x0000ea722219434c vips_region_prepare_to_generate (libvips.so.42.19.1 + 0x1a434c)
                                                                  #19 0x0000ea7222197c78 vips_region_prepare_to (libvips.so.42.19.1 + 0x1a7c78)
                                                                  #20 0x0000ea722212d968 vips_embed_base_gen (libvips.so.42.19.1 + 0x13d968)
                                                                  #21 0x0000ea7222193050 vips_region_generate (libvips.so.42.19.1 + 0x1a3050)
                                                                  #22 0x0000ea7222193d28 vips_region_fill (libvips.so.42.19.1 + 0x1a3d28)
                                                                  #23 0x0000ea7222197a74 vips_region_prepare (libvips.so.42.19.1 + 0x1a7a74)
                                                                  #24 0x0000ea72220fa784 _ZL29vips_reducev_uchar_vector_genP11_VipsRegionPvS1_S1_Pi (libvips.so.42.19.1 + 0x10a784)
                                                                  #25 0x0000ea7222193050 vips_region_generate (libvips.so.42.19.1 + 0x1a3050)
                                                                  #26 0x0000ea722219434c vips_region_prepare_to_generate (libvips.so.42.19.1 + 0x1a434c)
                                                                  #27 0x0000ea7222197c78 vips_region_prepare_to (libvips.so.42.19.1 + 0x1a7c78)
                                                                  #28 0x0000ea72221264a0 vips_tile_cache_gen (libvips.so.42.19.1 + 0x1364a0)
                                                                  #29 0x0000ea7222193050 vips_region_generate (libvips.so.42.19.1 + 0x1a3050)
                                                                  #30 0x0000ea7222193d28 vips_region_fill (libvips.so.42.19.1 + 0x1a3d28)
                                                                  #31 0x0000ea7222197a74 vips_region_prepare (libvips.so.42.19.1 + 0x1a7a74)
                                                                  #32 0x0000ea7222127540 vips_sequential_generate (libvips.so.42.19.1 + 0x137540)
                                                                  #33 0x0000ea7222193050 vips_region_generate (libvips.so.42.19.1 + 0x1a3050)
                                                                  #34 0x0000ea7222193d28 vips_region_fill (libvips.so.42.19.1 + 0x1a3d28)
                                                                  #35 0x0000ea7222197a74 vips_region_prepare (libvips.so.42.19.1 + 0x1a7a74)
                                                                  #36 0x0000ea7222182a48 vips_image_write_gen (libvips.so.42.19.1 + 0x192a48)
                                                                  #37 0x0000ea7222193050 vips_region_generate (libvips.so.42.19.1 + 0x1a3050)
                                                                  #38 0x0000ea7222193d28 vips_region_fill (libvips.so.42.19.1 + 0x1a3d28)
                                                                  #39 0x0000ea7222197a74 vips_region_prepare (libvips.so.42.19.1 + 0x1a7a74)
                                                                  #40 0x0000ea722212c7f8 vips_copy_gen (libvips.so.42.19.1 + 0x13c7f8)
                                                                  #41 0x0000ea7222193050 vips_region_generate (libvips.so.42.19.1 + 0x1a3050)
                                                                  #42 0x0000ea722219434c vips_region_prepare_to_generate (libvips.so.42.19.1 + 0x1a434c)
                                                                  #43 0x0000ea7222197c78 vips_region_prepare_to (libvips.so.42.19.1 + 0x1a7c78)
                                                                  #44 0x0000ea722212d968 vips_embed_base_gen (libvips.so.42.19.1 + 0x13d968)
                                                                  #45 0x0000ea7222193050 vips_region_generate (libvips.so.42.19.1 + 0x1a3050)
                                                                  #46 0x0000ea7222193d28 vips_region_fill (libvips.so.42.19.1 + 0x1a3d28)
                                                                  #47 0x0000ea7222197a74 vips_region_prepare (libvips.so.42.19.1 + 0x1a7a74)
                                                                  #48 0x0000ea72220f7378 _ZL29vips_reduceh_uchar_vector_genP11_VipsRegionPvS1_S1_Pi (libvips.so.42.19.1 + 0x107378)
                                                                  #49 0x0000ea7222193050 vips_region_generate (libvips.so.42.19.1 + 0x1a3050)
                                                                  #50 0x0000ea7222193d28 vips_region_fill (libvips.so.42.19.1 + 0x1a3d28)
                                                                  #51 0x0000ea7222197a74 vips_region_prepare (libvips.so.42.19.1 + 0x1a7a74)
                                                                  #52 0x0000ea7222182a48 vips_image_write_gen (libvips.so.42.19.1 + 0x192a48)

What is the expected behaviour?

No core dumps

Please provide a minimal, standalone code sample, without other dependencies, that demonstrates this problem

I can't yet I am afraid. Mainly looking for some pointers only at the moment what it might. I am only passing input image paths in, no stream reading or pipelining to various destinations. Somehow memory/buffers get corrupted. The code is fairly straightforward, though.

Please provide sample image(s) that help explain this problem

Trying to intercept them when it happens. My apologies about this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions