My MySQL connections are done with the PHP Apache module, which was compiled
using the MySQL library of my MySQL installation. (I use Marc Liyanage's
MySQL, but roll my own PHP build.)

I did some poking around regarding Mac OS X file descriptors, as I've heard
a little bit here and there about OS X having a somewhat unusually low limit
compiled into the kernel. Exactly what that limit is, I'm not sure ... I've
seen conflicting statements on the subject while looking around.

The command 'sysctl -a' tells me "kern.maxfiles = 12288" (among other
things), and I've heard that the default number of files per process is only
256. I've restarted mysqld with a "--open-files-limit=unlimited" ... Based
on a tip I found here: http://www.macaddict.com/osx/ise500.html

I've seen suggestions from various software vendors -- Stalker Software re:
CommuniGate Pro (mail server), Volano re: VolanoChatPro (Java chat server)
-- that recommend kicking the file limit up manually via the "ulimit -n"
command, which is what safe_mysqld sets with the "--open-files-limit" value.

So, since this is a common suggested cure by many vendors whose users have
problems with the default OS X file limitations, I'm keeping my fingers
crossed that this adjustment will significantly reduce, if not eliminate, my
recurring 1049 errors.

I did make the adjustment on converting all our mysql_pconnects to
mysql_connects ... If I don't see a 1049 for a week or so, I'll switch those
back and see what happens then.

If I don't see a 1049 for a week, I'll report back that the fix looks
promising. 

Thanks again to all who've been helpful on this problem!

-Clay


PS -- for those who are running Mac OS X and don't want to get as drastic as
"unlimited", maybe try setting the limit to 50000 or 100000... Or even
25000. 

___________________________
Clay Loveless
Webmaster, Crawlspace
http://www.crawlspace.com/



> From: "Barry C. Hawkins" <[EMAIL PROTECTED]>
> Date: Thu, 25 Apr 2002 23:12:35 -0500
> To: "'Clay Loveless'" <[EMAIL PROTECTED]>, <[EMAIL PROTECTED]>
> Subject: RE: more on 1049 errors
> 
> Clay,
> I am on remote assignment out of town, and I don't have my Mac
> or any of my MySQL books with me, so I am mostly going from memory.  If
> I am not mistaken, Paul Dubois mentions in his book that the
> mysql_pconnect() function is definitely preferred from a scalability
> standpoint, and if the problem lies with the handling of the Unix
> socket, then I don't think that mysql_connect() will provide any
> advantage or resolution to your issue.
> Again, I am going from memory, but I think there is a way to use
> TCP instead of Unix sockets as your mode of connection.  I can't
> remember if this is something that requires a recompile (which, if you
> are using a precompiled binary currently, would require some extra work)
> or not, but I am sure some of the more-experienced MySQL folk know by
> heart.
> Perhaps trying this alternate connection mode would help narrow
> down the issue.  Also, are your servers Apache, and if so are they using
> the Apache MySQL functionality, or are they compiled to use the MySQL
> library of your MySQL installation?  This, too, may have an effect on
> your issue.
> 
> Keep at it,
> 
> -- 
> Barry C. Hawkins
> Systems Consultant
> All Things Computed
> [EMAIL PROTECTED]
> 
> 
> -----Original Message-----
> From: Clay Loveless [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, April 25, 2002 10:41 PM
> To: Barry C. Hawkins; [EMAIL PROTECTED]
> Subject: Re: more on 1049 errors
> 
> 
> Barry,
> 
> Thanks for your input into this problem!
> 
> 
> 1) That's an interesting point about the HFS+ filesystem -- I've read
> that a G4 won't boot unless the startup volume is formatted as HFS+ (so
> sayeth the 10.1 Server Update "README FIRST.pdf") ... So, just for
> consistency's sake, both drives in my server are formatted for HFS+.
> But, I assume HFS+ is not the most common filesystem MySQL is installed
> upon ... So who knows? That could be an issue.
> 
> 2) I don't actually actually query an explicit filename reference -- I'm
> doing a standard mysql_connect/mysql_pconnect through PHP to a the
> hostname of our MySQL server. We have a two-webserver and one MySQL
> server setup, with all three machines running identical hardware and OS
> configurations, all in the same rack on a 100BaseT network (so there
> shouldn't be any real network latency issues) ... But connection is
> being made over a network, not to the "localhost".
> 
> But, that did get me to thinking about mysql_connect vs mysql_pconnect
> ... When I moved all our stuff from FreeBSD boxes to Mac OS X Server,
> all of our database calls through PHP were made via mysql_pconnect. I've
> had some other oddities (rapid memory consumption by only ONE of the OS
> X web servers) which popped up during that move, and I've been
> experimenting with switching back to mysql_connect().
> 
> Since a socket connection is considered a file descriptor, I wonder if
> something funny is going on that causes a persistent connection to "go
> bad", thus generating "bad file descriptor" errors?
> 
> If that were true, I could switch to using solely mysql_connect() calls,
> since I believe that opens a new connection, uses it, and closes it ...
> Leaving no real opportunity for that particular connection's file
> descriptor to go bad.
> 
> ?? 
> 
> I'm definitely groping around on this one myself ... It's easy enough to
> switch to using only mysql_connect(), and I can do that and see how
> things go for awhile ... But it's one of those things where it's a "wait
> and see with fingers crossed" remedy.
> 
> Barry, Paul, Mark, Erik ... Anyone else ... Opinion on that theory?
> 
> Thanks again, folks -- I appreciate the group brainstorm.
> 
> -Clay
> 
> (PS -- I'd email Marc Liyanage, but I can only imagine how many people
> are bugging him already! I'm using his latest binary build at the
> moment.)
> 
> ___________________________
> Clay Loveless
> Webmaster, Crawlspace
> http://www.crawlspace.com/
> 
> 
> 
>> From: "Barry C. Hawkins" <[EMAIL PROTECTED]>
>> Date: Thu, 25 Apr 2002 20:40:59 -0500
>> To: "'Clay Loveless'" <[EMAIL PROTECTED]>, <[EMAIL PROTECTED]>
>> Subject: RE: more on 1049 errors
>> 
>> Clay,
>> I have only been running MySQL on Mac OS 10.1.3 on a PowerBook G4 for
>> development purposes, but a couple of things occurred to me:
>> 
>> 1.) When the log says "Got error 9 from select" and that error shows
>> as "Bad file descriptor", I am reminded of the quirkiness that
>> sometimes happens when applications interface with HFS/HFS+ volumes.
>> Does your Mac OS X Server have HFS+ volumes, or do you use AIX
>> filesystem volumes?
>> 
>> 2.) Do any of your queries to the mysql filename reference a filename,
> 
>> and if so, is the filename part of your $PATH variable, or does it
>> require a path prefix prepended to the filename?
>> 
>> I know these are obscure questions, but you have quite an obscure
>> issue on your hands.  They're mostly a hacker's stab in the dark.
>> Best wishes, and we all (particularly those of us dealing with Mac OS
>> X :^) ) are interested in hearing how you finally figure this out.  If
> 
>> you have not already visited his site, you might go to Mark Liyanage's
> 
>> site (http://www.entropy.ch/) and email him to see if he has anything
>> to offer.
>> 
>> Sincerely,
>> 
>> --
>> Barry C. Hawkins
>> Systems Consultant
>> All Things Computed
>> [EMAIL PROTECTED]
>> 
>> 
>> -----Original Message-----
>> From: Clay Loveless [mailto:[EMAIL PROTECTED]]
>> Sent: Thursday, April 25, 2002 8:20 PM
>> To: Mark Matthews; [EMAIL PROTECTED]
>> Subject: Re: more on 1049 errors
>> 
>> 
>> Okay, this just happened again, and this time I did get an error in
>> the logs.
>> 
>> 020425 18:01:00  Error in accept: Resource temporarily unavailable
>> 020425 18:01:00  mysqld: Got error 9 from select
>> 
>> 'perror' says:
>> Error code   9:  Bad file descriptor
>> 
>> ... Which still leaves me a bit in the dark. Has anyone else
>> experienced "error 9"?
>> 
>> As Paul DuBois mentioned in another response, MySQL and Mac OS X are
>> pretty recent companions, so it's entirely possible this could be
>> related to the OS and its file system routines.
>> 
>> I'm using a pretty speedy disk on a dual processor G4 ... And noted
>> today while perusing the support option price list that the use of a
>> dual processor puts me in the "advanced" support category (as does the
> 
>> use of Mac OS X).
>> 
>> Any possibility of the dual processing playing a role here?
>> 
>> Our MySQL server is also a "dual disk" system, where the OS the MySQL
>> application reside on one Ultra160 SCSI drive, and the MySQL data
>> files reside on a second Ultra160 SCSI drive.
>> 
>> I can also pass along my "my.cnf" parameters if they may be of use in
>> diagnosing the problem ... I've based them off of the "large" example
>> "my.cnf" settings.
>> 
>> Thanks in advance for any additional assistance -- I really do
>> appreciate the dialog on the problem.
>> 
>> -Clay
>> 
>> ___________________________
>> Clay Loveless
>> Webmaster, Crawlspace
>> http://www.crawlspace.com/
>> 
>> 
>> 
>>> From: "Mark Matthews" <[EMAIL PROTECTED]>
>>> Date: Thu, 25 Apr 2002 16:39:56 -0500
>>> To: "Clay Loveless" <[EMAIL PROTECTED]>, <[EMAIL PROTECTED]>
>>> Subject: Re: how to get support help?
>>> 
>>> What does your MySQL error log say when this happens? (it should be
>>> in
>> 
>>> the same directory with your databases and be your hostname plus a
>>> ".err" extension). This information should shed some light on what's
>>> going on under the hood.
>>> 
>>>   -Mark
>>> 
>>> Original message:
>>> ------------------------------------------------------------
>>> Subject:  Re: how to get support help?
>>> From:     Clay Loveless <[EMAIL PROTECTED]>
>>> Date:     2002-04-25 17:50:48
>>> [Download message RAW]
>>> 
>>> Erik, et. al.--
>>> 
>>> Thanks for all the helpful advice.
>>> 
>>> I'll make a note that the MySQL mailing list welcomes messages from
>>> people shrieking "HELP!!!" even though they clearly haven't bothered
>>> to read the manual, but offers little to those who've actually tried
>>> to resolve a problem on their own BEFORE wasting everyone else's time
> 
>>> and bandwidth.
>>> 
>>> This approach is contrary to other lists I'm a part of, so I'm glad
>>> you've helped me get my mind right on how *this* list (clearly an
>>> anomaly) works.
>>> 
>>> Anyone else offering the "buy a contract" response can save their
>>> keystrokes, I'm now crystal clear on that solution.
>>> 
>>> -Clay
>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> Before posting, please check:
>>>  http://www.mysql.com/manual.php   (the manual)
>>>  http://lists.mysql.com/           (the list archive)
>>> 
>>> To request this thread, e-mail <[EMAIL PROTECTED]>
>>> To unsubscribe, e-mail
>>> <[EMAIL PROTECTED]>
>>> Trouble unsubscribing? Try:
>>> http://lists.mysql.com/php/unsubscribe.php
>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> Before posting, please check:
>>  http://www.mysql.com/manual.php   (the manual)
>>  http://lists.mysql.com/           (the list archive)
>> 
>> To request this thread, e-mail <[EMAIL PROTECTED]>
>> To unsubscribe, e-mail
>> <[EMAIL PROTECTED]
>>> 
>> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
>> 
> 
> 
> ---------------------------------------------------------------------
> Before posting, please check:
>  http://www.mysql.com/manual.php   (the manual)
>  http://lists.mysql.com/           (the list archive)
> 
> To request this thread, e-mail <[EMAIL PROTECTED]>
> To unsubscribe, e-mail
> <[EMAIL PROTECTED]>
> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
> 


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to