Large XCF files are damaged
GIMP version: 2.10.16
Operating System: Linux
Package: ArchLinux
Description of the bug
Saving XCF file with a lot of layers and pictures makes corrupt files while opening it later. Pictures layers no longer appear
Reproduction
Randomly with large files (>130Mo), saved with 2.10.16
Sample : Bug.xcf
No problem opening XCF saved with 2.10.14 and I never had problem with 2.10.14 (and before) with similar files.
Reproduction steps:
- Make a large XCF files with layers, large pictures on layers
- Save the XCF and close
- Open the XCF
- A warning message appair "The XCF file is damaged"
- Layers with pictures no longer appear
…
Expected result: What has been saved :
Actual result: What you see after opening the same file :
Additional information
Éditeur d’image GIMP version 2.10.16
git-describe: GIMP_2_10_14-351-gfe60c0ffac
Build: unknown rev 0 for linux-gnu
# C compiler #
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /build/gcc/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-pkgversion='Arch Linux 9.2.1+20200130-2' --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d --enable-shared --enable-threads=posix --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --enable-multilib --disable-werror --enable-checking=release --enable-default-pie --enable-default-ssp --enable-cet=auto gdc_include_dir=/usr/include/dlang/gdc
Thread model: posix
gcc version 9.2.1 20200130 (Arch Linux 9.2.1+20200130-2)
# Libraries #
using babl version 0.1.74 (compiled against version 0.1.74)
using GEGL version 0.4.20 (compiled against version 0.4.20)
using GLib version 2.62.4 (compiled against version 2.62.4)
using GdkPixbuf version 2.40.0 (compiled against version 2.40.0)
using GTK+ version 2.24.32 (compiled against version 2.24.32)
using Pango version 1.44.7 (compiled against version 1.44.7)
using Fontconfig version 2.13.91 (compiled against version 2.13.91)
using Cairo version 1.17.3 (compiled against version 1.17.3)
GIMP-CRITIQUE: gimp_image_set_active_layer: assertion 'layer == NULL || GIMP_IS_LAYER (layer)' failed
Stack trace:
# Stack traces obtained from PID 287748 - Thread 287748 #
[New LWP 287750]
[New LWP 287751]
[New LWP 287752]
[New LWP 287753]
[New LWP 287754]
[New LWP 287755]
[New LWP 287756]
[New LWP 287757]
[New LWP 287758]
[New LWP 287759]
[New LWP 287760]
[New LWP 287761]
[New LWP 287762]
[New LWP 287763]
[New LWP 287764]
[New LWP 287765]
[New LWP 287766]
[New LWP 287768]
[New LWP 287779]
[New LWP 301223]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
0x00007ff8573ad72c in read () from /usr/lib/libpthread.so.0
Id Target Id Frame
* 1 Thread 0x7ff8565b1d00 (LWP 287748) "gimp-2.10" 0x00007ff8573ad72c in read () from /usr/lib/libpthread.so.0
2 Thread 0x7ff855fe5700 (LWP 287750) "worker" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
3 Thread 0x7ff8557e4700 (LWP 287751) "worker" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
4 Thread 0x7ff854fe3700 (LWP 287752) "worker" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
5 Thread 0x7ff84ffff700 (LWP 287753) "worker" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
6 Thread 0x7ff84f7fe700 (LWP 287754) "worker" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
7 Thread 0x7ff84effd700 (LWP 287755) "worker" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
8 Thread 0x7ff84e7fc700 (LWP 287756) "worker" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
9 Thread 0x7ff84dffb700 (LWP 287757) "worker" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
10 Thread 0x7ff84d7fa700 (LWP 287758) "worker" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
11 Thread 0x7ff84cff9700 (LWP 287759) "worker" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
12 Thread 0x7ff82ffff700 (LWP 287760) "worker" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
13 Thread 0x7ff82f7fe700 (LWP 287761) "worker" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
14 Thread 0x7ff82effd700 (LWP 287762) "worker" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
15 Thread 0x7ff82e7fc700 (LWP 287763) "worker" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
16 Thread 0x7ff82dffb700 (LWP 287764) "worker" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
17 Thread 0x7ff82d7fa700 (LWP 287765) "gmain" 0x00007ff8572c8abf in poll () from /usr/lib/libc.so.6
18 Thread 0x7ff82cff9700 (LWP 287766) "gdbus" 0x00007ff8572c8abf in poll () from /usr/lib/libc.so.6
19 Thread 0x7ff7fb34a700 (LWP 287768) "async" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
20 Thread 0x7ff7fa29f700 (LWP 287779) "swap writer" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
21 Thread 0x7ff7f3fff700 (LWP 301223) "pool-gimp-2.10" 0x00007ff8572cdf8d in syscall () from /usr/lib/libc.so.6
Thread 21 (Thread 0x7ff7f3fff700 (LWP 301223)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff85752611b in g_cond_wait_until () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff8575a3f63 in () at /usr/lib/libglib-2.0.so.0
#3 0x00007ff8575a4154 in g_async_queue_timeout_pop () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff85754b02a in () at /usr/lib/libglib-2.0.so.0
#5 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#6 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#7 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 20 (Thread 0x7ff7fa29f700 (LWP 287779)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff857525531 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff857a49f1e in () at /usr/lib/libgegl-0.4.so.0
#3 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#5 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 19 (Thread 0x7ff7fb34a700 (LWP 287768)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff857525531 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x000055e9cd9207b5 in ()
#3 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#5 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 18 (Thread 0x7ff82cff9700 (LWP 287766)):
#0 0x00007ff8572c8abf in poll () at /usr/lib/libc.so.6
#1 0x00007ff857575120 in () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff8575760c3 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#3 0x00007ff857715bc8 in () at /usr/lib/libgio-2.0.so.0
#4 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#5 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#6 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 17 (Thread 0x7ff82d7fa700 (LWP 287765)):
#0 0x00007ff8572c8abf in poll () at /usr/lib/libc.so.6
#1 0x00007ff857575120 in () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff8575751f1 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3 0x00007ff857575242 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#5 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#6 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 16 (Thread 0x7ff82dffb700 (LWP 287764)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff857525531 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff857a7e6f4 in () at /usr/lib/libgegl-0.4.so.0
#3 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#5 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 15 (Thread 0x7ff82e7fc700 (LWP 287763)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff857525531 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff857a7e6f4 in () at /usr/lib/libgegl-0.4.so.0
#3 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#5 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 14 (Thread 0x7ff82effd700 (LWP 287762)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff857525531 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff857a7e6f4 in () at /usr/lib/libgegl-0.4.so.0
#3 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#5 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 13 (Thread 0x7ff82f7fe700 (LWP 287761)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff857525531 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff857a7e6f4 in () at /usr/lib/libgegl-0.4.so.0
#3 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#5 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 12 (Thread 0x7ff82ffff700 (LWP 287760)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff857525531 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff857a7e6f4 in () at /usr/lib/libgegl-0.4.so.0
#3 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#5 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 11 (Thread 0x7ff84cff9700 (LWP 287759)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff857525531 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff857a7e6f4 in () at /usr/lib/libgegl-0.4.so.0
#3 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#5 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 10 (Thread 0x7ff84d7fa700 (LWP 287758)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff857525531 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff857a7e6f4 in () at /usr/lib/libgegl-0.4.so.0
#3 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#5 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 9 (Thread 0x7ff84dffb700 (LWP 287757)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff857525531 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff857a7e6f4 in () at /usr/lib/libgegl-0.4.so.0
#3 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#5 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 8 (Thread 0x7ff84e7fc700 (LWP 287756)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff857525531 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff857a7e6f4 in () at /usr/lib/libgegl-0.4.so.0
#3 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#5 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 7 (Thread 0x7ff84effd700 (LWP 287755)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff857525531 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff857a7e6f4 in () at /usr/lib/libgegl-0.4.so.0
#3 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#5 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 6 (Thread 0x7ff84f7fe700 (LWP 287754)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff857525531 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff857a7e6f4 in () at /usr/lib/libgegl-0.4.so.0
#3 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#5 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 5 (Thread 0x7ff84ffff700 (LWP 287753)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff857525531 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff857a7e6f4 in () at /usr/lib/libgegl-0.4.so.0
#3 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#5 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 4 (Thread 0x7ff854fe3700 (LWP 287752)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff857525531 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff857a7e6f4 in () at /usr/lib/libgegl-0.4.so.0
#3 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#5 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 3 (Thread 0x7ff8557e4700 (LWP 287751)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff857525531 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff857a7e6f4 in () at /usr/lib/libgegl-0.4.so.0
#3 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#5 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 2 (Thread 0x7ff855fe5700 (LWP 287750)):
#0 0x00007ff8572cdf8d in syscall () at /usr/lib/libc.so.6
#1 0x00007ff857525531 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007ff857a7e6f4 in () at /usr/lib/libgegl-0.4.so.0
#3 0x00007ff857551bb1 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007ff8573a346f in start_thread () at /usr/lib/libpthread.so.0
#5 0x00007ff8572d33d3 in clone () at /usr/lib/libc.so.6
Thread 1 (Thread 0x7ff8565b1d00 (LWP 287748)):
#0 0x00007ff8573ad72c in read () at /usr/lib/libpthread.so.0
#1 0x00007ff857eb62dc in gimp_stack_trace_print () at /usr/lib/libgimpbase-2.0.so.0
#2 0x000055e9cd6233fd in gui_message ()
#3 0x000055e9cd91d3a1 in gimp_show_message ()
#4 0x000055e9cd618100 in ()
#5 0x00007ff85756d39d in g_logv () at /usr/lib/libglib-2.0.so.0
#6 0x00007ff85756d5a0 in g_log () at /usr/lib/libglib-2.0.so.0
#7 0x000055e9cd98b00c in gimp_image_set_active_layer ()
#8 0x000055e9cd861a5f in xcf_load_image ()
#9 0x000055e9cd85c141 in xcf_load_stream ()
#10 0x000055e9cd85c314 in ()
#11 0x000055e9cd8fa68f in ()
#12 0x000055e9cd8ed59b in gimp_procedure_execute ()
#13 0x000055e9cd8e666a in gimp_pdb_execute_procedure_by_name_args ()
#14 0x000055e9cd8e6b45 in gimp_pdb_execute_procedure_by_name ()
#15 0x000055e9cda01c8e in file_open_image ()
#16 0x000055e9cda02d0d in file_open_with_proc_and_display ()
#17 0x000055e9cd65e68a in ()
#18 0x000055e9cd65e9ec in ()
#19 0x00007ff85765fd5a in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#20 0x00007ff85764d88e in () at /usr/lib/libgobject-2.0.so.0
#21 0x00007ff85765198a in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#22 0x00007ff8576527f0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#23 0x00007ff85765fd5a in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#24 0x00007ff85764d88e in () at /usr/lib/libgobject-2.0.so.0
#25 0x00007ff85765198a in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#26 0x00007ff8576527f0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#27 0x00007ff8582587ae in () at /usr/lib/libgtk-x11-2.0.so.0
#28 0x00007ff857f39d9e in () at /usr/lib/libgdk-x11-2.0.so.0
#29 0x00007ff857572a64 in () at /usr/lib/libglib-2.0.so.0
#30 0x00007ff85757326f in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#31 0x00007ff8575751b1 in () at /usr/lib/libglib-2.0.so.0
#32 0x00007ff8575760c3 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#33 0x000055e9cd617c53 in app_run ()
#34 0x000055e9cd6174da in main ()
[Inferior 1 (process 287748) detached]
Edited by lillolollo