List:General Discussion« Previous MessageNext Message »
From:Don Read Date:March 31 2003 8:42pm
Subject:RE: Can't create thread error
View as plain text  
On 31-Mar-2003 Mike William wrote:
> Hi Don,
> 
> Thanks for the suggestions.  Here's what happened.
> 
>  > Your pconnects are probably sleeping too long.
>>  in /etc/my.cnf:
>>
>>[mysqld]
>>   set-variable = wait_timeout=10
> 
> I tried this, and it was a mixed bag.  On the one hand, the "Can't create
> thread..." error did indeed go away, and max_used_connections and the 
> number of sleeping/persistent connections dropped down well below 
> 250.  However, making this change caused a new problem:  on about every
> 50% 
> of page loads, the following PHP warning would occur:
> 
> Warning: Access denied for user: 'XXXXX@stripped' (Using password: YES)
> in 
> /www/functions.inc on line 66
> 
> Line 66 of that file is a call to mysql_pconnect().  The MySQL user name 
> and password hard coded in that file are definitely correct, since the 
> error is only happening about 50% of the time and no one is modifying
> this 
> file or the grant tables in between.
> 
> Interestingly, nothing gets logged to the MySQL error log when this PHP 
> warning is generated.  I'm not sure whether there are different logging 
> levels in MySQL and if I need to make my logging more verbose or
> something, 
> but at any rate I can't get any additional information about this error 
> from the log.
> 
>>If that doesn't take care of it, check your PHP version. Early (~ 2001)
>>PHP4 had some buggy pconnect problems.
> 
> I'm using PHP 3.0.18.  We have been using the same pconnect() code with 
> this same version of PHP for years and this problem started happening out
> of nowhere only yesterday.
> 
>>Last resort:
>>Don't use pconnect unless you really --and I mean *really* need it.
>>mysql_connect() is fast enough for just about everything.
> 
> I tried changing all PHP calls to mysql_pconnect() to mysql_connect() 
> without making any other code changes.  Then I restarted MySQL.  These 
> changes had basically no effect, i.e., both max_used_connections and the 
> number of sleeping/persistent connections both shot right back up to
> their 
> "ceiling" level of ~250.  Any thoughts on this?
> 

Strange ...

Ok, put the pconnects back, and try a 20 second wait_timeout.


The 'ceiling' is 'max_connections' either in one of the my.cnf or as 
an option in your rc.* scripts.

mysql> show variables like '%connect%';

CHECK TABLES been run ?

What is Apache's MaxRequestsPerChild set at ?

MySQL back_log ?

mysql> show variables like '%back%';

(stabbing wildly in the dark.)

-- 
Don Read                                       dread@stripped
-- It's always darkest before the dawn. So if you are going to 
   steal the neighbor's newspaper, that's the time to do it.
                            (53kr33t w0rdz: sql table query)

Thread
Can't create thread errorMike William31 Mar
  • RE: Can't create thread errorDon Read31 Mar
    • RE: Can't create thread errorMike William31 Mar
      • RE: Can't create thread errorDon Read31 Mar
        • RE: Can't create thread errorMike William1 Apr
        • RE: Can't create thread errorMike William1 Apr