#36764 [Opn->Csd]: pdo_oci hangs apache
| From: | tony2001@php.net | Date: | Sat, 18 Mar 2006 22:10:10 +0000 |
| Subject: | #36764 [Opn->Csd]: pdo_oci hangs apache | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-94548@lists.php.net to get a copy of this message | ||
ID: 36764
Updated by: tony2001@php.net
Reported By: mauroi at digbang dot com
-Status: Open
+Status: Closed
Bug Type: PDO related
Operating System: Win XP SP2
PHP Version: 5CVS-2006-03-16 (snap)
New Comment:
Thanks for the patch, applied.
But it will be used only if the client library supports those types
(i.e. version >= 10.x).
Previous Comments:
------------------------------------------------------------------------
[2006-03-18 22:40:49] mauroi at digbang dot com
Oracle server is working (thank god :o) ).
But I'm terribly sorry I made a mistake and forgot to deactivate the
user_error_handler. So this is the warning I get on Linux:
"PDOStatement::fetch() [function.fetch]: column 0 data was too large
for buffer and was truncated to fit it
at PDOStatement->fetch in [...]temp.php:6"
On windows, as I said, it hangs.
I changed pdo_oci/oci_statement.c with the following patch, and it
seems to work:
http://webmail.digbang.com/patch_binary_float.txt
Thanks in advance.
------------------------------------------------------------------------
[2006-03-18 21:55:09] tony2001@php.net
>gdb only shows "Detaching after fork from child process xxxx".
Please try to run the script with PHP CLI binary.
And check the server - maybe the problem is that Oracle _server_
crashes?
------------------------------------------------------------------------
[2006-03-18 21:52:03] mauroi at digbang dot com
Well, I tried to generate a backtrace but there's no real crash here.
On windows it hangs, on linux the script doesn't finish (it stops after
the fetch, but with no segfault). gdb only shows "Detaching after fork
from child process xxxx".
Is there anything else I can do?
(I can use another datatype. Maybe you could wait for someone that
can't live without binary_float).
Thanks....
------------------------------------------------------------------------
[2006-03-18 21:13:03] 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.
All I get is:
array(2) {
["FIELD"]=>
string(4) "1.0E"
[0]=>
string(4) "1.0E"
}
(I did "insert into foo values (1)")
------------------------------------------------------------------------
[2006-03-18 20:54:55] mauroi at digbang dot com
I'm using oracle instant client (on windows), and oracle 10R2 on linux
also.
I tried this script on linux (centos4, same machine):
$conn = new PDO('oci:dbname= :o)', 'user', 'pass');
$a = $conn->prepare('SELECT * FROM foo');
var_dump($a->execute());
echo 'aa';
var_dump($a->fetch());
echo 'bb';
and got this:
"bool(true) aa"
(row information and bb missing)
I don't get anything wrong in the error_log. Just the usual line in the
access_log.
Did you insert data on the table? With an empty table it doesn't
happen.
Thank you.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/36764
--
Edit this bug report at http://bugs.php.net/?id=36764&edit=1