ID: 48754
Comment by: empacc100 at seznam dot cz
Reported By: busia at tiscali dot it
Status: Verified
Bug Type: MySQL related
Operating System: *
PHP Version: 5.3.0 (as of 21-07-2008)
Assigned To: mysql
New Comment:
WinXP SP3, PHP 5.3.0 VC9 TS, Apache 2.2.13 (apachelounge) + mod_fcgid
2.2b, MySQL 5.1.37 == same bug (php-cgi.exe crash)
/*
* php-cgi.exe OK
*/
$a=mysql_connect('127.0.0.1:3306', 'root', 'fdgdfgd'));
mysql_close($a);
/*
* php-cgi.exe CRASH
*/
mysql_connect('127.0.0.1:3306', 'root', 'fdgdfgd'));
mysql_close();
Previous Comments:
------------------------------------------------------------------------
[2009-08-26 05:13:12] jfb at zer7 dot com
I get this as well. I had avoided upgrading my ancient PHP code (some
of it was from PHP4); turns out it being that ancient also means it uses
old patterns, like not using handles. :)
Likely that newer code will not encounter this, so it'll be folks
upgrading slowly and cautiously.
------------------------------------------------------------------------
[2009-07-16 14:34:19] guillermog at tricuspide dot com
Still in the release, I really think lot's of people are having the
same
problem with their sctripts!!
I filled a bug report hours ago to later accidentally find that it was
a
very simple problem. Once I found the problem I looked for mysql_close
and version 5.3 to find this bug report.
Uff finnally after the whole day!!!
Regards,
Guillermo
------------------------------------------------------------------------
[2009-07-14 01:50:03] sujoe_2006 at 163 dot com
my development evioronment is
windows xp sp2
apache 2.2
php 5.3.0
mysql 5.1.36
I write some code in test.php
<?php
$conn = mysql_connect('ip','user','password');
mysql_close();
?>
then ,I Will be catched a error by apache 2.2,it is:
"...
0x006e2072 in httpd.exe: 0xC0000005:
Access violation when reading location 0x00000000.
..."
but when check the mysql_close function like this for test.php
<?php
$conn = mysql_connect('ip','user','password');
mysql_close($conn);
?>
it will work no any error.
so ,i want to know its reason of the mysql_close(),please mail to me
Thanks!
------------------------------------------------------------------------
[2009-07-07 14:47:28] xektrum at gmail dot com
Description:
------
I can confirm this, I'm having the same issue with php 5.3 and apache2
when calling mysql_close without a mysql_link as parameter.
Reproduce code:
------
<?php
mysql_connect('localhost','root','password');
mysql_close(); // win32 uncaught exception catched by MSVS
?>
Workaround/not crashing:
------
<?php
$link = mysql_connect('localhost','root','password');
mysql_close($link);
?>
Exception :
------
Not handled Exception in 0x006e2072 in httpd.exe: 0xC0000005:
Access violation when reading location 0x00000000.
Note : The Exception has been translated so it is not literal
------------------------------------------------------------------------
[2009-07-02 16:45:00] [email protected]
Really a great one.
The bug exists since 21-07-2008. That is 11 months and 1 week ago.
Sometimes I which users would try non-GA versions just in case test
suites don't catch issues...
This is when the bug was introduced:
http://cvs.php.net/viewvc.cgi/php-src/ext/mysql/php_mysql.c?r1=1.213.2.6.2.16.2.22&r2=1.213.2.6.2.16.2.23&
mysql_link points to NULL and that's causing a crash.
Possible workaround (as suggested by Johannes):
nixn...@linux-en61:~/src/login/php5> cvs diff ext/mysql/tests/
cvs diff: Diffing .
cvs diff: Diffing ext
cvs diff: Diffing ext/mysql
cvs diff: Diffing ext/mysql/tests
nixn...@linux-en61:~/src/login/php5> cvs diff ext/mysql/
cvs diff: Diffing ext/mysql
Index: ext/mysql/php_mysql.c
===================================================================
RCS file: /repository/php-src/ext/mysql/php_mysql.c,v
retrieving revision 1.213.2.6.2.16.2.37
diff -r1.213.2.6.2.16.2.37 php_mysql.c
372a373,376
> #ifdef MYSQL_USE_MYSQLND
> mysqlnd_end_psession(link->conn);
> #endif
>
987,995c991
< #ifdef MYSQL_USE_MYSQLND
< {
< int tmp;
< if ((mysql = zend_list_find(Z_RESVAL_P(mysql_link),
&tmp)) && tmp == le_plink) {
< mysqlnd_end_psession(mysql->conn);
< }
< }
< #endif
< if (mysql_link) { /* explicit resource number */
---
> if (mysql_link) {
cvs diff: Diffing ext/mysql/tests
Someone may want to review that.
------------------------------------------------------------------------
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/48754
--
Edit this bug report at http://bugs.php.net/?id=48754&edit=1