Hi all, My MySQL crashed during simultaneous execution of "ALTER TABLE ... ENABLE KEYS" and "SHOW TABLE STATUS" statements.
There were 2 threads: #3 and #4. In thread #4 I executed: 4 Query DROP TABLE IF EXISTS History 4 Query CREATE TABLE History ... 4 Query ALTER TABLE History DISABLE KEYS 4 Query LOCK TABLES History WRITE 4 Query INSERT INTO History VALUES ... 4 Query ALTER TABLE History ENABLE KEYS In thread #3 I executed: 3 Query SHOW TABLE STATUS And it looks like thread #3 was locked until "INSERT INTO History VALUES ..." finished. After that "SHOW TABLE STATUS" statement executed and when Mysql tried to execute "ALTER TABLE History ENABLE KEYS" it crashed. Below there are error-log and query-log files: ================================== /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=402653184 read_buffer_size=2093056 sort_buffer_size=2097144 max_used_connections=3 max_connections=100 threads_connected=4 It is possible that mysqld could use up to key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 802415 K bytes of memory Hope that's ok; if not, decrease some variables in the equation. thd=0x87631a8 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=0xbfe1e958, 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=(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 = ALTER TABLE History ENABLE KEYS thd->thread_id=4 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 ================================== /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=MyISAM 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 ================================== Mikhail. -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]