GIMP crash at closure on systems with GLib 2.80.0 (and 2.79.x)

Bug #2055044 reported by Xavier Besnard
714
This bug affects 91 people
Affects Status Importance Assigned to Milestone
The Gimp
Fix Released
Unknown
gimp (Ubuntu)
Status tracked in Oracular
Noble
Fix Committed
High
Aaron Rainbolt
Oracular
Fix Committed
High
Aaron Rainbolt

Bug Description

[ Impact ]

GIMP is crashing when closed on Ubuntu 24.04 only. This seems to happen if an unsaved image is present, popping up the dialog asking if you want to save your changes. If you click "Discard", GIMP crashes. This isn't too critical for data safety, but it is a serious papercut and can result in data loss in certain edge cases according to the upstream bug report in GIMP.

There is already a one-line patch available that solves the problem: https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/1442/diffs?commit_id=d7228727d7a4b11909001cf8fd8977d68bd29720 This has been merged upstream.

[ Test Plan ]

1. Install GIMP on Ubuntu 24.04.
2. Create a blank image and draw a black squiggly line in it.
3. Export it as a PNG.
4. Close GIMP, and click "Discard" when prompted if you want to save your changes.
5. Observe crash.
6. Install a patched GIMP that has the previously linked patch applied.
7. Repeat steps 1-4 and ensure that GIMP does not crash and that the image is saved properly.

[ Where problems could occur ]

The patch changes the behavior of signal handlers, meaning that a difference between upstream GIMP and Ubuntu's GIMP could potentially result in the patch being incompatible and causing similar or worse crashing issues. The above test plan will likely catch such issues.

----------

Original bug report:

Hello.

I report a bug or supposed to be a bug concerning GIMP. I had worked with GIMP without pb.

When closing the GIMP session, I got a crash (Refer to reported info below).

My configuration is Kubuntu 24.04 (Dev) Noble updated daily.

I remain available to provide further information.
Thanks to you for your support. Regards. Xavier

<!-- Copy-paste this whole debug data to report to developers -->

```
GNU Image Manipulation Program version 2.10.36
git-describe: GIMP_2_10_36
Build: unknown rev 0 for linux
# C compiler #
 Using built-in specs.
 COLLECT_GCC=gcc
 COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper
 OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
 OFFLOAD_TARGET_DEFAULT=1
 Target: x86_64-linux-gnu
 Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.2.0-7ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-p2aSDx/gcc-13-13.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-p2aSDx/gcc-13-13.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
 Thread model: posix
 Supported LTO compression algorithms: zlib zstd
 gcc version 13.2.0 (Ubuntu 13.2.0-7ubuntu1)

# Libraries #
using babl version 0.1.108 (compiled against version 0.1.106)
using GEGL version 0.4.48 (compiled against version 0.4.44)
using GLib version 2.79.1 (compiled against version 2.78.1)
using GdkPixbuf version 2.42.10 (compiled against version 2.42.10)
using GTK+ version 2.24.33 (compiled against version 2.24.33)
using Pango version 1.51.0 (compiled against version 1.51.0)
using Fontconfig version 2.14.2 (compiled against version 2.14.2)
using Cairo version 1.18.0 (compiled against version 1.18.0)

```
> fatal error: Erreur de segmentation

Stack trace:
```

# Stack traces obtained from PID 23798 - Thread 23798 #

This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.ubuntu.com>
Enable debuginfod for this session? (y or [n]) [answered N; input not from terminal]
Debuginfod has been disabled.
To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
[New LWP 24048]
[New LWP 23812]
[New LWP 23807]
[New LWP 23806]
[New LWP 23805]
[New LWP 23801]
[New LWP 23800]
[New LWP 23799]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007f43ec8a9c53 in malloc_consolidate (av=av@entry=0x7f43eca03ac0 <main_arena>) at ./malloc/malloc.c:4850
  Id Target Id Frame
* 1 Thread 0x7f43ebef83c0 (LWP 23798) "gimp-2.10" 0x00007f43ec8a9c53 in malloc_consolidate (av=av@entry=0x7f43eca03ac0 <main_arena>) at ./malloc/malloc.c:4850
  2 Thread 0x7f43a59fc6c0 (LWP 24048) "swap writer" syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
  3 Thread 0x7f43ad41e6c0 (LWP 23812) "async" syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
  4 Thread 0x7f43e885b6c0 (LWP 23807) "gdbus" 0x00007f43ec91b4bd in __GI___poll (fds=0x7f4390001510, nfds=4, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
  5 Thread 0x7f43e141f6c0 (LWP 23806) "gmain" 0x00007f43ec91b4bd in __GI___poll (fds=0x55b137b3c890, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
  6 Thread 0x7f43e0c1e6c0 (LWP 23805) "pool-spawner" syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
  7 Thread 0x7f43e3fff6c0 (LWP 23801) "worker" syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
  8 Thread 0x7f43ea86a6c0 (LWP 23800) "worker" syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
  9 Thread 0x7f43eb06b6c0 (LWP 23799) "worker" syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38

Thread 9 (Thread 0x7f43eb06b6c0 (LWP 23799) "worker"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
No locals.
#1 0x00007f43ecc1ddcd in g_cond_wait () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2 0x00007f43ed154083 in ?? () from /lib/x86_64-linux-gnu/libgegl-0.4.so.0
No symbol table info available.
#3 0x00007f43ecbf3852 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#4 0x00007f43ec89ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139929682622144, -7265645094044597296, 139929682622144, -1144, 0, 140724625590768, -7265645094099123248, -7265659324396764208}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#5 0x00007f43ec929c2c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
No locals.

Thread 8 (Thread 0x7f43ea86a6c0 (LWP 23800) "worker"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
No locals.
#1 0x00007f43ecc1ddcd in g_cond_wait () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2 0x00007f43ed154083 in ?? () from /lib/x86_64-linux-gnu/libgegl-0.4.so.0
No symbol table info available.
#3 0x00007f43ecbf3852 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#4 0x00007f43ec89ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139929674229440, -7265646193019354160, 139929674229440, -1144, 0, 140724625590768, -7265646193073880112, -7265659324396764208}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#5 0x00007f43ec929c2c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
No locals.

Thread 7 (Thread 0x7f43e3fff6c0 (LWP 23801) "worker"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
No locals.
#1 0x00007f43ecc1ddcd in g_cond_wait () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2 0x00007f43ed154083 in ?? () from /lib/x86_64-linux-gnu/libgegl-0.4.so.0
No symbol table info available.
#3 0x00007f43ecbf3852 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#4 0x00007f43ec89ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139929564739264, -7265661094945258544, 139929564739264, -1144, 0, 140724625590768, -7265661094999784496, -7265659324396764208}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#5 0x00007f43ec929c2c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
No locals.

Thread 6 (Thread 0x7f43e0c1e6c0 (LWP 23805) "pool-spawner"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
No locals.
#1 0x00007f43ecc1ddcd in g_cond_wait () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2 0x00007f43ecb8f4cb in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3 0x00007f43ecbf6c13 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#4 0x00007f43ecbf3852 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#5 0x00007f43ec89ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139929510340288, -7265667639938546736, 139929510340288, -1144, 11, 140724625590784, -7265667639993072688, -7265659324396764208}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#6 0x00007f43ec929c2c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
No locals.

Thread 5 (Thread 0x7f43e141f6c0 (LWP 23806) "gmain"):
#0 0x00007f43ec91b4bd in __GI___poll (fds=0x55b137b3c890, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        sc_ret = -516
        sc_cancel_oldtype = 0
        sc_ret = <optimized out>
#1 0x00007f43ecc2419e in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2 0x00007f43ecbc4663 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3 0x00007f43ecbc46b9 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#4 0x00007f43ecbf3852 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#5 0x00007f43ec89ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139929518732992, -7265666540963789872, 139929518732992, -1144, 11, 140724625590576, -7265666541018315824, -7265659324396764208}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#6 0x00007f43ec929c2c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
No locals.

Thread 4 (Thread 0x7f43e885b6c0 (LWP 23807) "gdbus"):
#0 0x00007f43ec91b4bd in __GI___poll (fds=0x7f4390001510, nfds=4, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        sc_ret = -516
        sc_cancel_oldtype = 0
        sc_ret = <optimized out>
#1 0x00007f43ecc2419e in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2 0x00007f43ecbc5b87 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3 0x00007f43ece684b2 in ?? () from /lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#4 0x00007f43ecbf3852 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#5 0x00007f43ec89ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139929640613568, -7265650565832932400, 139929640613568, -1144, 11, 140724625590928, -7265650565887458352, -7265659324396764208}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#6 0x00007f43ec929c2c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
No locals.

Thread 3 (Thread 0x7f43ad41e6c0 (LWP 23812) "async"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
No locals.
#1 0x00007f43ecc1ddcd in g_cond_wait () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2 0x000055b136b44706 in ?? ()
No symbol table info available.
#3 0x00007f43ecbf3852 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#4 0x00007f43ec89ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139928646313664, -7265517006845541424, 139928646313664, -1144, 0, 140724625590944, -7265517006900067376, -7265659324396764208}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#5 0x00007f43ec929c2c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
No locals.

Thread 2 (Thread 0x7f43a59fc6c0 (LWP 24048) "swap writer"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
No locals.
#1 0x00007f43ecc1ddcd in g_cond_wait () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2 0x00007f43ed195a25 in ?? () from /lib/x86_64-linux-gnu/libgegl-0.4.so.0
No symbol table info available.
#3 0x00007f43ecbf3852 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#4 0x00007f43ec89ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139928518248128, -7265533829158698032, 139928518248128, -1144, 11, 140724625580144, -7265533829213223984, -7265659324396764208}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#5 0x00007f43ec929c2c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
No locals.

Thread 1 (Thread 0x7f43ebef83c0 (LWP 23798) "gimp-2.10"):
#0 0x00007f43ec8a9c53 in malloc_consolidate (av=av@entry=0x7f43eca03ac0 <main_arena>) at ./malloc/malloc.c:4850
        idx = 0
        fb = 0x7f43eca03ad0 <main_arena+16>
        maxfb = 0x7f43eca03b18 <main_arena+88>
        p = 0x55b13c152410
        nextp = <optimized out>
        unsorted_bin = 0x7f43eca03b20 <main_arena+96>
        first_unsorted = <optimized out>
        nextchunk = <optimized out>
        size = <optimized out>
        nextsize = <optimized out>
        prevsize = <optimized out>
        nextinuse = <optimized out>
#1 0x00007f43ec8aba80 in _int_malloc (av=av@entry=0x7f43eca03ac0 <main_arena>, bytes=bytes@entry=4096) at ./malloc/malloc.c:4041
        nb = <optimized out>
        idx = 99
        bin = <optimized out>
        victim = <optimized out>
        size = <optimized out>
        victim_index = <optimized out>
        remainder = <optimized out>
        remainder_size = <optimized out>
        block = <optimized out>
        bit = <optimized out>
        map = <optimized out>
        fwd = <optimized out>
        bck = <optimized out>
        tcache_unsorted_count = <optimized out>
        tcache_nb = <optimized out>
        tc_idx = <optimized out>
        return_cached = <optimized out>
        __PRETTY_FUNCTION__ = "_int_malloc"
#2 0x00007f43ec8ad6e4 in __GI___libc_malloc (bytes=bytes@entry=4096) at ./malloc/malloc.c:3336
        ar_ptr = 0x7f43eca03ac0 <main_arena>
        victim = <optimized out>
        tbytes = <optimized out>
        tc_idx = <optimized out>
        __PRETTY_FUNCTION__ = "__libc_malloc"
#3 0x00007f43ec8851a5 in __GI__IO_file_doallocate (fp=0x55b13973a170) at ./libio/filedoalloc.c:101
        size = 4096
        p = <optimized out>
        st = {st_dev = 2052, st_ino = 1838266, st_nlink = 1, st_mode = 33204, st_uid = 1000, st_gid = 1000, __pad0 = 0, st_rdev = 0, st_size = 0, st_blksize = 4096, st_blocks = 0, st_atim = {tv_sec = 1708946534, tv_nsec = 471388647}, st_mtim = {tv_sec = 1708946534, tv_nsec = 471388647}, st_ctim = {tv_sec = 1708946534, tv_nsec = 471388647}, __glibc_reserved = {0, 0, 0}}
#4 0x00007f43ec895514 in __GI__IO_doallocbuf (fp=fp@entry=0x55b13973a170) at ./libio/libioP.h:1030
No locals.
#5 0x00007f43ec892f80 in _IO_new_file_overflow (f=0x55b13973a170, ch=-1) at ./libio/fileops.c:745
No locals.
#6 0x00007f43ec893a9f in _IO_new_file_xsputn (n=58, data=<optimized out>, f=<optimized out>) at ./libio/libioP.h:1030
        block_size = <optimized out>
        do_write = <optimized out>
        s = <optimized out>
        to_do = <optimized out>
        must_flush = <optimized out>
        count = <optimized out>
        s = <optimized out>
        to_do = <optimized out>
        must_flush = <optimized out>
        count = <optimized out>
        p = <optimized out>
        block_size = <optimized out>
        do_write = <optimized out>
#7 _IO_new_file_xsputn (f=0x55b13973a170, data=<optimized out>, n=58) at ./libio/fileops.c:1197
        s = <optimized out>
        to_do = 58
        must_flush = 0
        count = 0
        p = <optimized out>
        block_size = <optimized out>
        do_write = <optimized out>
#8 0x00007f43ec860cb9 in __printf_buffer_flush_to_file (buf=0x7ffd0151a020) at ../libio/libioP.h:1030
        count = 58
        __PRETTY_FUNCTION__ = "__printf_buffer_flush_to_file"
        count = <optimized out>
#9 __printf_buffer_to_file_done (buf=buf@entry=0x7ffd0151a020) at ./stdio-common/printf_buffer_to_file.c:120
No locals.
#10 0x00007f43ec86b59a in __vfprintf_internal (s=0x55b13973a170, format=0x7f43edb05ec0 "\n# Stack traces obtained from PID %d - Thread %lu #\n\n", ap=0x7ffd0151a120, mode_flags=2) at ./stdio-common/vfprintf-internal.c:1560
        _cleanup_start_doit = <optimized out>
        _buffer = {__routine = 0x7f43ec85f720 <__funlockfile>, __arg = 0x55b13973a170, __canceltype = 0, __prev = 0x0}
        _cleanup_routine = <optimized out>
        wrap = {base = {write_base = 0x7ffd0151a050 "\n# Stack traces obtained from PID 23798 - Thread 23798 #\n\n", write_ptr = 0x7ffd0151a08a "", write_end = 0x7ffd0151a0d0 "\210\373\377\377\377\377\377\377", written = 58, mode = __printf_buffer_mode_to_file}, fp = 0x55b13973a170, stage = "\n# Stack traces obtained from PID 23798 - Thread 23798 #\n\n\000\000\000\000\000\000\340\240Q\001\375\177\000\000o\342\220\354C\177\000\000\001\020\000\000\000\000\000\000\005\000\000\000\001", '\000' <se r\377\377\377\377\377\377\377\377p\377\377\377\377\377\377\377\377te 11 fois>, "\005\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\266c\000\000\000\000\000"}
        done = <optimized out>
        __result = <optimized out>
#11 0x00007f43ecc1831a in g_fprintf () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#12 0x00007f43edaf9c50 in gimp_stack_trace_print () from /lib/x86_64-linux-gnu/libgimpbase-2.0.so.0
No symbol table info available.
#13 0x000055b136885aeb in ?? ()
No symbol table info available.
#14 0x000055b136885e8e in gimp_fatal_error ()
No symbol table info available.
#15 0x000055b136885eed in ?? ()
No symbol table info available.
#16 <signal handler called>
No locals.
#17 0x00007f43eccec678 in g_type_check_instance_is_a () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#18 0x000055b136a1e034 in gimp_message_box_set_primary_text ()
No symbol table info available.
#19 0x000055b1368d64e4 in ?? ()
No symbol table info available.
#20 0x00007f43eccc51fa in g_closure_invoke () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#21 0x00007f43eccf41fc in ?? () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#22 0x00007f43ecce4f31 in ?? () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#23 0x00007f43ecce5161 in g_signal_emit_valist () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#24 0x00007f43ecce5223 in g_signal_emit () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#25 0x000055b136b68f94 in gimp_container_remove ()
No symbol table info available.
#26 0x000055b136be5aa4 in ?? ()
No symbol table info available.
#27 0x000055b136b68b04 in gimp_container_clear ()
No symbol table info available.
#28 0x000055b136b69d3d in ?? ()
No symbol table info available.
#29 0x00007f43eccd3e4f in g_object_unref () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#30 0x000055b1368d45b6 in ?? ()
No symbol table info available.
#31 0x00007f43ecccef77 in ?? () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#32 0x00007f43ecba3c42 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#33 0x00007f43eccd0adb in ?? () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#34 0x00007f43eccd40a6 in g_object_run_dispose () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#35 0x000055b1368d5f96 in ?? ()
No symbol table info available.
#36 0x00007f43eccc51fa in g_closure_invoke () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#37 0x00007f43eccf41fc in ?? () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#38 0x00007f43ecce4f31 in ?? () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#39 0x00007f43ecce5161 in g_signal_emit_valist () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#40 0x00007f43ecce5223 in g_signal_emit () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#41 0x00007f43eccc51fa in g_closure_invoke () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#42 0x00007f43eccf41fc in ?? () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#43 0x00007f43ecce4f31 in ?? () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#44 0x00007f43ecce5161 in g_signal_emit_valist () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#45 0x00007f43ecce5223 in g_signal_emit () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#46 0x00007f43ed6989c6 in ?? () from /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
No symbol table info available.
#47 0x00007f43eccc51fa in g_closure_invoke () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#48 0x00007f43eccf4340 in ?? () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#49 0x00007f43ecce4f31 in ?? () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#50 0x00007f43ecce5161 in g_signal_emit_valist () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#51 0x00007f43ecce5223 in g_signal_emit () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#52 0x00007f43ed6991d9 in ?? () from /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
No symbol table info available.
#53 0x00007f43ed7434d7 in ?? () from /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
No symbol table info available.
#54 0x00007f43eccc51fa in g_closure_invoke () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#55 0x00007f43eccf4888 in ?? () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#56 0x00007f43ecce4892 in ?? () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#57 0x00007f43ecce5161 in g_signal_emit_valist () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#58 0x00007f43ecce5223 in g_signal_emit () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#59 0x00007f43ed86f024 in ?? () from /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
No symbol table info available.
#60 0x00007f43ed741094 in gtk_propagate_event () from /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
No symbol table info available.
#61 0x00007f43ed7426db in gtk_main_do_event () from /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
No symbol table info available.
#62 0x00007f43edbcb16b in ?? () from /lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
No symbol table info available.
#63 0x00007f43ecbc51c5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#64 0x00007f43ecc24247 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#65 0x00007f43ecbc5b87 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#66 0x000055b13688a515 in app_run ()
No symbol table info available.
#67 0x000055b13688041f in main ()
No symbol table info available.
[Inferior 1 (process 23798) detached]

```

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in gimp (Ubuntu):
status: New → Confirmed
Revision history for this message
Michael Schumacher (schumaml) wrote :

This is issue https://gitlab.gnome.org/GNOME/gimp/-/issues/10785, a bug in GIMP triggered by a change in GLib 2.80.

It would be a good idea to provide an updated 2.10.36 package with the changes of https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/1444 applied.

Changed in gimp:
status: Unknown → Fix Released
Revision history for this message
Peter Freeth (peterfreeth) wrote :

The crash only occurs when closing GIMP with an open unsaved image and selecting 'Discard'. If all images are closed first, GIMP can be closed normally.

tags: added: noble
tags: added: fixed-in-gimp-2.10.38 fixed-upstream
summary: - GIMP crash at closure
+ GIMP crash at closure on systems with GLib 2.80.0 (and 2.79.x)
description: updated
Changed in gimp (Ubuntu):
status: Confirmed → Triaged
importance: Undecided → High
assignee: nobody → Aaron Rainbolt (arraybolt3)
Changed in gimp (Ubuntu Noble):
status: New → Confirmed
status: Confirmed → Triaged
Changed in gimp (Ubuntu Oracular):
status: Triaged → New
Changed in gimp (Ubuntu Noble):
importance: Undecided → High
assignee: nobody → Aaron Rainbolt (arraybolt3)
Revision history for this message
Aaron Rainbolt (arraybolt3) wrote :

Looks like Jeremy Bicha has a new GIMP uploaded to Oracular which will fix this there. The fix will still need backported to Noble, which I intend on doing.

Changed in gimp (Ubuntu Oracular):
status: New → Triaged
status: Triaged → Fix Committed
Revision history for this message
Aaron Rainbolt (arraybolt3) wrote :

Fix verified on Noble. Will be uploading and submitting to the SRU team soon.

Changed in gimp (Ubuntu Noble):
status: Triaged → In Progress
Revision history for this message
Chris Halse Rogers (raof) wrote : Please test proposed package

Hello Xavier, or anyone else affected,

Accepted gimp into noble-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/gimp/2.10.36-3ubuntu0.24.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-noble to verification-done-noble. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-noble. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in gimp (Ubuntu Noble):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-noble
Revision history for this message
Ubuntu SRU Bot (ubuntu-sru-bot) wrote : Autopkgtest regression report (gimp/2.10.36-3ubuntu0.24.04.1)

All autopkgtests for the newly accepted gimp (2.10.36-3ubuntu0.24.04.1) for noble have finished running.
The following regressions have been reported in tests triggered by the package:

gimp-plugin-registry/unknown (s390x)

Please visit the excuses page listed below and investigate the failures, proceeding afterwards as per the StableReleaseUpdates policy regarding autopkgtest regressions [1].

https://people.canonical.com/~ubuntu-archive/proposed-migration/noble/update_excuses.html#gimp

[1] https://wiki.ubuntu.com/StableReleaseUpdates#Autopkgtest_Regressions

Thank you!

Revision history for this message
Aaron Rainbolt (arraybolt3) wrote :

The regression mentioned above appears to have been a glitch in the s390x autopkgtest infra. I requested a retry.

The test plan succeeded using the GIMP from noble-proposed - I can export an image as a PNG, then close GIMP and click "Discard" when prompted to save my changes and it closes cleanly.

tags: added: verification-done verification-done-noble
removed: verification-needed verification-needed-noble
Revision history for this message
wgroiss (wolfgang-groiss-gmx) wrote :

I have now gimp package 2.10.36-3build3

and i have done this 4 steps:

+ 1. Install GIMP on Ubuntu 24.04.
+ 2. Create a blank image and draw a black squiggly line in it.
+ 3. Export it as a PNG.
+ 4. Close GIMP, and click "Discard" when prompted if you want to save your changes.

Gimp does not crash anymore. It closes without failure. Thanks!

Revision history for this message
valery (orloff) wrote : Re: [Bug 2055044] Re: GIMP crash at closure on systems with GLib 2.80.0 (and 2.79.x)
Download full text (28.9 KiB)

Hi!
Just now I made a screencast:
https://drive.google.com/file/d/1PaonPodD_v27OCFeE5m6t7PO7OM1ial0/view?usp=drive_link

Operating System: Ubuntu Studio 24.04
KDE Plasma Version: 5.27.11
KDE Frameworks Version: 5.115.0
Qt Version: 5.15.13
Kernel Version: 6.8.0-31-lowlatency (64-bit)
Graphics Platform: X11

On Thu, May 9, 2024 at 6:15 PM wgroiss <email address hidden> wrote:

> I have now gimp package 2.10.36-3build3
>
> and i have done this 4 steps:
>
> + 1. Install GIMP on Ubuntu 24.04.
> + 2. Create a blank image and draw a black squiggly line in it.
> + 3. Export it as a PNG.
> + 4. Close GIMP, and click "Discard" when prompted if you want to save
> your changes.
>
> Gimp does not crash anymore. It closes without failure. Thanks!
>
> --
> You received this bug notification because you are subscribed to a
> duplicate bug report (2064962).
> https://bugs.launchpad.net/bugs/2055044
>
> Title:
> GIMP crash at closure on systems with GLib 2.80.0 (and 2.79.x)
>
> Status in The Gimp:
> Fix Released
> Status in gimp package in Ubuntu:
> Fix Committed
> Status in gimp source package in Noble:
> Fix Committed
> Status in gimp source package in Oracular:
> Fix Committed
>
> Bug description:
> [ Impact ]
>
> GIMP is crashing when closed on Ubuntu 24.04 only. This seems to
> happen if an unsaved image is present, popping up the dialog asking if
> you want to save your changes. If you click "Discard", GIMP crashes.
> This isn't too critical for data safety, but it is a serious papercut
> and can result in data loss in certain edge cases according to the
> upstream bug report in GIMP.
>
> There is already a one-line patch available that solves the problem:
>
> https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/1442/diffs?commit_id=d7228727d7a4b11909001cf8fd8977d68bd29720
> This has been merged upstream.
>
> [ Test Plan ]
>
> 1. Install GIMP on Ubuntu 24.04.
> 2. Create a blank image and draw a black squiggly line in it.
> 3. Export it as a PNG.
> 4. Close GIMP, and click "Discard" when prompted if you want to save
> your changes.
> 5. Observe crash.
> 6. Install a patched GIMP that has the previously linked patch applied.
> 7. Repeat steps 1-4 and ensure that GIMP does not crash and that the
> image is saved properly.
>
> [ Where problems could occur ]
>
> The patch changes the behavior of signal handlers, meaning that a
> difference between upstream GIMP and Ubuntu's GIMP could potentially
> result in the patch being incompatible and causing similar or worse
> crashing issues. The above test plan will likely catch such issues.
>
> ----------
>
> Original bug report:
>
> Hello.
>
> I report a bug or supposed to be a bug concerning GIMP. I had worked
> with GIMP without pb.
>
> When closing the GIMP session, I got a crash (Refer to reported info
> below).
>
> My configuration is Kubuntu 24.04 (Dev) Noble updated daily.
>
> I remain available to provide further information.
> Thanks to you for your support. Regards. Xavier
>
> <!-- Copy-paste this whole debug data to report to developers -->
>
> ```
> GNU Image Manipulation Program version 2.10.36
> git-describe: GIM...

Revision history for this message
Sergio Conde Gómez (skgsergio) wrote :

I can confirm that the 2.10.36-3ubuntu0.24.04.1 version from noble-proposed fixes the issue. From 100% reproducibility to no reproducibility. Thanks!

Revision history for this message
Joe Auge (joeauge) wrote :

By activating the proposed repository I did not get any updates for gimp. So i installed it via

sudo apt install gimp/noble-proposed

And I can confirm, that the patch works. No more crashes while closing Gimp. Before I had them all the time.

Revision history for this message
Ubucolors (ubucolors) wrote :

I use a temporary workaround to first close the image itself, then i close Gimp, no crash then.
To update i shall wait until the fix come in the normal way.

Revision history for this message
Skia (hyask) wrote :

Same here, 2.10.36-3ubuntu0.24.04.1 fixed the crash on Noble running `sway`.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.