> I reproduced the code from [1] to learn how to create KF5 applications. The > application runs fine but if I first open some file and then quit through > the quit action i get a segmentation fault. > > I ran the application in GDB and created this backtrace: > > #0 0x00007ffff4335b44 in () at /usr/lib64/libQt5Core.so.5 > > #1 0x00007ffff43136d9 in QHashData::free_helper(void > > (*)(QHashData::Node*)) () at /usr/lib64/libQt5Core.so.5 #2 > > 0x00007ffff432db24 in () at > > /usr/lib64/libQt5Core.so.5 > > #3 0x00007ffff35fab19 in __run_exit_handlers () at /lib64/libc.so.6 > > #4 0x00007ffff35fab65 in () at /lib64/libc.so.6 > > #5 0x00007ffff35e4b0c in __libc_start_main () at /lib64/libc.so.6 > > #6 0x0000000000407509 in _start () at ../sysdeps/x86_64/start.S:122 > > Now I wonder if the example contains a bug I cannot spot or if my > environment is somehow broken. Its OpenSuSE Leap with OBS KDE repositories > (Plasma is very stable indeed, so i can't imagine it's the environment). I can reproduce this bug on openSUSE Leap.
valgrind's output: ==28585== Invalid read of size 4 ==28585== at 0x8436B44: ??? (in /usr/lib64/libQt5Core.so.5.5.1) ==28585== by 0x84146D8: QHashData::free_helper(void (*)(QHashData::Node*)) (in /usr/lib64/libQt5Core.so.5.5.1) ==28585== by 0x842EB23: ??? (in /usr/lib64/libQt5Core.so.5.5.1) ==28585== by 0x92B3B18: __run_exit_handlers (in /lib64/libc-2.19.so) ==28585== by 0x92B3B64: exit (in /lib64/libc-2.19.so) ==28585== by 0x929DB0B: (below main) (in /lib64/libc-2.19.so) ==28585== Address 0x170a34a0 is not stack'd, malloc'd or (recently) free'd ==28585== ==28585== ==28585== Process terminating with default action of signal 11 (SIGSEGV) ==28585== Access not within mapped region at address 0x170A34A0 ==28585== at 0x8436B44: ??? (in /usr/lib64/libQt5Core.so.5.5.1) ==28585== by 0x84146D8: QHashData::free_helper(void (*)(QHashData::Node*)) (in /usr/lib64/libQt5Core.so.5.5.1) ==28585== by 0x842EB23: ??? (in /usr/lib64/libQt5Core.so.5.5.1) ==28585== by 0x92B3B18: __run_exit_handlers (in /lib64/libc-2.19.so) ==28585== by 0x92B3B64: exit (in /lib64/libc-2.19.so) ==28585== by 0x929DB0B: (below main) (in /lib64/libc-2.19.so) Looks like a bug in QHashData::free_helper()... -- Alexander