#25942 [Opn]: When non-local OCILogon call fails, PEAR::SOAP enters recursive loop
| From: | jpatrin at pnicorp dot com | Date: | Mon, 27 Oct 2003 20:35:57 +0000 |
| Subject: | #25942 [Opn]: When non-local OCILogon call fails, PEAR::SOAP enters recursive loop | ||
| References: | 1 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-23063@lists.php.net to get a copy of this message | ||
ID: 25942
User updated by: jpatrin at pnicorp dot com
Reported By: jpatrin at pnicorp dot com
Status: Open
Bug Type: PEAR related
Operating System: Linux
PHP Version: 4.3.3
New Comment:
I have just tested it with mysql:// instead of oci8:// and the same
thing happens. This looks more and more like a problem with
PEAR::SOAP's error handling function.
Previous Comments:
------------------------------------------------------------------------
[2003-10-21 19:57:21] jpatrin at pnicorp dot com
I completely forgot to mention that if I set my own error handling
function for the duration of the connect that this all works fine. This
is shown in the example code given.
(This is very strange to me as I'm using the PEAR DB class, which does
its own error handling.)
------------------------------------------------------------------------
[2003-10-21 19:54:39] jpatrin at pnicorp dot com
Description:
------------
Using PEAR::SOAP 0.8RC2.
When a SOAP Server class method calls a method (in the case I tested,
it is the PEAR::DB::connect method) which calls OCILogon and it fails,
the SOAP server enters an infinite loop (after the server function
ends) and segfaults the apache child process. The infinite loop seems
to be in Base::_serializeValue (logging the values, names, and types
shows repetition of the same thing over and over).
If I do an OCILogon IN the server function, the soap server catches the
error fine and returns it.
Another possible bug. If I do the OCILogon IN the server function and
the length of the name of the server class and the length of the name
of the function called add up to more than 29, the same segfault
problem happens. For an example, try commenting out the OCILogon code
(and commenting the PEAR::DB code) in the abcde function and adding 'y'
to the class name.
None of this seems to happen when using mysql.
Reproduce code:
---------------
Sample scripts at URL provided.
http://www.reversefold.com/~papercrane/pearSoapError.tgz
Expected result:
----------------
Error: DB Error: connect failed
Actual result:
--------------
Error: curl_exec error 52 Empty reply from server
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=25942&edit=1