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

Reply via email to