Bug #37224 mysqld crash
Submitted: 5 Jun 2008 14:26 Modified: 24 Jul 2008 17:14
Reporter: Vasiliy Tolstov Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S1 (Critical)
Version:5.0.54 OS:Linux (gentoo linux)
Assigned to: Assigned Account CPU Architecture:Any
Tags: gallery2

[5 Jun 2008 14:26] Vasiliy Tolstov
Description:
I'm using mysql-5.0.54 on gentoo linux system.

When i'm perform gallery2 installation on russian language, mysql crashes on step 8.

How to repeat:
install gallery2
[5 Jun 2008 14:27] Vasiliy Tolstov
mysqld.err

Attachment: mysqld.err (application/octet-stream, text), 3.10 KiB.

[5 Jun 2008 14:28] Vasiliy Tolstov
gallery2 install log

Attachment: install_e2da264296.log (text/x-log), 20.99 KiB.

[5 Jun 2008 14:29] Vasiliy Tolstov
strange crush while install gallery2 php script
[5 Jun 2008 14:55] Heikki Tuuri
Vasiliy,

can you resolve the stack trace?

I am afraid the system tables of InnoDB might be corrupt.

--Heikki

080605 18:16:37  InnoDB: Started; log sequence number 0 2234476438
080605 18:16:37 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.0.54-debug-log'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  Gentoo Linux mysql-5.0.54
InnoDB: Error: trying to access page number 1737875456 in space 0,
InnoDB: space name ./ibdata1,
InnoDB: which is outside the tablespace bounds.
InnoDB: Byte offset 0, len 16384, i/o type 10.
InnoDB: If you get this error at mysqld startup, please check that
InnoDB: your my.cnf matches the ibdata files that you have in the
InnoDB: MySQL server.
080605 18:18:47InnoDB: Assertion failure in thread 2988239760 in file fil0fil.c line 3959
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.
080605 18:18:47 - 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=16777216
read_buffer_size=8388608
max_used_connections=9
max_connections=400
threads_connected=7
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 2375680 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

thd=0xaee21b40
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=0xb21caff8, backtrace may not be correct.
Stack range sanity check OK, backtrace follows:
0x81b0963
0x83e3331
0x83c0e82
0x83c14ca
0x83b69a4
0x83cf45c
0x83d7019
0x8373e54
0x8329971
0x836aa32
0x836493c
0x833fbdd
0x83a123a
0x8357ec4
0x829c8bd
0x829d143
0x828bddf
0x826a437
0x82a4c52
0x81cddb0
0x81ce455
0x81ceca9
0x81d0b95
0x444bd15b
0x44401afe
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
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort...
thd->query at 0x8c9b6c0 = CREATE TABLE g2_AccessSubscriberMap(
 g_itemId int(11) NOT NULL,
 g_accessListId int(11) NOT NULL,
 PRIMARY KEY(g_itemId),
 INDEX g2_AccessSubscriberMap_83732(g_accessListId)
) ENGINE=InnoDB
/*!40100 DEFAULT CHARACTER SET utf8 */
thd->thread_id=85
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
[5 Jun 2008 15:35] Vasiliy Tolstov
how can i resolve stack trace ?
[5 Jun 2008 17:00] Vasiliy Tolstov
ok. i'm read mysql manual and release stack 

i'm attach new mysqld.err (mysqld crush when i'm delete gallery2 tables from phpMyAdmin)

resolved stack

selfip ~ # resolve_stack_dump -s /root/mysqld.sym -n mysqld.stack
0x81b0963 handle_segfault + 773
0x83e3331 fil_io + 711
0x83c0e82 buf_LRU_invalidate_tablespace + 1432
0x83c14ca buf_read_page + 635
0x83b69a4 buf_page_get_gen + 320
0x83cf45c fsp_header_get_space_id + 547
0x83d7019 fseg_free_step + 428
0x8373e54 btr_free_but_not_root + 156
0x8329971 dict_drop_index_tree + 177
0x836882e row_upd_step + 4357
0x833f915 que_run_threads + 1013
0x83568c0 row_drop_table_for_mysql + 2109
0x8298330 _ZN11ha_innobase12delete_tableEPKc + 338
0x828aa29 _Z15ha_delete_tableP3THD7db_typePKcS3_b + 597
0x82a5ccf _Z20mysql_rm_table_part2P3THDP10TABLE_LISTbbbb + 983
0x82a62b0 _Z14mysql_rm_tableP3THDP10TABLE_LISTcc + 244
0x81c72d3 _Z21mysql_execute_commandP3THD + 2237
0x81ce455 _Z11mysql_parseP3THDPKcjPS2_ + 605
0x81ceca9 _Z16dispatch_command19enum_server_commandP3THDPcj + 2047
[5 Jun 2008 17:01] Vasiliy Tolstov
new mysqld.err

Attachment: mysqld.err (application/octet-stream, text), 15.22 KiB.

[23 Jun 2008 17:33] Heikki Tuuri
The crash and further errors probably are due to the .ibd files being not 'in sync' with the InnoDB data dictionary. What did you do prior to the errors? Did you move .ibd files around? Did mysqld crash in the middle of CREATE?

Regards,

Heikki
[23 Jun 2008 17:38] Vasiliy Tolstov
no, a do not move idb files. i'm only try to install gallery2 and after not succeseful installation - i'm try to remove some tables from database... 

how can i test that is mysqld idb data are sync ? (because tables not deleted now..)
[24 Jun 2008 17:14] Heikki Tuuri
Vasiliy,

did you manually delete some .ibd files? That makes them out-of-sync.

You can check that they are in-sync with innodb_table_monitor (see the manual) and compare the output to SHOW TABLES.

Or, if the problem only concerns a few tables, SELECT soemthing from existing tables, and for non-existent tables, do CREATE ... to test if you can create them. InnoDB will print complaints to the .err log if something is wrong.

The manual contains some hints how you can fix the sync without recreating the whole installation.

Regards,

Heikki
[24 Jul 2008 23:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".