|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2016-02-15 15:54 UTC] nick dot saraniti at gmail dot com
Description: ------------ In some cases oci_fetch_all causes apache 2.4/centos7 to segfault. Happens consistently on some pages, never on others calling same function. Possible something related to the SQL queries? Actual result: -------------- Program received signal SIGSEGV, Segmentation fault. 0x00007fffea529df5 in _zend_hash_index_update () from /etc/httpd/modules/libphp7.so (gdb) bt #0 0x00007fffea529df5 in _zend_hash_index_update () from /etc/httpd/modules/libphp7.so #1 0x00007fffddd3c785 in zif_oci_fetch_all (execute_data=<optimized out>, return_value=0x7fffe8218500) at /var/tmp/oci8/oci8_interface.c:1495 #2 0x00007fffea50b35b in dtrace_execute_internal () from /etc/httpd/modules/libphp7.so #3 0x00007fffea596db3 in ?? () from /etc/httpd/modules/libphp7.so #4 0x00007fffea558fcb in execute_ex () from /etc/httpd/modules/libphp7.so #5 0x00007fffea50b239 in dtrace_execute_ex () from /etc/httpd/modules/libphp7.so #6 0x00007fffea596a90 in ?? () from /etc/httpd/modules/libphp7.so #7 0x00007fffea558fcb in execute_ex () from /etc/httpd/modules/libphp7.so #8 0x00007fffea50b239 in dtrace_execute_ex () from /etc/httpd/modules/libphp7.so #9 0x00007fffea5a0378 in ?? () from /etc/httpd/modules/libphp7.so #10 0x00007fffea558fcb in execute_ex () from /etc/httpd/modules/libphp7.so #11 0x00007fffea50b239 in dtrace_execute_ex () from /etc/httpd/modules/libphp7.so #12 0x00007fffea5a0378 in ?? () from /etc/httpd/modules/libphp7.so #13 0x00007fffea558fcb in execute_ex () from /etc/httpd/modules/libphp7.so #14 0x00007fffea50b239 in dtrace_execute_ex () from /etc/httpd/modules/libphp7.so #15 0x00007fffea5a2cef in zend_execute () from /etc/httpd/modules/libphp7.so #16 0x00007fffea51af63 in zend_execute_scripts () from /etc/httpd/modules/libphp7.so #17 0x00007fffea4bc3a8 in php_execute_script () from /etc/httpd/modules/libphp7.so #18 0x00007fffea5a46ad in ?? () from /etc/httpd/modules/libphp7.so #19 0x0000555555593270 in ap_run_handler () #20 0x00005555555937b9 in ap_invoke_handler () #21 0x00005555555a7b3a in ap_process_async_request () #22 0x00005555555a7e14 in ap_process_request () #23 0x00005555555a47a2 in ?? () #24 0x000055555559c840 in ap_run_process_connection () #25 0x00007fffeda1980f in ?? () from /etc/httpd/modules/mod_mpm_prefork.so #26 0x00007fffeda19a0c in ?? () from /etc/httpd/modules/mod_mpm_prefork.so #27 0x00007fffeda1a791 in ?? () from /etc/httpd/modules/mod_mpm_prefork.so #28 0x00005555555795ae in ap_run_mpm () #29 0x0000555555572b36 in main () PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 16:00:01 2025 UTC |
Some more info, Oracle Database 11g Release 11.2.0.1.0 - 64bit Production PL/SQL Release 11.2.0.1.0 - Production "CORE 11.2.0.1.0 Production" TNS for Linux: Version 11.2.0.1.0 - Production NLSRTL Version 11.2.0.1.0 - Production Used rpm to install instaclient's, PECL for oci8 [New Thread 0x7ffff7f396c0 (LWP 7676)] Program received signal SIGSEGV, Segmentation fault. 0x00007fffea529df5 in _zend_hash_index_update () from /etc/httpd/modules/libphp7.so (gdb) (gdb) bt #0 0x00007fffea529df5 in _zend_hash_index_update () from /etc/httpd/modules/libphp7.so #1 0x00007fffddd3c395 in zif_oci_fetch_all (execute_data=<optimized out>, return_value=0x7fffe8217500) at /var/tmp/oci8/oci8_interface.c:1495 #2 0x00007fffea50b35b in dtrace_execute_internal () from /etc/httpd/modules/libphp7.so #3 0x00007fffea596db3 in ?? () from /etc/httpd/modules/libphp7.so #4 0x00007fffea558fcb in execute_ex () from /etc/httpd/modules/libphp7.so #5 0x00007fffea50b239 in dtrace_execute_ex () from /etc/httpd/modules/libphp7.so #6 0x00007fffea596a90 in ?? () from /etc/httpd/modules/libphp7.so #7 0x00007fffea558fcb in execute_ex () from /etc/httpd/modules/libphp7.so #8 0x00007fffea50b239 in dtrace_execute_ex () from /etc/httpd/modules/libphp7.so #9 0x00007fffea5a0378 in ?? () from /etc/httpd/modules/libphp7.so #10 0x00007fffea558fcb in execute_ex () from /etc/httpd/modules/libphp7.so #11 0x00007fffea50b239 in dtrace_execute_ex () from /etc/httpd/modules/libphp7.so #12 0x00007fffea5a0378 in ?? () from /etc/httpd/modules/libphp7.so #13 0x00007fffea558fcb in execute_ex () from /etc/httpd/modules/libphp7.so #14 0x00007fffea50b239 in dtrace_execute_ex () from /etc/httpd/modules/libphp7.so #15 0x00007fffea5a2cef in zend_execute () from /etc/httpd/modules/libphp7.so #16 0x00007fffea51af63 in zend_execute_scripts () from /etc/httpd/modules/libphp7.so #17 0x00007fffea4bc3a8 in php_execute_script () from /etc/httpd/modules/libphp7.so #18 0x00007fffea5a46ad in ?? () from /etc/httpd/modules/libphp7.so #19 0x0000555555593270 in ap_run_handler () #20 0x00005555555937b9 in ap_invoke_handler () #21 0x00005555555a7b3a in ap_process_async_request () #22 0x00005555555a7e14 in ap_process_request () #23 0x00005555555a47a2 in ?? () #24 0x000055555559c840 in ap_run_process_connection () #25 0x00007fffeda1980f in ?? () from /etc/httpd/modules/mod_mpm_prefork.so #26 0x00007fffeda19a0c in ?? () from /etc/httpd/modules/mod_mpm_prefork.so #27 0x00007fffeda1a791 in ?? () from /etc/httpd/modules/mod_mpm_prefork.so #28 0x00005555555795ae in ap_run_mpm () #29 0x0000555555572b36 in main ()Server: Ubuntu 14.04.4 LTS PHP:PHP 7.0.3-5+deb.sury.org~trusty+1 (cli) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies Oracle instant client 12.1 Oci8: 2.1.0 Apache 2.4.7 When executing a query that returns more than 8 fields and multiple rows, we get a segfault.An SQL query that returns only 1 row and more than 8 fields does not cause the segfault. [Mon Apr 11 09:40:56.180968 2016] [core:notice] [pid 2079] AH00051: child pid 18607 exit signal Segmentation fault (11), possible coredump in /tmp/dumpTRACE START [2016-04-11 13:40:52] 0.0002 360112 +360112 -> {main}() /home/robowman/public_html/view.debug.query.php:0 0.0003 360112 +0 -> session_start() /home/robowman/public_html/view.debug.query.php:20 0.0004 360752 >=> TRUE 0.0005 361040 +928 -> require_once(/home/robowman/public_html/inc/config.php) /home/robowman/public_html/view.debug.query.php:21 0.0005 361040 +0 -> define('SESSION_TIMEOUT', 30) /home/robowman/public_html/inc/config.php:20 0.0006 361072 >=> TRUE 0.0006 361072 +32 -> define('CHECK_BROWSER', TRUE) /home/robowman/public_html/inc/config.php:23 0.0006 361104 >=> TRUE 0.0007 361104 +32 -> define('IP_OCTETS', 2) /home/robowman/public_html/inc/config.php:24 0.0007 361136 >=> TRUE 0.0007 361136 +32 -> define('SALT', 'NeSCC!(*') /home/robowman/public_html/inc/config.php:25 0.0007 361168 >=> TRUE 0.0007 361168 +32 -> define('REGENERATE_ID', TRUE) /home/robowman/public_html/inc/config.php:26 0.0007 361200 >=> TRUE 0.0008 361200 +32 -> define('ROOT_URL', 'https://172.22.1.89/robowman/') /home/robowman/public_html/inc/config.php:28 0.0008 361232 >=> TRUE 0.0008 361320 +120 -> require_once(/home/robowman/public_html/query/debug.query.php) /home/robowman/public_html/view.debug.query.php:23 0.0009 363248 +1928 -> require_once(/home/robowman/public_html/class/ROBDB_Oracle_Connect.php) /home/robowman/public_html/query/debug.query.php:29 0.0010 364552 +1304 -> ROBDB_Query::getInstance() /home/robowman/public_html/query/debug.query.php:99 0.0010 364664 +112 -> ROBDB_Query->__construct() /home/robowman/public_html/class/ROBDB_Oracle_Connect.php:96 0.0010 364664 +0 -> ROBDB_Oracle->__construct() /home/robowman/public_html/class/ROBDB_Oracle_Connect.php:84 0.0010 364664 +0 -> oci_connect('baninst1', 'u_pick_it', 'OIR_BAN8') /home/robowman/public_html/class/ROBDB_Oracle_Connect.php:26 1.5335 365264 >=> resource(2) of type (oci8 connection) 1.5338 365264 >=> class ROBDB_Query { private $statement = NULL; private $error_message = NULL; private $results = NULL; protected $db_connection = resource(2) of type (oci8 connection) } 1.5338 365640 +976 -> ROBDB_Query->set_query('SELECT distinct\r\n\r\n\t\t\tSPRIDEN_ID ID,\r\n\t\t\tSPRIDEN_LAST_NAME || \', \'|| SPRIDEN_FIRST_NAME || \' \' || SPRIDEN_MI AS EMPLOYEE,\r\n\t\t\t\r\n\t\t\tPOSITION_TITLE AS WORKING_TITLE,\r\n\t\t\tpevempl_birth_date as Birthdate,\r\n\t\t\tpevempl_sex as Gender,\r\n\t\t\tpevempl_ethn_code as Ethnicity,\r\n\t\t\tEMPLOYEE_CLASS as e_class,\r\n\t\t\tCURRENT_HIRE_DATE AS HIRE_DT,\r\n\t\t\tseniority_date as seniority,\r\n\t\t\ta.effective_date as effective_date,\r\n\t\t\tposition_begin_date as position_begin_date,\r\n\t\t\ta.assignment_grade as salary_grade,\r\n\t\t\tto_char(ANNUAL_SALARY,\'$999,999.99\') as Salary\r\n\t\t\t\r\n\t\t\tFROM AN_EMPLOYEE_POSITION A,\r\n\t\t\t (SELECT PERSON_UID,\r\n\t\t\t POSITION,\r\n\t\t\t JOB_SUFFIX,\r\n\t\t\t MAX(EFFECTIVE_DATE) AS MAX_DATE\r\n\t\t\t FROM AN_EMPLOYEE_POSITION\r\n\t\t\t GROUP BY PERSON_UID, POSITION, JOB_SUFFIX) E,\r\n\t\t\t\r\n\t\t\tSPRIDEN, AP_EMPLOYEE,--nbrjlbd\r\n\t\t\tpevempl\r\n\t\t\tWHERE A.PERSON_UID = E.PERSON_UID\r\n\t\t\tand pevempl_pidm = A.Person_uid\r\n\t\t\tAND A.EFFECTIVE_DATE = E.MAX_DATE\r\n\t\t\tAND A.POSITION = E.POSITION\r\n\t\t\tAND A.JOB_SUFFIX = E.JOB_SUFFIX\r\n\t\t\tAND A.PERSON_UID = SPRIDEN_PIDM\t\r\n\t\t\tAND POSITION_CONTRACT_TYPE = \'P\' /*P - primary, S- seconday, O - override*/\r\n\t\t\tAND SPRIDEN_CHANGE_IND IS NULL \r\n\t\t\tAND A.PERSON_UID = AP_EMPLOYEE.PERSON_UID\r\n\t\t\tAND EMPLOYEE_STATUS <> \'T\'\r\n\t\t\tAND POSITION_STATUS <> \'T\'\r\n\t\t\tand pevempl_ethn_code = \'60\'\r\n\t\t\tand pevempl_ecls_code = \'AE\'\r\n\t\t\tand ( pevempl_sex = \'M\' or pevempl_sex = \'F\' )\r\n') /home/robowman/public_html/query/debug.query.php:100 1.5339 365640 +0 -> ROBDB_Query->prepareStatement('SELECT distinct\r\n\r\n\t\t\tSPRIDEN_ID ID,\r\n\t\t\tSPRIDEN_LAST_NAME || \', \'|| SPRIDEN_FIRST_NAME || \' \' || SPRIDEN_MI AS EMPLOYEE,\r\n\t\t\t\r\n\t\t\tPOSITION_TITLE AS WORKING_TITLE,\r\n\t\t\tpevempl_birth_date as Birthdate,\r\n\t\t\tpevempl_sex as Gender,\r\n\t\t\tpevempl_ethn_code as Ethnicity,\r\n\t\t\tEMPLOYEE_CLASS as e_class,\r\n\t\t\tCURRENT_HIRE_DATE AS HIRE_DT,\r\n\t\t\tseniority_date as seniority,\r\n\t\t\ta.effective_date as effective_date,\r\n\t\t\tposition_begin_date as position_begin_date,\r\n\t\t\ta.assignment_grade as salary_grade,\r\n\t\t\tto_char(ANNUAL_SALARY,\'$999,999.99\') as Salary\r\n\t\t\t\r\n\t\t\tFROM AN_EMPLOYEE_POSITION A,\r\n\t\t\t (SELECT PERSON_UID,\r\n\t\t\t POSITION,\r\n\t\t\t JOB_SUFFIX,\r\n\t\t\t MAX(EFFECTIVE_DATE) AS MAX_DATE\r\n\t\t\t FROM AN_EMPLOYEE_POSITION\r\n\t\t\t GROUP BY PERSON_UID, POSITION, JOB_SUFFIX) E,\r\n\t\t\t\r\n\t\t\tSPRIDEN, AP_EMPLOYEE,--nbrjlbd\r\n\t\t\tpevempl\r\n\t\t\tWHERE A.PERSON_UID = E.PERSON_UID\r\n\t\t\tand pevempl_pidm = A.Person_uid\r\n\t\t\tAND A.EFFECTIVE_DATE = E.MAX_DATE\r\n\t\t\tAND A.POSITION = E.POSITION\r\n\t\t\tAND A.JOB_SUFFIX = E.JOB_SUFFIX\r\n\t\t\tAND A.PERSON_UID = SPRIDEN_PIDM\t\r\n\t\t\tAND POSITION_CONTRACT_TYPE = \'P\' /*P - primary, S- seconday, O - override*/\r\n\t\t\tAND SPRIDEN_CHANGE_IND IS NULL \r\n\t\t\tAND A.PERSON_UID = AP_EMPLOYEE.PERSON_UID\r\n\t\t\tAND EMPLOYEE_STATUS <> \'T\'\r\n\t\t\tAND POSITION_STATUS <> \'T\'\r\n\t\t\tand pevempl_ethn_code = \'60\'\r\n\t\t\tand pevempl_ecls_code = \'AE\'\r\n\t\t\tand ( pevempl_sex = \'M\' or pevempl_sex = \'F\' )\r\n') /home/robowman/public_html/class/ROBDB_Oracle_Connect.php:110 1.5339 365640 +0 -> oci_parse(resource(2) of type (oci8 connection), 'SELECT distinct\r\n\r\n\t\t\tSPRIDEN_ID ID,\r\n\t\t\tSPRIDEN_LAST_NAME || \', \'|| SPRIDEN_FIRST_NAME || \' \' || SPRIDEN_MI AS EMPLOYEE,\r\n\t\t\t\r\n\t\t\tPOSITION_TITLE AS WORKING_TITLE,\r\n\t\t\tpevempl_birth_date as Birthdate,\r\n\t\t\tpevempl_sex as Gender,\r\n\t\t\tpevempl_ethn_code as Ethnicity,\r\n\t\t\tEMPLOYEE_CLASS as e_class,\r\n\t\t\tCURRENT_HIRE_DATE AS HIRE_DT,\r\n\t\t\tseniority_date as seniority,\r\n\t\t\ta.effective_date as effective_date,\r\n\t\t\tposition_begin_date as position_begin_date,\r\n\t\t\ta.assignment_grade as salary_grade,\r\n\t\t\tto_char(ANNUAL_SALARY,\'$999,999.99\') as Salary\r\n\t\t\t\r\n\t\t\tFROM AN_EMPLOYEE_POSITION A,\r\n\t\t\t (SELECT PERSON_UID,\r\n\t\t\t POSITION,\r\n\t\t\t JOB_SUFFIX,\r\n\t\t\t MAX(EFFECTIVE_DATE) AS MAX_DATE\r\n\t\t\t FROM AN_EMPLOYEE_POSITION\r\n\t\t\t GROUP BY PERSON_UID, POSITION, JOB_SUFFIX) E,\r\n\t\t\t\r\n\t\t\tSPRIDEN, AP_EMPLOYEE,--nbrjlbd\r\n\t\t\tpevempl\r\n\t\t\tWHERE A.PERSON_UID = E.PERSON_UID\r\n\t\t\tand pevempl_pidm = A.Person_uid\r\n\t\t\tAND A.EFFECTIVE_DATE = E.MAX_DATE\r\n\t\t\tAND A.POSITION = E.POSITION\r\n\t\t\tAND A.JOB_SUFFIX = E.JOB_SUFFIX\r\n\t\t\tAND A.PERSON_UID = SPRIDEN_PIDM\t\r\n\t\t\tAND POSITION_CONTRACT_TYPE = \'P\' /*P - primary, S- seconday, O - override*/\r\n\t\t\tAND SPRIDEN_CHANGE_IND IS NULL \r\n\t\t\tAND A.PERSON_UID = AP_EMPLOYEE.PERSON_UID\r\n\t\t\tAND EMPLOYEE_STATUS <> \'T\'\r\n\t\t\tAND POSITION_STATUS <> \'T\'\r\n\t\t\tand pevempl_ethn_code = \'60\'\r\n\t\t\tand pevempl_ecls_code = \'AE\'\r\n\t\t\tand ( pevempl_sex = \'M\' or pevempl_sex = \'F\' )\r\n') /home/robowman/public_html/class/ROBDB_Oracle_Connect.php:133 1.5342 367328 >=> resource(3) of type (oci8 statement) 1.5343 367328 +1688 -> ROBDB_Query->execute_statement() /home/robowman/public_html/query/debug.query.php:106 1.5343 367328 +0 -> oci_execute(resource(3) of type (oci8 statement)) /home/robowman/public_html/class/ROBDB_Oracle_Connect.php:144 1.5526 380784 >=> TRUE 1.5526 380784 +13456 -> ROBDB_Query->fetch_all() /home/robowman/public_html/query/debug.query.php:108 1.5526 380808 +24 -> oci_fetch_all(resource(3) of type (oci8 statement), '') /home/robowman/public_html/class/ROBDB_Oracle_Connect.php:184 The file just ends here with a core dump. version: 1 creator: xdebug 2.4.0 (PHP 7.0.3-5+deb.sury.org~trusty+1) cmd: /home/robowman/public_html/view.debug.query.php part: 1 positions: line events: Time fl=(1) php:internal fn=(1) php::session_start 20 77 fl=(1) fn=(2) php::define 20 10 fl=(1) fn=(2) 23 2 fl=(1) fn=(2) 24 2 fl=(1) fn=(2) 25 1 fl=(1) fn=(2) 26 0 fl=(1) fn=(2) 28 0 fl=(2) /home/robowman/public_html/inc/config.php fn=(3) require_once::/home/robowman/public_html/inc/config.php 1 237 cfl=(1) cfn=(2) calls=1 0 0 20 10 cfl=(1) cfn=(2) calls=1 0 0 23 2 cfl=(1) cfn=(2) calls=1 0 0 24 2 cfl=(1) cfn=(2) calls=1 0 0 25 1 cfl=(1) cfn=(2) calls=1 0 0 26 0 cfl=(1) cfn=(2) calls=1 0 0 28 0 fl=(3) /home/robowman/public_html/class/ROBDB_Oracle_Connect.php fn=(4) require_once::/home/robowman/public_html/class/ROBDB_Oracle_Connect.php 1 1 fl=(1) fn=(5) php::oci_connect 26 1532376 fl=(3) fn=(6) ROBDB_Oracle->__construct 23 128 cfl=(1) cfn=(5) calls=1 0 0 26 1532376 fl=(3) fn=(7) ROBDB_Query->__construct 82 41 cfl=(3) cfn=(6) calls=1 0 0 84 1532504 fl=(3) fn=(8) ROBDB_Query::getInstance 93 207 cfl=(3) cfn=(7) calls=1 0 0 96 1532545 fl=(1) fn=(9) php::oci_parse 133 109 fl=(3) fn=(10) ROBDB_Query->prepareStatement 131 195 cfl=(1) cfn=(9) calls=1 0 0 133 109 fl=(3) fn=(11) ROBDB_Query->set_query 108 58 cfl=(3) cfn=(10) calls=1 0 0 110 305 fl=(1) fn=(12) php::oci_execute 144 18215 fl=(3) fn=(13) ROBDB_Query->execute_statement 142 77 cfl=(1) cfn=(12) calls=1 0 0 144 18215