c044b2e916
In some very rare cases (< 1/1000 runs), in very loaded machines, a race in the glibc pthread_cancel() seems to be triggered. In this the cancelled thread cleanup overtakes the pthread_cancel() code, and frees the pthread structure before pthread_cancel() has finished, resulting in a dereference into already free'd memory, and therefore a segfault. Calling pthread_cancel() during cleanup is not required beyond preventing a valgrind memory leak report (all threads will be stopped immediately on exit). Therefore we stop doing this, to avoid this very rare crashes. This issue was reproduced in Ubuntu 22.04, with its default gcc 11.3.0 and glibc 2.35. The issue may also have been seen very rarely in Zephyr's CI. Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no> |
||
---|---|---|
.. | ||
arc | ||
arm | ||
arm64 | ||
common | ||
mips | ||
nios2 | ||
posix | ||
riscv | ||
sparc | ||
x86 | ||
xtensa | ||
CMakeLists.txt | ||
Kconfig |