Edit report at https://bugs.php.net/bug.php?id=44852&edit=1

 ID:               44852
 Updated by:       php-bugs@lists.php.net
 Reported by:      der...@php.net
 Summary:          PDO_OCI crashes
-Status:           Feedback
+Status:           No Feedback
 Type:             Bug
 Package:          PDO related
 Operating System: Linux
 PHP Version:      5.*, 6CVS (2009-04-25)

 New Comment:

No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Open". Thank you.


Previous Comments:
------------------------------------------------------------------------
[2013-01-16 04:24:02] s...@php.net

See if this is resolved now that https://bugs.php.net/bug.php?id=57702 is fixed.

------------------------------------------------------------------------
[2009-04-25 15:01:13] j...@php.net

See also bug #44589

------------------------------------------------------------------------
[2008-04-28 09:14:12] der...@php.net

Issue #44589 is the same, but has a bit more information. Keeping both open as 
they complement each other. (The other one has a test script)

------------------------------------------------------------------------
[2008-04-28 09:12:12] der...@php.net

Description:
------------
PDO/OCI segfaults while describing columns. I gave a stab at a quick 
reproducing script, but did not manage unfortunately. I get this issue by 
running the WorkflowDatabaseTiein component test suite with:

php -dmemory_limit=-1 UnitTest/src/runtests.php -v -D 
oracle://ezc:wee123@ezctest/ezctest 
WorkflowDatabaseTiein/tests/execution_test.php

Reproduce code:
---------------
Database schema:

CREATE TABLE "execution" (
        "execution_id" number NOT NULL,
        "execution_next_thread_id" number NOT NULL,
        "execution_parent" number NOT NULL,
        "execution_started" number NOT NULL,
        "execution_threads" clob,
        "execution_variables" clob,
        "execution_waiting_for" clob,
        "workflow_id" number NOT NULL
)
CREATE SEQUENCE "execution_execution_id_seq" start with 1 increment by 1 
nomaxvalue
CREATE OR REPLACE TRIGGER "execution_execution_id_trg" before insert on 
"execution" for each row begin select "execution_execution_id_seq".nextval into 
:new."execution_id" from dual; end;
ALTER TABLE "execution" ADD CONSTRAINT "execution_pkey" PRIMARY KEY ( 
"execution_id" )
CREATE INDEX "execution_parent" ON "execution" ( "execution_parent" )
CREATE TABLE "execution_state" (
        "execution_id" number NOT NULL,
        "node_activated_from" clob NOT NULL,
        "node_id" number NOT NULL,
        "node_state" clob,
        "node_thread_id" number NOT NULL
)
ALTER TABLE "execution_state" ADD CONSTRAINT "execution_state_pkey" PRIMARY KEY 
( "execution_id", "node_id" )
CREATE TABLE "node" (
        "node_class" varchar2(255) NOT NULL,
        "node_configuration" clob,
        "node_id" number NOT NULL,
        "workflow_id" number NOT NULL
)
CREATE SEQUENCE "node_node_id_seq" start with 1 increment by 1 nomaxvalue
CREATE OR REPLACE TRIGGER "node_node_id_trg" before insert on "node" for each 
row begin select "node_node_id_seq".nextval into :new."node_id" from dual; end;
ALTER TABLE "node" ADD CONSTRAINT "node_pkey" PRIMARY KEY ( "node_id" )
CREATE INDEX "workflow_id" ON "node" ( "workflow_id" )
CREATE TABLE "node_connection" (
        "in_node_id" number NOT NULL,
        "out_node_id" number NOT NULL
)
CREATE INDEX "in_node_id" ON "node_connection" ( "in_node_id" )
CREATE TABLE "variable_handler" (
        "class" varchar2(255) NOT NULL,
        "variable" varchar2(255) NOT NULL,
        "workflow_id" number NOT NULL
)
ALTER TABLE "variable_handler" ADD CONSTRAINT "variable_handler_pkey" PRIMARY 
KEY ( "class", "workflow_id" )
CREATE TABLE "workflow" (
        "workflow_created" number NOT NULL,
        "workflow_id" number NOT NULL,
        "workflow_name" varchar2(64) NOT NULL,
        "workflow_version" number DEFAULT 1 NOT NULL
)
CREATE SEQUENCE "workflow_workflow_id_seq" start with 1 increment by 1 
nomaxvalue
CREATE OR REPLACE TRIGGER "workflow_workflow_id_trg" before insert on 
"workflow" for each row begin select "workflow_workflow_id_seq".nextval into 
:new."workflow_id" from dual; end;
ALTER TABLE "workflow" ADD CONSTRAINT "workflow_pkey" PRIMARY KEY ( 
"workflow_id" )
CREATE UNIQUE INDEX "name_version" ON "workflow" ( "workflow_name", 
"workflow_version" )


Actual result:
--------------
Segfault:

backtrace:

#0  0xb7447574 in kghualloc () from 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1
No symbol table info available.
#1  0xb73e865f in kohalc () from 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1
No symbol table info available.
#2  0xb73e7f4f in kohalc () from 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1
No symbol table info available.
#3  0xb73e8902 in kohalw () from 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1
No symbol table info available.
#4  0xb7283b83 in kollalfn () from 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1
No symbol table info available.
#5  0xb6d401d3 in kpugdesc () from 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1
No symbol table info available.
#6  0xb6e0e5a6 in OCIDescriptorAlloc () from 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1
No symbol table info available.
#7  0x08209985 in oci_stmt_describe (stmt=0xb30291a8, colno=2) at 
/root/src/php-5.2.5/ext/pdo_oci/oci_statement.c:553
        S = (pdo_oci_stmt *) 0xb32c384c
        param = (OCIParam *) 0x8959404
        colname = (text *) 0x8963b4c "node_configuration"
        dtype = 112
        data_size = 4000
        scale = 0
        precis = 0
        namelen = 18
        col = (struct pdo_column_data *) 0xb3031b40
        dyn = 0 '\0'
#8  0x081f94c0 in pdo_stmt_describe_columns (stmt=0xb30291a8) at 
/root/src/php-5.2.5/ext/pdo/pdo_stmt.c:198
        col = 2
#9  0x081fa38c in zim_PDOStatement_execute (ht=0, return_value=0xb3027f54, 
return_value_ptr=0x0, this_ptr=0xb32cb20c, return_value_used=0)
    at /root/src/php-5.2.5/ext/pdo/pdo_stmt.c:509
        input_params = (zval *) 0x0
        ret = 1
        stmt = (pdo_stmt_t *) 0xb30291a8
#10 0x0847d9e6 in execute_internal (execute_data_ptr=0xbfbd4f14, 
return_value_used=0) at /root/src/php-5.2.5/Zend/zend_execute.c:1385
        return_value_ptr = (zval **) 0xbfbd3f94
#11 0xb6525765 in xdebug_execute_internal (current_execute_data=0xbfbd4f14, 
return_value_used=0) at /tmp/pear/cache/xdebug-2.0.3/xdebug.c:1605
        edata = (zend_execute_data *) 0xbfbd4f14
        fse = (function_stack_entry *) 0x89d1ca8
        cur_opcode = (zend_op *) 0x0
        do_return = 1
        function_nr = 9158
#12 0x0847e093 in zend_do_fcall_common_helper_SPEC (execute_data=0xbfbd4f14) at 
/root/src/php-5.2.5/Zend/zend_vm_execute.h:202
        return_reference = 0 '\0'
        opline = (zend_op *) 0xb31a6400
        original_return_value = (zval **) 0x847fa09
        current_scope = (zend_class_entry *) 0xb3197098
        current_this = (zval *) 0xb3021d94
        return_value_used = 0
        should_change_scope = 1 '\001'
        ctor_opline = (zend_op *) 0xb654c19c
#13 0x0847ecc7 in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER (execute_data=0xbfbd4f14) 
at /root/src/php-5.2.5/Zend/zend_vm_execute.h:322
No locals.
#14 0x0847dbe0 in execute (op_array=0xb3215f08) at 
/root/src/php-5.2.5/Zend/zend_vm_execute.h:92
        execute_data = {opline = 0xb31a6400, function_state = 
{function_symbol_table = 0xb32c2504, function = 0x88125e0, reserved = 
{0xbfbd7274, 0xbfbd50d4, 0xbfbd4f58, 
      0xb6523748}}, fbc = 0x88125e0, op_array = 0xb3215f08, object = 
0xb32cb20c, Ts = 0xbfbd3860, CVs = 0xbfbd3810, original_in_execution = 1 
'\001', 
  symbol_table = 0xb32ab6f8, prev_execute_data = 0xbfbd5f34, 
old_error_reporting = 0x0}
#15 0xb65253f7 in xdebug_execute (op_array=0xb3215f08) at 
/tmp/pear/cache/xdebug-2.0.3/xdebug.c:1541
        dummy = (zval **) 0x0
        edata = (zend_execute_data *) 0xbfbd5f34
        fse = (function_stack_entry *) 0x89ce800
        xfse = (function_stack_entry *) 0x5
        magic_cookie = 0x0
        do_return = 1
        function_nr = 9032
        le = (xdebug_llist_element *) 0xbfbd5038
        eval_id = 0
#16 0x0847e1f7 in zend_do_fcall_common_helper_SPEC (execute_data=0xbfbd5f34) at 
/root/src/php-5.2.5/Zend/zend_vm_execute.h:234
        opline = (zend_op *) 0xb309d7f8
        original_return_value = (zval **) 0xbfbd61a8
        current_scope = (zend_class_entry *) 0xb310be10
        current_this = (zval *) 0xb302b098
        return_value_used = 1
        should_change_scope = 1 '\001'
        ctor_opline = (zend_op *) 0xb654c19c
#17 0x0847ecc7 in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER (execute_data=0xbfbd5f34) 
at /root/src/php-5.2.5/Zend/zend_vm_execute.h:322
No locals.
#18 0x0847dbe0 in execute (op_array=0xb3096670) at 
/root/src/php-5.2.5/Zend/zend_vm_execute.h:92
        execute_data = {opline = 0xb309d7f8, function_state = 
{function_symbol_table = 0xb32ab6f8, function = 0xb3215f08, reserved = 
{0xbfbd7274, 0xbfbd60d8, 0xbfbd5f78, 
      0xb6523748}}, fbc = 0xb3215f08, op_array = 0xb3096670, object = 
0xb3021d94, Ts = 0xbfbd50f0, CVs = 0xbfbd50b0, original_in_execution = 1 
'\001', 
  symbol_table = 0xb32ab8fc, prev_execute_data = 0xbfbd61d4, 
old_error_reporting = 0x0}
#19 0xb65253f7 in xdebug_execute (op_array=0xb3096670) at 
/tmp/pear/cache/xdebug-2.0.3/xdebug.c:1541
        dummy = (zval **) 0x0
        edata = (zend_execute_data *) 0xbfbd61d4
        fse = (function_stack_entry *) 0x89c3760
        xfse = (function_stack_entry *) 0x19
        magic_cookie = 0x0
        do_return = 1
        function_nr = 8930
        le = (xdebug_llist_element *) 0xbfbd6058
        eval_id = 0
#20 0x0847e1f7 in zend_do_fcall_common_helper_SPEC (execute_data=0xbfbd61d4) at 
/root/src/php-5.2.5/Zend/zend_vm_execute.h:234
        opline = (zend_op *) 0xb3105fa0
        original_return_value = (zval **) 0xbfbd67b8
        current_scope = (zend_class_entry *) 0xb310be10
        current_this = (zval *) 0xb302b098
        return_value_used = 0
        should_change_scope = 1 '\001'
        ctor_opline = (zend_op *) 0xb654c19c
#21 0x0847ecc7 in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER (execute_data=0xbfbd61d4) 
at /root/src/php-5.2.5/Zend/zend_vm_execute.h:322
No locals.

(goes on for a bit - it's not a stack overflow)

The functions that I am calling just around it segfaulting:

 -> ezcQuerySelectOracle->prepare() 
/root/ezcomponents/trunk/WorkflowDatabaseTiein/src/definition_storage.php:94
   -> ezcQuery->prepare() 
/root/ezcomponents/trunk/Database/src/sqlabstraction/implementations/query_select_oracle.php:176
     -> ezcQuerySelectOracle->getQuery() 
/root/ezcomponents/trunk/Database/src/sqlabstraction/query.php:432
       -> ezcQuerySelect->getQuery() 
/root/ezcomponents/trunk/Database/src/sqlabstraction/implementations/query_select_oracle.php:143
        >=> 'SELECT "node_id", "node_class", "node_configuration" FROM "node" 
WHERE "workflow_id" = :ezcValue1'
      >=> 'SELECT "node_id", "node_class", "node_configuration" FROM "node" 
WHERE "workflow_id" = :ezcValue1'
     -> PDO->prepare('SELECT "node_id", "node_class", "node_configuration" FROM 
"node" WHERE "workflow_id" = :ezcValue1') 
/root/ezcomponents/trunk/Database/src/sqlabstraction/query.php:432
      >=> class PDOStatement { public $queryString = 'SELECT "node_id", 
"node_class", "node_configuration" FROM "node" WHERE "workflow_id" = 
:ezcValue1' }
     -> ezcQuery->doBind($stmt = class PDOStatement { public $queryString = 
'SELECT "node_id", "node_class", "node_configuration" FROM "node" WHERE 
"workflow_id" = :ezcValue1' }) 
/root/ezcomponents/trunk/Database/src/sqlabstraction/query.php:433
       -> PDOStatement->bindValue(':ezcValue1', 1, 2) 
/root/ezcomponents/trunk/Database/src/sqlabstraction/query.php:393
        >=> TRUE
      >=> NULL
    >=> class PDOStatement { public $queryString = 'SELECT "node_id", 
"node_class", "node_configuration" FROM "node" WHERE "workflow_id" = 
:ezcValue1' }
  >=> class PDOStatement { public $queryString = 'SELECT "node_id", 
"node_class", "node_configuration" FROM "node" WHERE "workflow_id" = 
:ezcValue1' }
 -> PDOStatement->execute() 
/root/ezcomponents/trunk/WorkflowDatabaseTiein/src/definition_storage.php:95


valgrind:

==8810== 
==8810== Invalid write of size 4
==8810==    at 0x4EC3574: kghualloc (in 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x4E6465E: (within 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x4E63F4E: kohalc (in 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x4E64901: kohalw (in 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x4CFFB82: kollalfn (in 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x47BC1D2: kpugdesc (in 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x488A5A5: OCIDescriptorAlloc (in 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x8209984: oci_stmt_describe (oci_statement.c:553)
==8810==    by 0x81F94BF: pdo_stmt_describe_columns (pdo_stmt.c:198)
==8810==    by 0x81FA38B: zim_PDOStatement_execute (pdo_stmt.c:509)
==8810==    by 0x847D9E5: execute_internal (zend_execute.c:1385)
==8810==    by 0x5AB6764: xdebug_execute_internal (xdebug.c:1605)
==8810==  Address 0x3D34 is not stack'd, malloc'd or (recently) free'd
==8810== 
==8810== Process terminating with default action of signal 11 (SIGSEGV)
==8810==  Access not within mapped region at address 0x3D34
==8810==    at 0x4EC3574: kghualloc (in 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x4E6465E: (within 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x4E63F4E: kohalc (in 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x4E64901: kohalw (in 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x4CFFB82: kollalfn (in 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x47BC1D2: kpugdesc (in 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x488A5A5: OCIDescriptorAlloc (in 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x8209984: oci_stmt_describe (oci_statement.c:553)
==8810==    by 0x81F94BF: pdo_stmt_describe_columns (pdo_stmt.c:198)
==8810==    by 0x81FA38B: zim_PDOStatement_execute (pdo_stmt.c:509)
==8810==    by 0x847D9E5: execute_internal (zend_execute.c:1385)
==8810==    by 0x5AB6764: xdebug_execute_internal (xdebug.c:1605)
==8810== 
==8810== Invalid free() / delete / delete[]
==8810==    at 0x401CFA5: free (vg_replace_malloc.c:233)
==8810==    by 0x560CE4D: (within /lib/tls/libc-2.3.6.so)
==8810==    by 0x560C601: __libc_freeres (in /lib/tls/libc-2.3.6.so)
==8810==    by 0x40191F6: _vgnU_freeres (vg_preloaded.c:60)
==8810==    by 0x5393863: (within 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x4E6465E: (within 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x4E63F4E: kohalc (in 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x4E64901: kohalw (in 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x4CFFB82: kollalfn (in 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x47BC1D2: kpugdesc (in 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x488A5A5: OCIDescriptorAlloc (in 
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libclntsh.so.10.1)
==8810==    by 0x8209984: oci_stmt_describe (oci_statement.c:553)
==8810==  Address 0x5722720 is not stack'd, malloc'd or (recently) free'd




------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=44852&edit=1

Reply via email to