ID: 41350 Comment by: w dot ashcroft at redfoxuk dot com Reported By: graham at directhostinguk dot com Status: Feedback Bug Type: MySQL related Operating System: Windows 2003 PHP Version: 5.2.3 Assigned To: scottmac New Comment:
Confirmed on Windows 2003 with IIS6 using MS FastCGI; using libmysql.dll (v5.0.22) from PHP 5.2.1 fixes the problem and massively improves PHP speed globally. Previous Comments: ------------------------------------------------------------------------ [2007-09-26 10:29:02] chris at crgs dot co dot uk Have just tried the latest PHP 5.2 snapshot from http://snaps.php.net/ - *still* doesn't work. I am reproducing this on the most basic machine I can, a Windows 2000 Professional VM (Virtual PC 2007) with all security updates. There is nothing else on the PC, not even a MySQL install, just PHP (see below for settings), but I am still getting the error. However the error *DOES NOT ALWAYS OCCUR*, especially when I just use 'php -v'. Sometimes I have to run this command quite a few times before the error occurs - it comes up maybe 2 times out of 10. When I run it on my main box, outside the virtual machine, 'php -v' doesn't seem to trigger the error much at all: however, using a slightly more complicated command like 'php-cgi test.php' where test.php contains '<?php phpinfo(); ?>' triggers the error more often, even outside the VM. Are we looking at a race condition? Can people post the specification of their boxes as well? Mine is an Intel Pentium D 3.4Ghz (dual core) w/ 2GB RAM. Of course inside the virtual machine there's only one processor, which might explain partly why the error occurs more often inside the VM, although I don't think it's a single/multi-processor issue at heart, as I can still repro the issue on a dual core PC, just less often. Perhaps it's only an issue on slower machines? Scott, what's your spec? Here is what I did: Download php5.2-win32-200709260830.zip from http://snaps.php.net/ Extract to C:\PHP Append ';C:\PHP' to the PATH environment variable Add PHPRC environment variable, set to 'C:\PHP\php.ini' Copy php.ini-recommended to php.ini Change the following settings: extension_dir = "c:\php\ext\" extension=php_mysql.dll Run 'c:\PHP\php-cgi.exe -v' Returns (after a roughly 2 second pause): PHP 5.2.5-dev (cli) (built: Sep 26 2007 04:04:42) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies Error in my_thread_global_end(): 1 threads didn't exit By the way, I also tried setting mysql.allow_persistent = Off, as suggested in some of the comments, but it didn't help in either environment (VM or real). ------------------------------------------------------------------------ [2007-09-25 17:55:03] daniel dot gaddis at tlc dot state dot tx dot us php -v returned the error using PHP 5.2.5-dev (cli) (built: Sep 9 2007 12:04:32). See mysql and apache version info below. F:\php>php -v PHP 5.2.5-dev (cli) (built: Sep 9 2007 12:04:32) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies Error in my_thread_global_end(): 1 threads didn't exit F:\MySQL\bin>mysqladmin --user=xxxx --password=xxxx version mysqladmin Ver 8.41 Distrib 5.0.45, for Win32 on ia32 Copyright (C) 2000-2006 MySQL AB This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL license Server version 5.0.45-community-nt-log Protocol version 10 Connection localhost via TCP/IP TCP port 3306 Uptime: 9 min 57 sec Threads: 1 Questions: 4 Slow queries: 0 Opens: 12 Flush tables: 1 Open tabl es: 6 Queries per second avg: 0.007 F:\Program Files\Apache Group\Apache>apache.exe -v Server version: Apache/1.3.37 (Win32) Server built: Jul 27 2006 15:23:00 ------------------------------------------------------------------------ [2007-09-25 17:54:52] daniel dot gaddis at tlc dot state dot tx dot us php -v returned the error using PHP 5.2.5-dev (cli) (built: Sep 9 2007 12:04:32). See mysql and apache version info below. F:\php>php -v PHP 5.2.5-dev (cli) (built: Sep 9 2007 12:04:32) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies Error in my_thread_global_end(): 1 threads didn't exit F:\MySQL\bin>mysqladmin --user=xxxx --password=xxxx version mysqladmin Ver 8.41 Distrib 5.0.45, for Win32 on ia32 Copyright (C) 2000-2006 MySQL AB This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL license Server version 5.0.45-community-nt-log Protocol version 10 Connection localhost via TCP/IP TCP port 3306 Uptime: 9 min 57 sec Threads: 1 Questions: 4 Slow queries: 0 Opens: 12 Flush tables: 1 Open tabl es: 6 Queries per second avg: 0.007 F:\Program Files\Apache Group\Apache>apache.exe -v Server version: Apache/1.3.37 (Win32) Server built: Jul 27 2006 15:23:00 ------------------------------------------------------------------------ [2007-09-19 21:27:36] [EMAIL PROTECTED] ctrl+c causes a SIGINT which isn't handled by PHP so the module shutdown isn't run and we can't clean up. So that would be expected behaviour. libmysql for 6.0 doesn't work yet as far as I know. Those seeing the error on CGI / FCGI should try a 5.2.5 snapshot as there was another bug that caused module shutdown now to be executed for -v and -i. I need a consistent reproduce case to look further at this. I can't reproduce this with 5.2.5-dev with MySQL 5.0.45 with MySQL, MySQLi and pdo_mysql loaded. Test cases if you please. ------------------------------------------------------------------------ [2007-09-19 19:45:15] phpbug at povaddict dot com dot ar I forgot to mention: MySQL Ver 14.12 Distrib 5.0.45, for Win32 (ia32) I tried renaming the libmysql.dll inside PHP folder and replacing it with the one from MySQL folder, didn't help. I also read somewhere that 5.0.42 should have the fix; obviously that's not the case. Also, derick said on another PHP bug that "We don't call my_thread_init, or anything starting with my_thread." A reply from mysql bug comments: "my_thread_init() is called indirectly from mysql_init()". ------------------------------------------------------------------------ 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/41350 -- Edit this bug report at http://bugs.php.net/?id=41350&edit=1