[php-src] Issue #12482: Abortion with tracing JIT

From: Date: Thu, 19 Oct 2023 20:38:05 +0000
Subject: [php-src] Issue #12482: Abortion with tracing JIT
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-245611@lists.php.net to get a copy of this message
Issue: https://github.com/php/php-src/issues/12482 Author: danog ### Description The following code: https://github.com/nicelocal/psalm/tree/rector_pass (a fork of Psalm, commit 9d3fee47afa90f3eb53043a26f01e587d2dd34e5) Running using: ``` PSALM_ALLOW_XDEBUG=1 USE_ZEND_ALLOC=0 gdb --args php-asan ./psalm --no-cache ``` With this config: ``` memory_limit = -1 zend.assertions = 1 display_errors = On display_startup_errors = On ;extension=uv extension=gmp extension=iconv [opcache] zend_extension=opcache opcache.memory_consumption=4096M opcache.enable=1 opcache.enable_cli=1 opcache.jit=tracing opcache.validate_timestamps=0 opcache.jit_buffer_size=1G opcache.file_update_protection=0 opcache.max_accelerated_files=1000000 opcache.interned_strings_buffer=64 ;opcache.jit_debug=28672 ;opcache.jit_debug=16384 opcache.jit_debug=256 opcache.jit_prof_threshold=0.000000001 opcache.jit_max_root_traces= 30000000 opcache.jit_max_side_traces= 30000000 opcache.jit_max_exit_counters=30000000 opcache.jit_hot_loop=1 opcache.jit_hot_func=1 opcache.jit_hot_return=1 opcache.jit_hot_side_exit=1 opcache.jit_blacklist_root_trace=255 opcache.jit_blacklist_side_trace=255 opcache.protect_memory=1 ``` Resulted in this output: ``` Program received signal SIGABRT, Aborted. __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 44 return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0; (gdb) back #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 #1 0x00007ffff6ffa8a3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78 #2 0x00007ffff6faa668 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #3 0x00007ffff6f924b8 in __GI_abort () at abort.c:79 #4 0x00007fffb180a457 in TRACE-1550$Psalm\Type\Union::getSingleAtomic$1527 () at unknown:1 #5 0x00007ffff48035f8 in ?? () #6 0x00007ffff48035f0 in ?? () #7 0x00007ffff48035f0 in ?? () #8 0x00000000f48035f0 in ?? () #9 0x5dfaca7550574600 in ?? () #10 0x0000000173596764 in ?? () #11 0x00007ffff4803800 in ?? () #12 0x0000555557d28798 in ?? () #13 0x00007ffff7ffd000 in ?? () from /lib64/ld-linux-x86-64.so.2 #14 0x00007fffffffde88 in ?? () #15 0x0000000000000000 in ?? () (gdb) zback [0x7ffff4803830] Psalm\Type\Union->getSingleAtomic() /home/daniil/repos/psalm/src/Psalm/Type/UnionTrait.php:1527 [0x7ffff48035f0] Psalm\Internal\Analyzer\Statements\Expression\SimpleTypeInferer->infer(object[0x7ffff4803640], object[0x7ffff4803650], object[0x7ffff4803660], object[0x7ffff4803670], NULL, array(0)[0x7ffff4803690], "Composer\Autoload\ComposerStaticInitee60cb38244924a30b9a4f1eb3dba ``` But I expected this output instead: no abortion. ping @dstogo ### PHP Version 745a34646f20f0f0fc77a9223bc5fc57a975a957 ### Operating System Arch linux

« previous php.bugs (#245611) next »