ID:               26117
 User updated by:  spam at vrana dot cz
 Reported By:      spam at vrana dot cz
-Status:           Feedback
+Status:           Open
 Bug Type:         MySQL related
 Operating System: Linux
 PHP Version:      4.3.3
 New Comment:

Yes. There were 466 processes with the same user, host and db. All
processes were in state Sleep.


Previous Comments:
------------------------------------------------------------------------

[2003-11-05 11:21:33] [EMAIL PROTECTED]

When the "too many connections" problem occurs, have you tried running
"show full processlist;" query to see if infact all connections use the
same database?

------------------------------------------------------------------------

[2003-11-05 03:24:59] spam at vrana dot cz

This is not the case. Believe me that I have read all similar bugs and
this is different. I also have read carefuly the manual and I
understand everything written there about persistent connections.

There is written in the Persistent Database Connections chapter of
manual: An 'identical' connection is a connection that was opened to
the same host, with the same username and the same password (where
applicable). So it's not true that by mysql_select_db() with different
database name the connection can't be reused. Anyway I use the same
database in all scripts.

I know that connection is persistent only over the child. Thus I wrote
that Apache configuration directive MaxClients is set to 150.

------------------------------------------------------------------------

[2003-11-04 13:53:56] [EMAIL PROTECTED]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

If you go mysql_select_db() then the persistent connection you've
created becomes specific to that particular database. Which may explain
why those connections are not re-used.
Also, persistent connections are per-child, meaning that if 1 Apache
child opens connections only that child has a pre-existing connection
avaliable. If a subsequent request is handled by another child, which
does not yet have a MySQL connection, it'll create a new connection.

------------------------------------------------------------------------

[2003-11-04 11:00:20] spam at vrana dot cz

Description:
------------
Configuration:
Apache 1.3.28
MySQL 4.0.15a

With Apache configuration directive MaxClients set to 150, the number
of database connection raised up to 466 (until MySQL denied connections
with Too many connections error). In all scripts I use the same
mysql_pconnect("localhost", "user", "pwd").

MySQL command SHOW PROCESSLIST showed that all 466 connections were
made with the same connection parameters. All connections were in state
Sleep.

I am connecting to MySQL only from PHP module in Apache so I think this
behavior is caused by some bug in handling with connection pool in PHP.



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=26117&edit=1

Reply via email to