View Issue Details

IDProjectCategoryView StatusLast Update
0000249XdebugUncategorizedpublic2019-05-03 14:52
Reporterderick Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Summary0000249: Xdebug's error handler messes up with fatal to exception error conversions
Description

http://bugs.php.net/bug.php?id=34657

Additional Information

try {
$sc = new SoapClient("some.wsdl", array());
} catch (Exception $e) {
echo 'Error Caught';
}

TagsNo tags attached.
Operating System
PHP Version5.2-dev

Activities

jozef

2007-09-24 14:00

reporter   ~0000727

I just ran into the same problem.
I am instantiating a SoapServer with a WSDL file. When calling a method not in the WSDL the SoapServer dies with a fatal error, instead of returning a SoapFault. After disabling xdebug everything works as it should.

Is this going to be fixed?

jozef

2008-05-14 15:25

reporter   ~0000852

this is still an issue

cweiske

2009-02-03 15:00

reporter   ~0000911

We are also having this issue.

webbles

2009-08-26 18:07

reporter   ~0001057

It looks like the problem is that the soap extension registers its own zend_error_cb which checks if the error was caused by SOAP and if so, it converts the errors to exceptions. Xdebug also registers its own zend_error_cb and ignores the old_error_cb (except when disabling or destructing). It looks like the fix needed is to call the old_error_cb first and then to do the xdebug stuff. Or somehow make sure that Xdebug modifies the zend_error_cb before soap.

derick

2009-10-17 16:53

administrator   ~0001094

I can't detect very easily whether SOAP is in use, and chaining is also not possible as the old error handler already shows the warning. I added a hack that should prevent Xdebug from using its error handler in case SOAP is in use (by checking for the HTTP_SOAPACTION $_SERVER variable. This seems to alleviate the issue for me. I added this "hack" in Xdebug CVS (HEAD only).