Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 80554 - Mysql crashes on alpha when innodb is enabled
Summary: Mysql crashes on alpha when innodb is enabled
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: Alpha Linux
: High major (vote)
Assignee: Gentoo Linux MySQL bugs team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-02-03 02:00 UTC by Bert Smith
Modified: 2005-02-13 20:24 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bert Smith 2005-02-03 02:00:53 UTC
When you enable innodb on mysql on the alpha architecture using the following config:
#skip-innodb
innodb_data_home_dir = ibdata
innodb_data_file_path = ibdata1:50M;ibdata2:50M:autoextend

mysql crashes and therefore fails to start.

Reproducible: Always
Steps to Reproduce:
1. install mysql (tested with 4.0.23 and 4.1.8)
2. edit /etc/mysql/my.cnf and enable innodb by commenting out the line "skip-innodb" and add the lines:
innodb_data_home_dir = ibdata
innodb_data_file_path = ibdata1:50M;ibdata2:50M:autoextend

3. start mysql

Actual Results:  
mysql crashed with the following errors in /var/log/mysql/mysqld.err:

050203  9:32:21  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
050203  9:32:21  InnoDB: Starting log scan based on checkpoint at
InnoDB: log sequence number 0 43892.
InnoDB: Doing recovery: scanned up to log sequence number 0 43892
InnoDB: Page directory corruption: supremum not pointed to
050203  9:32:21  InnoDB: Page dump in ascii and hex (16384 bytes): 
 len 16384; hex
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000$
050203  9:32:21  InnoDB: Page checksum 1575996416, prior-to-4.0.14-form checksum
1371122432
InnoDB: stored checksum 0, prior-to-4.0.14-form stored checksum 0
InnoDB: Page lsn 0 0, low 4 bytes of lsn at page end 0
InnoDB: Page number (if stored to page already) 0,
InnoDB: space id (if created with >= MySQL-4.1.1 and stored already) 0
InnoDB: Page directory corruption: supremum not pointed to
050203  9:32:21  InnoDB: Page dump in ascii and hex (16384 bytes):
 len 16384; hex
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000$
050203  9:32:21  InnoDB: Page checksum 1575996416, prior-to-4.0.14-form checksum
1371122432
InnoDB: stored checksum 0, prior-to-4.0.14-form stored checksum 0
InnoDB: Page lsn 0 0, low 4 bytes of lsn at page end 0
InnoDB: Page number (if stored to page already) 0,
InnoDB: space id (if created with >= MySQL-4.1.1 and stored already) 0
050203  9:32:21InnoDB: Error: trying to access a stray pointer 0x8000020000abbff8
InnoDB: buf pool start is at 0x20000aac000, end at 0x200012ac000
InnoDB: Probable reason is database corruption or memory
InnoDB: corruption. If this happens in an InnoDB database recovery,
InnoDB: you can look from section 6.1 at http://www.innodb.com/ibman.html
InnoDB: how to force recovery.
050203  9:32:21InnoDB: Assertion failure in thread 16384 in file
../include/buf0buf.ic line 262
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.   
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/mysql/en/Forcing_recovery.html
InnoDB: about forcing recovery.
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 against 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=0
read_buffer_size=131072
max_used_connections=0
max_connections=100
threads_connected=0
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 217599 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

thd=(nil)
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
Cannot determine thread, fp=0x11fffd790, backtrace may not be correct.
Stack range sanity check OK, backtrace follows:
Warning: Alpha stacks are difficult - will be taking some wild guesses, stack
trace may be incorrect or  terminate abruptly
0x120157c3c
New value of fp=0x11fffd740 failed sanity check, terminating stack trace!
Please read http://dev.mysql.com/doc/mysql/en/Using_stack_trace.html and follow
instructions on how to resolve the stack trace. Resolved
stack trace is much more helpful in diagnosing the problem, so please do   
resolve it
The manual page at http://www.mysql.com/doc/en/Crashing.html contains
information that should help you find out what is causing the crash.


Expected Results:  
mysql should have started correctly

Portage 2.0.51-r15 (default-alpha-1.4, gcc-3.3.3, glibc-2.3.3_pre20040207-r0,
2.4.21-alpha-r7 alpha)
=================================================================
System uname: 2.4.21-alpha-r7 alpha EV56
Gentoo Base System version 1.5.3
Python:              dev-lang/python-2.2.3-r5,dev-lang/python-2.3.4 [2.3.4 (#1,
Jun  8 2004, 14:39:30)]
dev-lang/python:     2.2.3-r5, 2.3.4
sys-devel/autoconf:  2.13, 2.59-r4
sys-devel/automake:  1.8.5-r1
sys-devel/binutils:  2.14.90.0.8-r1
sys-devel/libtool:   1.5.2-r6
virtual/os-headers:  2.4.23
ACCEPT_KEYWORDS="alpha ~alpha"
AUTOCLEAN="yes"
CFLAGS="-O3 -mcpu=ev56 -fomit-frame-pointer -pipe -mieee"
CHOST="alpha-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/share/config /var/bind /var/qmail/alias /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O3 -mcpu=ev56 -fomit-frame-pointer -pipe -mieee"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache distlocks"
GENTOO_MIRRORS="http://212.219.56.162/sites/www.ibiblio.org/gentoo/
http://194.83.57.2/sites/www.ibiblio.org/gentoo/
http://194.83.57.11/sites/www.ibiblio.org/gentoo/
http://194.83.57.3/sites/www.ibiblio.org/gentoo/
http://194.83.57.7/sites/www.ibiblio.org/gentoo/"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="alpha apache2 berkdb clamav imap innodb ithreads mysql pam php qmail
spamassassin ssl vhosts zlib"
Unset:  ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, PORTDIR_OVERLAY
Comment 1 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2005-02-03 04:02:15 UTC
bert:
Please recompile with:
CFLAGS="-O0 -mcpu=ev56 -pipe -mieee -ggdb3"
CXXFLAGS="${CFLAGS}"
or use the upstream mysql-debug binaries.
either way, reproduce the bug using debug data, so that we get a full stack trace.

arjen: here's one shot against your stable innodb argument from bug #44592 ;-).
Comment 2 Arjen Lentz 2005-02-03 09:55:17 UTC
Bert, this .err output is NOT from the very first startup with innodb enabled.
The errors clearly indicate that an InnoDB tablespace already exists, and that MySQL was not shut down properly (like a kill -9, power loss or disk crash event) on a previous occasion.
If InnoDB indeed has not been used before (i.e. no data present in tablespace) the documented procedure for dealing with an uncompleted InnoDB tablespace initialization should be followed:
 - delete the ibdata files
 - delete the iblog files
and try to start again.
If it crashes on that occasion, please report the .err log from that.

Please also see the URLs in the .err text on how to followup with situations like these.

If the above keeps crashing, then if possible, please test this also with a precompiled binary from mysql.com. This would identify a possible build problem on Gentoo.
Off-hand... the build process with the standard test suite run should catch this problem easily. So I don't expect the standard binary to have this problem, it would have blocked a release. I also wonder why it would pop up on Gentoo, as I presume that Gentoo runs the test suite after a build?
Comment 3 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2005-02-13 20:24:26 UTC
no response from user yet, closing as NEEDINFO.
re-open if you can reproduce, and have the desired info.

arjen: we do support automatic testing, but it is not turned on by default.
FEATURES="test" is required in the users /etc/make.conf.