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