FD_SETSIZE is defined at /usr/include/linux/posix_types.h and
/usr/include/bits/typesizes.h ...

 Set open_files_limit bigger is a way to let mysql use more file
descriptors( and thus has the chance to reach the FD_SETSIZE limit )
 Also notice in the bug description, innodb_open_files was used,
together with innodb_file_per_table. I guess this does not affect the
bug, which occurs at sql/mysqld.cc.  :-P

2010/2/2 Wagner Bianchi <wagnerbianch...@gmail.com>:
> Sorry, *open_files_limit...
>
> 2010/2/1 Wagner Bianchi <wagnerbianch...@gmail.com>
>>
>> Is FD_SETSIZE regards to an open_file_limit?
>>
>> WB
>>
>> 2010/2/1 Cui Shijun <rancp...@gmail.com>
>>>
>>>  Got your idea.
>>>  Thank you very much. Now I know how table cache works :-)
>>>
>>>  For the bug, yes, it's related to the value of FD_SETSIZE, which is
>>> limited to 1024 at my RedHat box.
>>> Maybe I should update it to a suitable value.
>>>
>>> 2010/2/2 Johan De Meersman <vegiv...@tuxera.be>:
>>> >
>>> > On Mon, Feb 1, 2010 at 4:51 PM, Cui Shijun <rancp...@gmail.com> wrote:
>>> >>
>>> >> I'm also confused by the difference & relationship between "open
>>> >> table" and "open file descriptor" by the table cache.
>>> >
>>> > "open table" is a MySQL concept. "Open file descriptor" is an OS
>>> > concept. A
>>> > single table (MyISAM) consists of three files: the .frm (description),
>>> > the
>>> > .MYD (data) and the .MYI (indices). Thus, a single open table can
>>> > correspond
>>> > to multiple open files. Additionally, temp tables, sortfiles and
>>> > whatnot
>>> > also consume file descriptors.
>>> >
>>> >>
>>> >>  As far as I understand, when a thread ask the global cache for a
>>> >> table:
>>> >> * if the table is opened before and currently not used by other
>>> >> thread, the request thread will get this table
>>> >
>>> > "and *there is a cache entry that* is currently not used*" - multiple
>>> > entries can exist for the same table.
>>> >
>>> >>
>>> >> * if no table in table cache is available( currently used by other
>>> >> thread, or not opened before ), the request thread will open this
>>> >> table
>>> >
>>> > The thread will get a new cache object that opens that table, yes.
>>> >
>>> >>
>>> >>  Once open a table, mysql *might?( I'm not sure )* open a file
>>> >> descriptor corresponding to the data file of the table. In that case,
>>> >> when the number of  table opened simultaneously goes too big, mysql
>>> >> will use too much file descriptors and then hit the bug 48929.
>>> >>
>>> >>  Your experience( "I've had one occurrence where it grew to 26.000
>>> >> open tables" ) seems to show there must be something wrong with my
>>> >> understanding, Hmm...  :-(
>>> >
>>> > I just skimmed over it, but the bug seem related specifically to
>>> > InnoDB, and
>>> > to a highly specific file descriptor number being equal to some form of
>>> > hardcoded limit - maybe different OSes or linux distro's have different
>>> > values for said limit, or maybe it only occurs under specific
>>> > conditions.
>>> >
>>> >
>>> >
>>> > --
>>> > Bier met grenadyn
>>> > Is als mosterd by den wyn
>>> > Sy die't drinkt, is eene kwezel
>>> > Hy die't drinkt, is ras een ezel
>>> >
>>>
>>> --
>>> MySQL General Mailing List
>>> For list archives: http://lists.mysql.com/mysql
>>> To unsubscribe:
>>>  http://lists.mysql.com/mysql?unsub=wagnerbianch...@gmail.com
>
>
> --
> Wagner Bianchi - Web System Developer and Database Administrator
> Phone: (31) 8654-9510 / 3272-0226
> E-mail: wagnerbianch...@gmail.com
> Lattes: http://lattes.cnpq.br/2041067758113940
> Twitter: http://twitter.com/wagnerbianchi
> Skype: infodbacet
>

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to