Bug #10408: Bad Sybase-CTlib closing
| From: | ocomte at guarantycity dot com | Date: | Thu, 19 Apr 2001 19:18:52 +0000 |
| Subject: | Bug #10408: Bad Sybase-CTlib closing | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-52002@lists.php.net to get a copy of this message | ||
From: ocomte@guarantycity.com
Operating system: Sun Solaris and Linux
PHP version: 4.0.4pl1
PHP Bug Type: Sybase-ct (ctlib) related
Bug description: Bad Sybase-CTlib closing
if you run this script :
<html>
<body>
<?
// error handler function
// this function NEVER RETURN (all errors are FATAL) !!
function myErrorHandler($errno,$ErrorMsg)
{ global $connect_id;
echo $ErrorMsg,'</body></html>'; // I want to see this one !!!
exit(); // global exit of php
}
//MAIN PGM:
// set to the user defined error handler
set_error_handler('myErrorHandler');
$connect_id=sybase_connect('MyServer','MyLogin','MyPassword');
if (!$connect_id)
echo "An error in sybase_query !!<br>"; // I don't want to see this message
else
{ $res=sybase_query('select * from toto',$connect_id);
if (!$res)
echo "An error in sybase_query !!<br>"; // I don't want to see this message
too
else
echo 'No error';
}
?>
</html>
</body>
and that the table toto doesn't exist you trigger the myErrorHandler and the script terminate
as intended. The problem is that Sybase doesn't seem aware of this and the process will live
forever even if it doesn't allow Sybase query any more. So if you run this script a few times
all the processes will be sleeping and you will no more be able to make a Sybase query. I think
there is a problem in the way you handle the Sybase connexion in a error handler with an exit()
call.
--
Edit Bug report at: http://bugs.php.net/?id=10408&edit=1