On Monday, 17 February 2025 20:46:02 AEDT Sune Stolborg Vuorela wrote: > On Monday, February 17, 2025 5:25:19 AM CET Russell Coker wrote: > > Package: gwenview > > Version: 4:24.12.0-1 > > Severity: normal > > > > A frequent occurance for me on recent versions of Debian/Unstable is for > > gwenview to crash on exit. For most uses it was intermittant but I have > > found a case where it's 100% repeatable. I run "gwenview ." in a > > directory > > with 3 pics of my car engine (which I am happy to supply as test data if > > needed) and then press ALT-F4 without viewing any of the images (it just > > displays the thumbnails) and it crashes. > > Any change you can do a local modified gwenview build (without > libcfitsio-dev available) > > At least the code from the failing point looks a bit fishy if cfitsio is > found during build. > > It should be a autodetectable feature if found.
I did that and it still crashes. Not 100% of the time though. Here's 3 different backtraces. So it looks like memory is being messed up somewhere. (gdb) bt #0 0x00007ffff3d6d349 in mnt_monitor_close_fd () at /lib/x86_64-linux-gnu/ libmount.so.1 #1 0x00007ffff3d6d455 in mnt_unref_monitor () at /lib/x86_64-linux-gnu/ libmount.so.1 #2 0x00007ffff410195e in ??? () at /lib/x86_64-linux-gnu/libKF6Solid.so.6 #3 0x00007ffff4e4c261 in __run_exit_handlers (status=0, listp=0x7ffff4ff1680 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at ./stdlib/exit.c:108 #4 0x00007ffff4e4c31a in __GI_exit (status=<optimized out>) at ./stdlib/ exit.c:138 #5 0x00007ffff4e33d6f in __libc_start_call_main (main=main@entry=0x5555555955c0 <main(int, char**)>, argc=argc@entry=2, argv=argv@entry=0x7fffffffe3b8) at ../sysdeps/nptl/libc_start_call_main.h:74 #6 0x00007ffff4e33e25 in __libc_start_main_impl (main=0x5555555955c0 <main(int, char**)>, argc=2, argv=0x7fffffffe3b8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe3a8) at ../csu/libc-start.c:360 #7 0x00005555555960e1 in _start () (gdb) (gdb) bt #0 0x00007ffff3d6d319 in mnt_monitor_close_fd () at /lib/x86_64-linux-gnu/ libmount.so.1 #1 0x00007ffff3d6d455 in mnt_unref_monitor () at /lib/x86_64-linux-gnu/ libmount.so.1 #2 0x00007ffff410195e in ??? () at /lib/x86_64-linux-gnu/libKF6Solid.so.6 #3 0x00007ffff4e4c261 in __run_exit_handlers (status=0, listp=0x7ffff4ff1680 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at ./stdlib/exit.c:108 #4 0x00007ffff4e4c31a in __GI_exit (status=<optimized out>) at ./stdlib/ exit.c:138 #5 0x00007ffff4e33d6f in __libc_start_call_main (main=main@entry=0x5555555955c0 <main(int, char**)>, argc=argc@entry=2, argv=argv@entry=0x7fffffffe3b8) at ../sysdeps/nptl/libc_start_call_main.h:74 #6 0x00007ffff4e33e25 in __libc_start_main_impl (main=0x5555555955c0 <main(int, char**)>, argc=2, argv=0x7fffffffe3b8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe3a8) at ../csu/libc-start.c:360 #7 0x00005555555960e1 in _start () (gdb) (gdb) bt #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44 #1 0x00007ffff4e9de2f in __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:78 #2 0x00007ffff4e49d02 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/ raise.c:26 #3 0x00007ffff4e324f0 in __GI_abort () at ./stdlib/abort.c:79 #4 0x00007ffff4e3332d in __libc_message_impl (fmt=fmt@entry=0x7ffff4fb5303 "%s\n") at ../sysdeps/posix/libc_fatal.c:134 #5 0x00007ffff4ea7965 in malloc_printerr (str=str@entry=0x7ffff4fb3082 "free(): invalid pointer") at ./malloc/malloc.c:5772 #6 0x00007ffff4ea9bf4 in _int_free (av=0x7ffff4ff1ac0 <main_arena>, p=<optimized out>, have_lock=have_lock@entry=0) at ./malloc/malloc.c:4507 #7 0x00007ffff4eac43f in __GI___libc_free (mem=<optimized out>) at ./malloc/ malloc.c:3398 #8 0x00007ffff410195e in ??? () at /lib/x86_64-linux-gnu/libKF6Solid.so.6 #9 0x00007ffff4e4c261 in __run_exit_handlers (status=0, listp=0x7ffff4ff1680 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at ./stdlib/exit.c:108 #10 0x00007ffff4e4c31a in __GI_exit (status=<optimized out>) at ./stdlib/ exit.c:138 #11 0x00007ffff4e33d6f in __libc_start_call_main (main=main@entry=0x5555555955c0 <main(int, char**)>, argc=argc@entry=2, argv=argv@entry=0x7fffffffe3b8) at ../sysdeps/nptl/libc_start_call_main.h:74 #12 0x00007ffff4e33e25 in __libc_start_main_impl (main=0x5555555955c0 <main(int, char**)>, argc=2, argv=0x7fffffffe3b8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe3a8) at ../csu/libc-start.c:360 #13 0x00005555555960e1 in _start () (gdb) The following exerpts from valgrind output seem relevant and relate to one of the first two backtraces above. ==1139484== Invalid read of size 4 ==1139484== at 0x8AA4060: ??? (in /usr/lib/x86_64-linux-gnu/libmount.so. 1.1.0) ==1139484== by 0x8AA533E: mnt_monitor_close_fd (in /usr/lib/x86_64-linux- gnu/libmount.so.1.1.0) ==1139484== by 0x8AA5454: mnt_unref_monitor (in /usr/lib/x86_64-linux-gnu/ libmount.so.1.1.0) ==1139484== by 0x876995D: ??? (in /usr/lib/x86_64-linux-gnu/libKF6Solid.so. 6.10.0) ==1139484== by 0x753E260: __run_exit_handlers (exit.c:108) ==1139484== by 0x753E319: exit (exit.c:138) ==1139484== by 0x7525D6E: (below main) (libc_start_call_main.h:74) ==1139484== Address 0x10566f58 is 8 bytes inside a block of size 1,152 free'd ==1139484== at 0x484687F: free (in /usr/libexec/valgrind/ vgpreload_memcheck-amd64-linux.so) ==1139484== by 0x9FF6085: xkb_keymap_unref (in /usr/lib/x86_64-linux-gnu/ libxkbcommon.so.0.0.0) ==1139484== by 0x7D1679D: QtWaylandClient::QWaylandInputDevice::Keyboard::~Keyboard() (in /usr/lib/ x86_64-linux-gnu/libQt6WaylandClient.so.6.7.2) ==1139484== by 0x7D176A8: QtWaylandClient::QWaylandInputDevice::~QWaylandInputDevice() (in /usr/lib/ x86_64-linux-gnu/libQt6WaylandClient.so.6.7.2) ==1139484== by 0x7D059B4: QtWaylandClient::QWaylandDisplay::~QWaylandDisplay() (in /usr/lib/x86_64- linux-gnu/libQt6WaylandClient.so.6.7.2) ==1139484== by 0x7D1DB9D: QtWaylandClient::QWaylandIntegration::~QWaylandIntegration() (in /usr/lib/ x86_64-linux-gnu/libQt6WaylandClient.so.6.7.2) ==1139484== by 0x7D1DC1C: QtWaylandClient::QWaylandIntegration::~QWaylandIntegration() (in /usr/lib/ x86_64-linux-gnu/libQt6WaylandClient.so.6.7.2) ==1139484== by 0x6412628: QGuiApplicationPrivate::~QGuiApplicationPrivate() (in /usr/lib/x86_64-linux-gnu/libQt6Gui.so.6.7.2) ==1139484== by 0x5C2B23C: QApplicationPrivate::~QApplicationPrivate() (in / usr/lib/x86_64-linux-gnu/libQt6Widgets.so.6.7.2) ==1139484== by 0x149EA8: main (main.cpp:222) ==1139484== Invalid read of size 8 ==1139484== at 0x8AA533F: mnt_monitor_close_fd (in /usr/lib/x86_64-linux- gnu/libmount.so.1.1.0) ==1139484== by 0x8AA5454: mnt_unref_monitor (in /usr/lib/x86_64-linux-gnu/ libmount.so.1.1.0) ==1139484== by 0x876995D: ??? (in /usr/lib/x86_64-linux-gnu/libKF6Solid.so. 6.10.0) ==1139484== by 0x753E260: __run_exit_handlers (exit.c:108) ==1139484== by 0x753E319: exit (exit.c:138) ==1139484== by 0x7525D6E: (below main) (libc_start_call_main.h:74) ==1139484== Address 0x10566f70 is 32 bytes inside a block of size 1,152 free'd ==1139484== at 0x484687F: free (in /usr/libexec/valgrind/ vgpreload_memcheck-amd64-linux.so) ==1139484== by 0x9FF6085: xkb_keymap_unref (in /usr/lib/x86_64-linux-gnu/ libxkbcommon.so.0.0.0) ==1139484== by 0x7D1679D: QtWaylandClient::QWaylandInputDevice::Keyboard::~Keyboard() (in /usr/lib/ x86_64-linux-gnu/libQt6WaylandClient.so.6.7.2) ==1139484== by 0x7D176A8: QtWaylandClient::QWaylandInputDevice::~QWaylandInputDevice() (in /usr/lib/ x86_64-linux-gnu/libQt6WaylandClient.so.6.7.2) ==1139484== by 0x7D059B4: QtWaylandClient::QWaylandDisplay::~QWaylandDisplay() (in /usr/lib/x86_64- linux-gnu/libQt6WaylandClient.so.6.7.2) ==1139484== by 0x7D1DB9D: QtWaylandClient::QWaylandIntegration::~QWaylandIntegration() (in /usr/lib/ x86_64-linux-gnu/libQt6WaylandClient.so.6.7.2) ==1139484== by 0x7D1DC1C: QtWaylandClient::QWaylandIntegration::~QWaylandIntegration() (in /usr/lib/ x86_64-linux-gnu/libQt6WaylandClient.so.6.7.2) ==1139484== by 0x6412628: QGuiApplicationPrivate::~QGuiApplicationPrivate() (in /usr/lib/x86_64-linux-gnu/libQt6Gui.so.6.7.2) ==1139484== by 0x5C2B23C: QApplicationPrivate::~QApplicationPrivate() (in / usr/lib/x86_64-linux-gnu/libQt6Widgets.so.6.7.2) ==1139484== by 0x149EA8: main (main.cpp:222) Even if you can't reproduce a crash you can probably get valgrind to flag some errors. As an aside this workstation I'm testing on has 256G of RAM which possibly could change algorithms used for malloc libraries. I'm just guessing at why the error appears on my system but apparently other people have it work OK. -- My Main Blog http://etbe.coker.com.au/ My Documents Blog http://doc.coker.com.au/