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

Reply via email to