Hi! It turned out that the bug indeed was connected with a 32-bit signed integer wrap-over if the buffer pool on a 32-bit computer is bigger than 2 GB.
The following patch may fix the problem, but better test first if there are also other similar wrap-overs which I did not notice. Best regards, Heikki Innobase Oy --- 1.4/innobase/include/buf0buf.ic Tue Dec 4 16:14:52 2001 +++ 1.5/innobase/include/buf0buf.ic Wed Jun 26 21:42:32 2002 @@ -209,7 +209,7 @@ ut_ad((ulint)ptr >= (ulint)frame_zero); - block = buf_pool_get_nth_block(buf_pool, (ptr - frame_zero) + block = buf_pool_get_nth_block(buf_pool, ((ulint)(ptr - frame_zero)) >> UNIV_PAGE_SIZE_SHIFT); ut_a(block >= buf_pool->blocks); ut_a(block < buf_pool->blocks + buf_pool->max_size); @@ -236,7 +236,7 @@ ut_ad((ulint)ptr >= (ulint)frame_zero); - block = buf_pool_get_nth_block(buf_pool, (ptr - frame_zero) + block = buf_pool_get_nth_block(buf_pool, ((ulint)(ptr - frame_zero)) >> UNIV_PAGE_SIZE_SHIFT); ut_a(block >= buf_pool->blocks); ut_a(block < buf_pool->blocks + buf_pool->max_size); ----- Original Message ----- From: "Heikki Tuuri" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, June 26, 2002 4:42 PM Subject: Re: innodb bug > Shakeel, > > this may be something with 32-bit unsigned integer / signed integer > arithmetic. I assume mysqld runs in the 32-bit mode? > > Are you able to compile mysqld yourself? You could add the following to line > 214 of mysql/innobase/include/buf0buf.ic > > ... > if (block < buf_pool->blocks) { > printf("Values %lu, %lu, %lu, %lu\n", (ulint)(ptr - frame_zero), > (ulint)((ptr - frame_zero) >> UNIV_PAGE_SIZE_SHIFT), > (ulint)block, (ulint)(buf_pool->blocks), > (ulint)ptr, (ulint)frame_zero); > } > ... > > Regards, > > Heikki > Innobase Oy > > ----- Original Message ----- > From: "Shakeel Sorathia" <[EMAIL PROTECTED]> > Newsgroups: mailing.database.mysql > Sent: Wednesday, June 26, 2002 1:19 AM > Subject: innodb bug > > > > I've been having a problem with innodb lately. We just upgraded one of > > our machine to have 4 GB of ram in it. However, whenever I make the > > innodb_buffer_pool_size greater then 2048M It crashes with the > > following in the error log. It's 3.23.51 running on a Solaris 8 > > Ultrasparc II machine with 4 GB ram. Is the limit 2gb of ram, or is > > there something that I'm doing wrong? Thanks for the help! > > > > --shak > > > > 020625 12:57:14 mysqld started > > InnoDB: Assertion failure in thread 1 in file ../include/buf0buf.ic line > 214 > > InnoDB: We intentionally generate a memory trap. > > InnoDB: Send a detailed bug report to [EMAIL PROTECTED] > > mysqld got signal 11; > > This could be because you hit a bug. It is also possible that this binary > > or one of the libraries it was linked agaist is corrupt, improperly built, > > or misconfigured. This error can also be caused by malfunctioning > hardware. > > We will try our best to scrape up some info that will hopefully help > > diagnose > > the problem, but since we have already crashed, something is definitely > > wrong > > and this may fail > > > > key_buffer_size=8388600 > > record_buffer=131072 > > sort_buffer=1048568 > > max_used_connections=0 > > max_connections=1024 > > threads_connected=0 > > It is possible that mysqld could use up to > > key_buffer_size + (record_buffer + sort_buffer)*max_connections = 1187831 > K > > bytes of memory > > Hope that's ok, if not, decrease some variables in the equation > > > > 020625 12:57:54 mysqld ended > > > > -- > > Shakeel Sorathia > > Systems Administrator > > (213) 739-5348 > > > > > > > > --------------------------------------------------------------------- > > 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