PHP Bugs  
php.net | support | documentation | report a bug | advanced search | search howto | statistics | login

go to bug id or search bugs for  

Bug #40805 Failure executing function ibase_execute()
Submitted:14 Mar 2007 6:06pm UTC Modified: 16 Mar 2007 1:17am UTC
From:michael at bluemoon dot com Assigned to:
Status:Closed Category:InterBase related
Version:5.2.1 OS:Red Hat Ent. Linux WS rel 4
View/Vote Developer Edit Submission

Welcome! If you don't have a SVN account, you can't do anything here. You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
SVN Username: SVN Password:
Quick Fix:
Status: Assign to:
Category:
Summary:
From: michael at bluemoon dot com
New email:
Version: OS:
New/Additional Comment:

[14 Mar 2007 6:06pm UTC] michael at bluemoon dot com
Description:
------------
Script fails when it encounters ibase_execute() function; blank white
screen is displayed.

No problem in PHP 5.2.0. Stopped working in 5.2.1.

No exception is thrown. No errors/warnings shown when running w/
error_reporting(E_ALL).

If I insert die('Hello, world!') immediately before line containing
ibase_execute() statement, screen outputs "Hello, world!" If I insert
same die() statement after ibase_execute(), I just get a blank screen.

Reproduce code:
---------------
Not possible to paste a discrete, reproducible snippet from my own
codebase here, given the unique attributes of my database connection,
but this is the gist of what I am trying to do:

$query = "UPDATE CUSTOMER SET FIELD2 = ?, FIELD3 = ? WHERE FIELD1 =
'A'";

// $trh is resource ID of current transaction
if ($result = ibase_prepare($trh, $query)) {
  if (ibase_execute($result, 'B', 'C')) echo "Operation Successful";
  else echo "Operation Failed";
}

Expected result:
----------------
"Operation Successful" or "Operation Failed"

Actual result:
--------------
<blank screen>
[14 Mar 2007 6:11pm UTC] tony2001@php.net
Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5.2-win32-latest.zip

[15 Mar 2007 2:52am UTC] michael at bluemoon dot com
Tried the latest CVS snapshot; same problem.
[15 Mar 2007 1:00pm UTC] tony2001@php.net
Check your Apache error_log.
[15 Mar 2007 4:28pm UTC] michael at bluemoon dot com
Checked Apache error_log. This is the entry that is logged at time of
failure:

[Thu Mar 15 11:22:59 2007] [notice] child pid 29396 exit signal
Segmentation fault (11)
[15 Mar 2007 4:37pm UTC] tony2001@php.net
Thank you for this bug report. To properly diagnose the problem, we
need a backtrace to see what is happening behind the scenes. To
find out how to generate a backtrace, please read
http://bugs.php.net/bugs-generating-backtrace.php for *NIX and
http://bugs.php.net/bugs-generating-backtrace-win32.php for Win32

Once you have generated a backtrace, please submit it to this bug
report and change the status back to "Open". Thank you for helping
us make PHP better.

[15 Mar 2007 9:32pm UTC] michael at bluemoon dot com
For some reason, I can't seem to get a successful core dump.  Here is 
the backtrace though...

[root@test tmp]# gdb /usr/local/apache/sbin/httpd
GNU gdb Red Hat Linux (6.3.0.0-1.132.EL4rh)
Copyright 2004 Free Software Foundation, Inc. 
GDB is free software, covered by the GNU General Public License, and 
you are 
welcome to change it and/or distribute copies of it under certain 
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for 
details. 
This GDB was configured as "i386-redhat-linux-gnu"...Using host 
libthread_db lib
rary "/lib/tls/libthread_db.so.1".

(gdb) run -X
Starting program: /usr/local/apache/sbin/httpd -X
[Thread debugging using libthread_db enabled] 
[New Thread -1208407840 (LWP 19291)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1208407840 (LWP 19291)]
0x0028676a in __strptime_internal () from /lib/tls/libc.so.6
(gdb) bt 
#0  0x0028676a in __strptime_internal () from /lib/tls/libc.so.6
#1  0x00285728 in strptime () from /lib/tls/libc.so.6
#2  0x00e3a22c in _php_ibase_bind (sqlda=0xb7a57734, 
b_vars=0xbfe9b4b4,
    buf=0xb7a6963c, ib_query=0xb7b28170) 
    at /home/lee/php5.2-200703142330/ext/interbase/ibase_query.c:691
#3  0x00e3aeb0 in _php_ibase_exec (ht=484, return_value=0xb7aadd34,
    return_value_ptr=0x0, this_ptr=0x0, return_value_used=1,
    ib_resultp=0xbfe9bc64, ib_query=0xb7b28170, args=0xbfe9b4b4) 
    at /home/lee/php5.2-200703142330/ext/interbase/ibase_query.c:947
#4  0x00e3d48b in zif_ibase_execute (ht=484, return_value=0xb7aadd34,
    return_value_ptr=0x0, this_ptr=0x0, return_value_used=1)
    at /home/lee/php5.2-200703142330/ext/interbase/ibase_query.c:1843 
#5  0x01053369 in zend_do_fcall_common_helper_SPEC 
(execute_data=0xbfea0910)
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:200
#6  0x01057dc2 in ZEND_DO_FCALL_SPEC_CONST_HANDLER 
(execute_data=0xbfea0910) 
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:1681
#7  0x01052f7e in execute (op_array=0xb7ab61c8)
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:92
#8  0x0105da80 in ZEND_INCLUDE_OR_EVAL_SPEC_TMP_HANDLER ( 
    execute_data=0xbfea1e50)
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:4597
#9  0x01052f7e in execute (op_array=0xb7bad424)
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:92
#10 0x0105349e in zend_do_fcall_common_helper_SPEC 
(execute_data=0xbfea3200)
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:234
#11 0x01053d7f in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER 
(execute_data=0xbfea3200) 
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:322
#12 0x01052f7e in execute (op_array=0xb7be6684)
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:92
#13 0x0105349e in zend_do_fcall_common_helper_SPEC 
(execute_data=0xbfea8df0) 
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:234
#14 0x01053d7f in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER 
(execute_data=0xbfea8df0)
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:322
#15 0x01052f7e in execute (op_array=0xb7ee1978) 
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:92
#16 0x01033c86 in zend_execute_scripts (type=8, retval=0x0, 
file_count=3)
    at /home/lee/php5.2-200703142330/Zend/zend.c:1134
#17 0x00fecf36 in php_execute_script (primary_file=0xbfeab0c0) 
    at /home/lee/php5.2-200703142330/main/main.c:1788
#18 0x0109926d in php_handler (r=0x8adc500)
    at /home/lee/php5.2-200703142330/sapi/apache2handler/
sapi_apache2.c:623
#19 0x08092d36 in ap_run_handler (r=0x8adc500) at config.c:151
#20 0x08093101 in ap_invoke_handler (r=0x8adc500) at config.c:363
#21 0x080828c1 in ap_process_request (r=0x8adc500) at http_request.c:
246
#22 0x0807e5d5 in ap_process_http_connection (c=0x8ad1fe8) at 
http_core.c:250 
#23 0x0809c1ae in ap_run_process_connection (c=0x8ad1fe8) at 
connection.c:42
#24 0x08091511 in child_main (child_num_arg=47) at prefork.c:609
#25 0x08091705 in make_child (s=0x8932fa0, slot=0) at prefork.c:649
#26 0x080917cc in startup_children (number_to_start=8) at prefork.c:
721
---Type <return> to continue, or q <return> to quit---
#27 0x08091e9f in ap_mpm_run (_pconf=0xbfeab400, plog=0x8966188, 
s=0xbfeab404) 
    at prefork.c:940
#28 0x08096f4f in main (argc=2, argv=0xbfeab5a4) at main.c:617
[15 Mar 2007 9:38pm UTC] tony2001@php.net
Please do the following after generating the backtrace (type these
commands in GDB console):
f 2
p format
p t
p *t
p *b_var

And paste their output here. Thanks.
[15 Mar 2007 10:10pm UTC] michael at bluemoon dot com
Boy, you sure are making us work for this! :) Here you go...

[root@test tmp]# gdb /usr/local/apache/sbin/httpd
GNU gdb Red Hat Linux (6.3.0.0-1.132.EL4rh)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and 
you are 
welcome to change it and/or distribute copies of it under certain 
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for 
details. 
This GDB was configured as "i386-redhat-linux-gnu"...Using host 
libthread_db lib
rary "/lib/tls/libthread_db.so.1".

(gdb) run -X
Starting program: /usr/local/apache/sbin/httpd -X
[Thread debugging using libthread_db enabled] 
[New Thread -1208137504 (LWP 19391)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1208137504 (LWP 19391)]
0x0028676a in __strptime_internal () from /lib/tls/libc.so.6
(gdb) bt 
#0  0x0028676a in __strptime_internal () from /lib/tls/libc.so.6
#1  0x00285728 in strptime () from /lib/tls/libc.so.6
#2  0x0108e22c in _php_ibase_bind (sqlda=0xb7a99734, 
b_vars=0xbfedb684,
    buf=0xb7aab63c, ib_query=0xb7b6a170) 
    at /home/lee/php5.2-200703142330/ext/interbase/ibase_query.c:691
#3  0x0108eeb0 in _php_ibase_exec (ht=484, return_value=0xb7aefd34,
    return_value_ptr=0x0, this_ptr=0x0, return_value_used=1,
    ib_resultp=0xbfedbe34, ib_query=0xb7b6a170, args=0xbfedb684) 
    at /home/lee/php5.2-200703142330/ext/interbase/ibase_query.c:947
#4  0x0109148b in zif_ibase_execute (ht=484, return_value=0xb7aefd34,
    return_value_ptr=0x0, this_ptr=0x0, return_value_used=1)
    at /home/lee/php5.2-200703142330/ext/interbase/ibase_query.c:1843 
#5  0x012a7369 in zend_do_fcall_common_helper_SPEC 
(execute_data=0xbfee0ae0)
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:200
#6  0x012abdc2 in ZEND_DO_FCALL_SPEC_CONST_HANDLER 
(execute_data=0xbfee0ae0) 
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:1681
#7  0x012a6f7e in execute (op_array=0xb7af81c8)
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:92
#8  0x012b1a80 in ZEND_INCLUDE_OR_EVAL_SPEC_TMP_HANDLER ( 
    execute_data=0xbfee2020)
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:4597
#9  0x012a6f7e in execute (op_array=0xb7bef424)
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:92
#10 0x012a749e in zend_do_fcall_common_helper_SPEC 
(execute_data=0xbfee33d0)
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:234
#11 0x012a7d7f in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER 
(execute_data=0xbfee33d0) 
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:322
#12 0x012a6f7e in execute (op_array=0xb7c28684)
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:92
#13 0x012a749e in zend_do_fcall_common_helper_SPEC 
(execute_data=0xbfee8fc0) 
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:234
#14 0x012a7d7f in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER 
(execute_data=0xbfee8fc0)
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:322
#15 0x012a6f7e in execute (op_array=0xb7f23978) 
    at /home/lee/php5.2-200703142330/Zend/zend_vm_execute.h:92
#16 0x01287c86 in zend_execute_scripts (type=8, retval=0x0, 
file_count=3)
    at /home/lee/php5.2-200703142330/Zend/zend.c:1134
#17 0x01240f36 in php_execute_script (primary_file=0xbfeeb290) 
    at /home/lee/php5.2-200703142330/main/main.c:1788
#18 0x012ed26d in php_handler (r=0x969a4b8)
    at /home/lee/php5.2-200703142330/sapi/apache2handler/
sapi_apache2.c:623
#19 0x08092d36 in ap_run_handler (r=0x969a4b8) at config.c:151
#20 0x08093101 in ap_invoke_handler (r=0x969a4b8) at config.c:363
#21 0x080828c1 in ap_process_request (r=0x969a4b8) at http_request.c:
246
#22 0x0807e5d5 in ap_process_http_connection (c=0x968ffc0) at 
http_core.c:250 
#23 0x0809c1ae in ap_run_process_connection (c=0x968ffc0) at 
connection.c:42
#24 0x08091511 in child_main (child_num_arg=47) at prefork.c:609
#25 0x08091705 in make_child (s=0x94f0fa0, slot=0) at prefork.c:649
#26 0x080917cc in startup_children (number_to_start=8) at prefork.c:
721
#27 0x08091e9f in ap_mpm_run (_pconf=0xbfeeb5d0, plog=0x9524188, 
s=0xbfeeb5d4)
    at prefork.c:940
#28 0x08096f4f in main (argc=2, argv=0xbfeeb774) at main.c:617
(gdb) f 2
#2  0x0108e22c in _php_ibase_bind (sqlda=0xb7a99734, 
b_vars=0xbfedb684,
    buf=0xb7aab63c, ib_query=0xb7b6a170)
    at /home/lee/php5.2-200703142330/ext/interbase/ibase_query.c:691
691                                             if (!strptime
(Z_STRVAL_P(b_var), 
 format, t)) {
(gdb) p format
$1 = 0x13574bc "%Y-%m-%d %H:%M:%S"
(gdb) p t
$2 = (struct tm *) 0x0
(gdb) p *t
Cannot access memory at address 0x0
(gdb) p *b_var
$3 = {value = {lval = -1213666912, dval = 2.2742322573904564e-313, str 
= {
      val = 0xb7a8e9a0 "01/31/2099", len = 10}, ht = 0xb7a8e9a0, obj = 
{
      handle = 3081300384, handlers = 0xa}}, refcount = 1, type = 6 
'\006',
  is_ref = 0 '\0'} 
(gdb)
[15 Mar 2007 10:34pm UTC] tony2001@php.net
I can't test it myself, so please try the next snapshot (will be
available in a couple of hours), the issue should be fixed there.
Thanks.
[16 Mar 2007 1:17am UTC] michael at bluemoon dot com
Thank you so much!  The problem does now appear to be fixed.  We really

appreciate your diligence in pursuing this issue on our behalf.

RSS feed | show source 

PHP Copyright © 2001-2009 The PHP Group
All rights reserved.
Last updated: Sat Nov 21 10:30:49 2009 UTC