Closed
Description
Description
Backtrace:
$gdb -batch -ex run -ex bt --args php vendor/bin/phpunit --exclude-group none --no-coverage --fail-on-warning --fail-on-risky $(if vendor/bin/phpunit --version | grep -q '^PHPUnit 9\.'; then echo -v; else echo --fail-on-notice --fail-on-deprecation --display-notices --display-deprecations --display-warnings --display-errors --display-incomplete --display-skipped; fi)
env:
DB_DSN: pdo_oci:dbname=oracle/free
DB_USER: system
DB_PASSWORD: atk4_pass
NLS_LANG: AMERICAN_AMERICA.AL32UTF8
warning: Error disabling address space randomization: Operation not permitted
PHPUnit 11.5.19 by Sebastian Bergmann and contributors.
Runtime: PHP 8.3.20
Configuration: /__w/data/data/phpunit.xml.dist
Program received signal SIGSEGV, Segmentation fault.
0x00007fcc20f99908 in kpulitmp () from /usr/lib/oracle/21.1/client64/lib/libclntsh.so.21.1
#0 0x00007fcc20f99908 in kpulitmp () from /usr/lib/oracle/21.1/client64/lib/libclntsh.so.21.1
#1 0x00007fcc1d934f1f in oci_stmt_dtor () from /usr/local/lib/php/extensions/debug-non-zts-20230831/pdo_oci.so
#2 0x0000561ba909aaa9 in php_pdo_free_statement (stmt=0x7fcc1b9831c0) at /usr/src/php/ext/pdo/pdo_stmt.c:2139
#3 0x0000561ba909aba6 in pdo_dbstmt_free_storage (std=0x7fcc1b9832f8) at /usr/src/php/ext/pdo/pdo_stmt.c:2166
#4 0x0000561ba94ae726 in zend_gc_collect_cycles () at /usr/src/php/Zend/zend_gc.c:1938
#5 0x0000561ba93efb68 in zif_gc_collect_cycles (execute_data=0x7fcc25e1ac40, return_value=0x7ffdf03cbd50) at /usr/src/php/Zend/zend_builtin_functions.c:93
#6 0x0000561ba9412502 in ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_UNUSED_HANDLER () at /usr/src/php/Zend/zend_vm_execute.h:1567
#7 0x0000561ba9491d28 in execute_ex (ex=0x7fcc25e17020) at /usr/src/php/Zend/zend_vm_execute.h:57266
#8 0x0000561ba9496646 in zend_execute (op_array=0x7fcc25e61140, return_value=0x0) at /usr/src/php/Zend/zend_vm_execute.h:61634
#9 0x0000561ba93cc203 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /usr/src/php/Zend/zend.c:1895
#10 0x0000561ba9310660 in php_execute_script (primary_file=0x7ffdf03cd540) at /usr/src/php/main/main.c:2529
#11 0x0000561ba955a259 in do_cli (argc=15, argv=0x7fcc264d9b20) at /usr/src/php/sapi/cli/php_cli.c:966
#12 0x0000561ba955b0a3 in main (argc=15, argv=0x7fcc264d9b20) at /usr/src/php/sapi/cli/php_cli.c:1341
Full repro code: https://github.com/atk4/data/tree/repro_oracle_83_segfault
Notes:
I tried to isolate the reproducer into a single file /wo phpunit, but it seems even merging the 2 tests into 1 prevent this bug.
Also this issue seems to be present with PDO OCI driver only. OCI8 and other PDO drivers are unaffected.
PHP Version
8.3.20
Operating System
Alpine