Per,

----- Original Message -----
From: "Per Andreas Buer" <[EMAIL PROTECTED]>
Newsgroups: mailing.database.mysql
Sent: Saturday, June 15, 2002 11:40 PM
Subject: Re: innodb keeps crashing due to out-of-memory errors.


>
> Hi Heikki, thanks for replying so swiftly.
>
> "Heikki Tuuri" <[EMAIL PROTECTED]> writes:
>
> > this is probably a real bug. It is trying to allocate 1.5 GB of memory
in
> > one shot, which does not make sense. More probably the argument to the
> > allocator is garbage.
> >
> > What MySQL version you are running?
>
> mysqld  Ver 3.23.49 for pc-linux-gnu on i686
>
> MySQL is installed from a Debian Package (I am running Debian GNU/Linux
> 3.0) - package version 3.23.49-8.
>
> > Can you compile MySQL yourself with
> >
> > CFLAGS="-g -O3" ./configure --with-innodb
> >
> > and run it inside gdb? Put a breakpoint to the code where it prints the
> > error message, so that we get the stack trace with
> >
> > gdb> bt full
>
> Hmm. This is a production machine and I have a very limited window to
> tinker around with things. The crash occures when the server is really
> busy - I have so far failed to provoke this to happen.
>
> I've modified innobase/ut/ut0mem.c to give a nice stack-trace when the
> error occures, and recompiled with symbols. Hopefully (uhh ;) it will
> crash again monday and I will have a nice stack-trace to show you.

good. I have also modified 3.23.52 so that it will generate a seg fault when
it runs out of memory. That way we will get a stack trace on Linux.

> Another question: As the server has some limitation (io kapasity) I am
> running with innodb_flush_log_at_trx_commit set to "0". Would it be
> unwise to try to sync the logs when we hit this kind of error? Does
> syncing of logs require mallocing of memory?

What do you mean by syncing logs?

> For completeness; here is my innodb configuration:
>
> # InnoDB
>
> innodb_data_home_dir=/var/lib/mysql/innodb/
>
innodb_data_file_path=ibdata00:1G;ibdata01:1G;ibdata02:1G;ibdata03:1G;ibdata
04:1G;ibdata05:1G;ibdata06:1G;ibdata07:1G;ibdata08:1G;ibdata09:1G;ibdata10:1
G;ibdata11:1G;ibdata12:1G;ibdata13:1G;ibdata14:1G;ibdata15:1G;ibdata16:1G;ib
data17:1G;ibdata18:1G;ibdata19:1G
>
> innodb_log_group_home_dir=/var/lib/mysql/innodb/
> set-variable = innodb_log_files_in_group=3
>
> innodb_log_arch_dir=/var/lib/mysql/innodb/
>
> set-variable = innodb_log_file_size=32M
> set-variable = innodb_log_buffer_size=96M

The log buffer is unnecessarily big. Set it to 8M.

> set-variable = innodb_buffer_pool_size=950M
> set-variable = innodb_additional_mem_pool_size=64M
>
> innodb_flush_method=O_DSYNC

You could try removing the flush_method line above. O_(D)SYNC is not much
used on Linux and there is a risk it could be buggy.

> innodb_flush_log_at_trx_commit=0
>
>
>
> --
> Per Andreas Buer

Regards,

Heikki
Innobase Oy




---------------------------------------------------------------------
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