Edit report at https://bugs.php.net/bug.php?id=63486&edit=1
ID: 63486
Comment by: suchy63 at hotmail dot com
Reported by: derick@php.net
Summary: mysqli_free_result leave the resource variable in a
messy state
Status: Verified
Type: Bug
Package: MySQLi related
PHP Version: 5.4.8
Assigned To: mysql
Block user comment: N
Private report: N
New Comment:
I'm experiencing this problem as well, both in 5.4 and 5.5, and it's very problematic. It
makes it impossible for me to upgrade past 5.3. Our application has a custom error handler which
throws an exception if error is below the reporting level. I an unable to step over the code after a
breakpoint. The error handler is triggered and I am booted to the error page after an uncaught
exception.
Previous Comments:
------------------------------------------------------------------------
[2013-05-08 06:20:57] hugh dot messenger at gmail dot com
Just wondering if anyone has given this any thought recently? It's been
absolutely crippling my xdebug usage since upgrading to 5.4.14 a month ago. I'd
vote for including it in the next release of 5.4, given that as far as I can tell,
most of the world is only just now starting to move from 5.3 to 5.4 as their
minimum requirement / standard development version, so punting this till 5.5 is
going to mean a long time for us work-a-day application developers having to deal
with page upon page upon page of "can't fetch result" and "property access"
warnings on xdebug sessions. Or at the very least, make it a notice instead of a
warning. My $0.02.
------------------------------------------------------------------------
[2013-01-30 12:56:09] dev at pp3345 dot net
Hello,
I've also experienced this bug in the past, using reflection on a freed resource.
Are there any news on when the bug fix will be included in PHP? I think it
wouldn't be a problem to include it in the next PHP 5.4/5.3 release since a ton of
warnings isn't intended behavior. At least it should be in PHP 5.5.
------------------------------------------------------------------------
[2012-11-23 10:20:17] uw@php.net
Thanks for the patch. It seems straight forward , however, it changes behaviour in case of user
errors. This makes me wonder in which PHP version it should go.
Current behaviour:
a) var_dump() - the XDebug view
res->free();
var_dump(res) <-- throws a ton of warnings
b) Invalid property access - user error: why access free'd resource?
res->free();
var_dump(res->lengths) <--- throws a ton of warnings
c) Invalid method access - user error: why access free'd resource?
res->free();
res->free(); <--- trows a ton of warnings
In all three cases the user is confronted with warnings that he could ignore, if he wanted. The
patch leaves the user with:
a) var_dump() - the XDebug view
res->free()
var_dump(res) <-- Warning on accessing free'd resource is gone
b)
res->free();
var_dump(res->lengths) <-- Notice
var_dump(res) <-- Warning gone
In sum: user gets less hints about his, well, "why are you doing that"-code.
c)
res->free();
res->free(); <-- Fatal
Application that used to work now throws fatal
Please, note that I am not saying no to fixing the var_dump() issue. Trying to explain the side
effects of the proposed patch and asking what PHP version would qualify for such a change.
------------------------------------------------------------------------
[2012-11-15 17:17:16] uw@php.net
Derick, thanks a lot for the patch. All three of us MySQL guys are at a team meeting. We will fly
back home tomorrow morning. We can have a look once home and no more tired (flight goes at 6:xx am).
------------------------------------------------------------------------
[2012-11-11 12:53:01] derick@php.net
The following patch has been added/updated:
Patch Name: mysqli-clear-result-cleanup
Revision: 1352638381
URL: https://bugs.php.net/patch-display.php?bug=63486&patch=mysqli-clear-result-cleanup&revision=1352638381
------------------------------------------------------------------------
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
https://bugs.php.net/bug.php?id=63486
--
Edit this bug report at https://bugs.php.net/bug.php?id=63486&edit=1