myisamchk buffer_size warnings

myisamchk buffer_size warnings

am 16.06.2009 16:59:08 von Thomas Spahni

Hi

I have MySQL 5.0.64 compiled from source. When I run myisamchk on any
table I get the following warnings:

Warning: option 'key_buffer_size': unsigned value 18446744073709551615
adjusted to 4294963200
Warning: option 'read_buffer_size': unsigned value 18446744073709551615
adjusted to 4294967295
Warning: option 'write_buffer_size': unsigned value 18446744073709551615
adjusted to 4294967295
Warning: option 'sort_buffer_size': unsigned value 18446744073709551615
adjusted to 4294967295

/etc/my.cnf contains the following:

[myisamchk]
key_buffer_size=20971520
sort_buffer_size=20971520
read_buffer_size=2097152
write_buffer_size=2097152

What's wrong here?

Thomas Spahni


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql?unsub=gcdmg-mysql-2@m.gmane.org

Re: myisamchk buffer_size warnings

am 17.06.2009 13:21:36 von Thomas Spahni

On Wed, 17 Jun 2009, Johan De Meersman wrote:

> Aren't those options defined in megabytes ?
>
> On Tue, Jun 16, 2009 at 4:59 PM, Thomas Spahni wrote:
> Hi
>
> I have MySQL 5.0.64 compiled from source. When I run myisamchk
> on any
> table I get the following warnings:
>
> Warning: option 'key_buffer_size': unsigned value
> 18446744073709551615 adjusted to 4294963200
> Warning: option 'read_buffer_size': unsigned value
> 18446744073709551615 adjusted to 4294967295
> Warning: option 'write_buffer_size': unsigned value
> 18446744073709551615 adjusted to 4294967295
> Warning: option 'sort_buffer_size': unsigned value
> 18446744073709551615 adjusted to 4294967295
>
> /etc/my.cnf contains the following:
>
> [myisamchk]
> key_buffer_size=20971520
> sort_buffer_size=20971520
> read_buffer_size=2097152
> write_buffer_size=2097152
>
> What's wrong here?
>
> Thomas Spahni

Hi again

According to the very fine Manual
the
values can be given as Bytes or with a suffix of K|M|G. This didn't change
anything in my case.

It's strange that I see a similar error from mysqld when I run make test.
It says:

CURRENT_TEST: alias
090617 12:44:21 [Warning] option 'max_join_size': unsigned value
18446744073709551615 adjusted to 4294967295

Something must be very wrong here.

Regards, Thomas

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql?unsub=gcdmg-mysql-2@m.gmane.org

Re: myisamchk buffer_size warnings

am 18.06.2009 13:32:28 von Thomas Spahni

On Tue, 16 Jun 2009, Thomas Spahni wrote:

> Hi
>
> I have MySQL 5.0.64 compiled from source. When I run myisamchk on any
> table I get the following warnings:
>
> Warning: option 'key_buffer_size': unsigned value 18446744073709551615
> adjusted to 4294963200
> Warning: option 'read_buffer_size': unsigned value 18446744073709551615
> adjusted to 4294967295
> Warning: option 'write_buffer_size': unsigned value 18446744073709551615
> adjusted to 4294967295
> Warning: option 'sort_buffer_size': unsigned value 18446744073709551615
> adjusted to 4294967295
>
> /etc/my.cnf contains the following:
>
> [myisamchk]
> key_buffer_size=20971520
> sort_buffer_size=20971520
> read_buffer_size=2097152
> write_buffer_size=2097152
>
> What's wrong here?
> Thomas Spahni

Hi all,

Replying to myself as the problem is fixed in the meantime (at least for
me). It turned out to be bug #33785 described here:



The solution is to fix the source code of myisamchk.c and recompile. The
diff is:

--- myisamchk.c.original 2009-06-18 13:01:55.000000000 +0200
+++ myisamchk.c 2009-06-18 13:17:34.000000000 +0200
@@ -295,7 +295,7 @@
{ "key_buffer_size", OPT_KEY_BUFFER_SIZE, "",
(gptr*) &check_param.use_buffers, (gptr*) &check_param.use_buffers, 0,
GET_ULONG, REQUIRED_ARG, (long) USE_BUFFER_INIT, (long) MALLOC_OVERHEAD,
- (long) ~0L, (long) MALLOC_OVERHEAD, (long) IO_SIZE, 0},
+ (ulong) ~0, (long) MALLOC_OVERHEAD, (long) IO_SIZE, 0},
{ "key_cache_block_size", OPT_KEY_CACHE_BLOCK_SIZE, "",
(gptr*) &opt_key_cache_block_size,
(gptr*) &opt_key_cache_block_size, 0,
@@ -309,17 +309,17 @@
(gptr*) &check_param.read_buffer_length,
(gptr*) &check_param.read_buffer_length, 0, GET_ULONG, REQUIRED_ARG,
(long) READ_BUFFER_INIT, (long) MALLOC_OVERHEAD,
- (long) ~0L, (long) MALLOC_OVERHEAD, (long) 1L, 0},
+ (ulong) ~0, (long) MALLOC_OVERHEAD, (long) 1L, 0},
{ "write_buffer_size", OPT_WRITE_BUFFER_SIZE, "",
(gptr*) &check_param.write_buffer_length,
(gptr*) &check_param.write_buffer_length, 0, GET_ULONG, REQUIRED_ARG,
(long) READ_BUFFER_INIT, (long) MALLOC_OVERHEAD,
- (long) ~0L, (long) MALLOC_OVERHEAD, (long) 1L, 0},
+ (ulong) ~0, (long) MALLOC_OVERHEAD, (long) 1L, 0},
{ "sort_buffer_size", OPT_SORT_BUFFER_SIZE, "",
(gptr*) &check_param.sort_buffer_length,
(gptr*) &check_param.sort_buffer_length, 0, GET_ULONG, REQUIRED_ARG,
(long) SORT_BUFFER_INIT, (long) (MIN_SORT_BUFFER + MALLOC_OVERHEAD),
- (long) ~0L, (long) MALLOC_OVERHEAD, (long) 1L, 0},
+ (ulong) ~0, (long) MALLOC_OVERHEAD, (long) 1L, 0},
{ "sort_key_blocks", OPT_SORT_KEY_BLOCKS, "",
(gptr*) &check_param.sort_key_blocks,
(gptr*) &check_param.sort_key_blocks, 0, GET_ULONG, REQUIRED_ARG,


Unfortunately MySQL 5.0.64 is packed with SuSE-11.1 and thus a lot of
installations will be broken. Some evil things may happen when you have
less physical memory than the maximum default values as applied by the
broken code.

Thomas

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql?unsub=gcdmg-mysql-2@m.gmane.org