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
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 ;-).
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?
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.