Bug: MySQL 4.0.13 crashes during simultaneous execution "ALTER TABLE ... ENABLE KEYS" and
am 11.06.2003 13:20:39 von Mikhail Entaltsev------=_NextPart_000_0102_01C3301C.40871D00
Content-Type: text/plain;
charset="koi8-r"
Content-Transfer-Encoding: quoted-printable
Hi,
I have a MySQL version 4.0.13 for Linux (x86, libc6) under RedHat Linux =
2.4.18-14smp i686
It crashes during simultaneous execution of "ALTER TABLE ... ENABLE =
KEYS"
and "SHOW TABLE STATUS" statements.
In order to reproduce this bug you need to have 2 connections to MySQL.
In the connection #1 execute:
======
DROP TABLE IF EXISTS History;
CREATE TABLE History ( ID int(11) NOT NULL default '0', PRIMARY KEY =
(ID)) TYPE=3DMyISAM;
ALTER TABLE History DISABLE KEYS;
LOCK TABLES History WRITE;
======
After that on the connection #2 execute:
======
SHOW TABLE STATUS
======
The connection #2 is locked now. After that on the connection #1 =
execute:
======
ALTER TABLE History ENABLE KEYS;
======
At that moment MySQL crashes.
Below there are error-log and query-log files:
==================== =====3D=
=========3D
/usr/local/mysql/bin/mysqld: ready for connections.
Version: '4.0.13-standard-log' socket: '/tmp/mysql.sock' port: 3306
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=3D402653184
read_buffer_size=3D2093056
sort_buffer_size=3D2097144
max_used_connections=3D3
max_connections=3D100
threads_connected=3D4
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections =
=3D
802415 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
thd=3D0x87631a8
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=3D0xbfe1e958, backtrace may not be correct.
Stack range sanity check OK, backtrace follows:
0x80702cb
0x8282488
0x8283a23
0x8280ca4
0x827ed89
0x80d028f
0x80d1636
0x807b487
0x807e166
0x80797ad
0x80791ed
0x8078a0f
0x827fc3c
0x82b53fa
New value of fp=3D(nil) failed sanity check, terminating stack trace!
Please read http://www.mysql.com/doc/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
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort...
thd->query at 0x8773ae8 =3D ALTER TABLE History ENABLE KEYS
thd->thread_id=3D4
Successfully dumped variables, if you ran with --log, take a look at the
details of what thread 4 did to cause the crash. In some cases of =
really
bad corruption, the values shown above may be invalid.
The manual page at http://www.mysql.com/doc/C/r/Crashing.html contains
information that should help you find out what is causing the crash.
Number of processes running now: 0
030606 09:00:37 mysqld restarted
030606 9:00:37 InnoDB: Database was not shut down normally.
InnoDB: Starting recovery from log files...
InnoDB: Starting log scan based on checkpoint at
InnoDB: log sequence number 0 1885531442
InnoDB: Doing recovery: scanned up to log sequence number 0 1885549589
030606 9:00:37 InnoDB: Starting an apply batch of log records to the
database...
InnoDB: Progress in percents: 68 69 70 71 72 73 74 75 76 77 78 79 80 81 =
82
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
InnoDB: Apply batch completed
InnoDB: Last MySQL binlog file position 0 45770, file name =
../saturn-bin.001
030606 9:00:38 InnoDB: Flushing modified pages from the buffer pool...
030606 9:00:38 InnoDB: Started
/usr/local/mysql/bin/mysqld: ready for connections.
Version: '4.0.13-standard-log' socket: '/tmp/mysql.sock' port: 3306
==================== =====3D=
=========3D
/usr/local/mysql/bin/mysqld, Version: 4.0.13-standard-log, started with:
Tcp port: 3306 Unix socket: /tmp/mysql.sock
Time Id Command Argument
4 Query DROP TABLE IF EXISTS History
4 Query CREATE TABLE History (...) TYPE=3DMyISAM
4 Query ALTER TABLE History DISABLE KEYS
4 Query LOCK TABLES History WRITE
4 Query INSERT INTO History VALUES (...)
3 Query SHOW TABLE STATUS
030606 9:00:37 4 Query ALTER TABLE History ENABLE KEYS
/usr/local/mysql/bin/mysqld, Version: 4.0.13-standard-log, started with:
Tcp port: 3306 Unix socket: /tmp/mysql.sock
Time Id Command Argument
==================== =====3D=
=========3D
Thank you in advance,
Mikhail.
------=_NextPart_000_0102_01C3301C.40871D00--