When running with force-recovery, the database will indeed be read-only. This is on purpose. When you have an error of this nature, the procedure is to find a force-recovery level which allows you to start mysql, then export all the data. Then you can shut down mysql, wipe your innodb tablespace and log file, restart mysql in a "clean" state, then re-import your data.
Please proceede with caution though; if possible make a backup of the mysql data directory in its current corrupted state before you delete anything. Regards Gavin Towey -----Original Message----- From: Wesley Wajon [mailto:wes...@oktober.nl] Sent: Monday, February 15, 2010 6:30 AM To: mysql@lists.mysql.com Subject: Mysql crashes, do not understand backtrace On one of the servers we maintain mysql recently crashed. In safe mode (innodb_force_recovery = 4) it runs but then you can't do any mutations to the databases. When we try to start it in normal mode it crashes and we do not really understand the backtrace. We eventually ended up in flushing all the databases and start adding, backups of, them one-by-one except for one (used by openX 2.4.4). It now runs normally with the backups, but could someone give us more insight in what has happend and what could be the cause of it? The server is a: Intel(R) Xeon(R) CPU 3060 @ 2.40GHz with 4 GB RAM running: Linux 2.6.15-1.2054_FC5smp #1 SMP Tue Mar 14 16:05:46 EST 2006 i686 i686 i386 GNU/Linux mysql version: mysql Ver 14.12 Distrib 5.0.27, for redhat-linux-gnu (i686) using readline 5.0 mysqld log: Number of processes running now: 0 100211 11:55:23 mysqld restarted 100211 11:55:23 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... 100211 11:55:23 InnoDB: Starting log scan based on checkpoint at InnoDB: log sequence number 3 319452546. InnoDB: Doing recovery: scanned up to log sequence number 3 320533610 InnoDB: 1 transaction(s) which must be rolled back or cleaned up InnoDB: in total 159 row operations to undo InnoDB: Trx id counter is 0 25336832 100211 11:55:23 InnoDB: Starting an apply batch of log records to the database... InnoDB: Progress in percents: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 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: Starting in background the rollback of uncommitted transactions 100211 11:55:23 InnoDB: Rolling back trx with id 0 25327402, 159 rows to undo 100211 11:55:23 InnoDB: Started; log sequence number 3 320533610 InnoDB: Dump of the tablespace extent descriptor: len 40; hex 00000000000063910000000014ee00000000232600000004febfafbeffffaafffbffffefeeeeffff; asc c #& ; InnoDB: Serious error! InnoDB is trying to free page 17905 InnoDB: though it is already marked as free in the tablespace! InnoDB: The tablespace free space info is corrupt. InnoDB: You may need to dump your InnoDB tables and recreate the whole InnoDB: database! InnoDB: Please refer to InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html InnoDB: about forcing recovery. 100211 11:55:23InnoDB: Assertion failure in thread 2960472992 in file fsp0fsp.c line 2980 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/refman/5.0/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=134217728 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 = 348671 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=0xb0752308, backtrace may not be correct. Stack range sanity check OK, backtrace follows: 0x8178043 0x83cf830 0x8381ad3 0x8387768 0x836739d 0x83682be 0x8360c19 0x833c928 0x839edab 0x4073b6 0x35333e New value of fp=(nil) 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. 100211 11:55:23 mysqld ended When running " resolve_stack_dump -s /tmp/mysqld.sym -n mysqld.stack " we get: 0x8178043 handle_segfault + 643 0x83cf830 fsp_header_init + 9408 0x8381ad3 btr_free_externally_stored_field + 995 0x8387768 btr_cur_pessimistic_update + 2056 0x836739d row_undo_ins + 1757 0x83682be row_undo_mod + 1150 0x8360c19 row_undo_step + 105 0x833c928 que_run_threads + 1704 0x839edab trx_rollback_or_clean_all_without_sess + 891 0x4073b6 (?) 0x35333e (?) best regards, Wesley -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/mysql?unsub=gto...@ffn.com This message contains confidential information and is intended only for the individual named. If you are not the named addressee, you are notified that reviewing, disseminating, disclosing, copying or distributing this e-mail is strictly prohibited. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore does not accept liability for any loss or damage caused by viruses or errors or omissions in the contents of this message, which arise as a result of e-mail transmission. [FriendFinder Networks, Inc., 220 Humbolt court, Sunnyvale, CA 94089, USA, FriendFinder.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/mysql?unsub=arch...@jab.org