MySQL server has gone away

tlq
Дата: 07.01.2013 15:34:10
Добрый день, товарищи! Помогите расшифровать error логи сервера. Делаю определенный достаточно ресурсоёмкий запрос и MySQL(Percona Server) выпуливает следующее:
MySQL
Warning: mysqli::query(): MySQL server has gone away

Вот что пишет в логи по этому поводу:
зы
CHECK TABLE data.cords не помогает, сервер также отваливается с ошибкой
MySQL
Warning: mysqli::query(): MySQL server has gone away

debian.err
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 26305.
InnoDB: You may have to recover from a backup.
130107 18:29:59 InnoDB: Page dump in ascii and hex (16384 bytes):
len 16384; hex
--- ТУТ БОЛЬШОЙ ДАМП ---
InnoDB: End of page dump
130107 18:29:59 InnoDB: Page checksum 2595610256 (32bit_calc: 3288714154), prior-to-4.0.14-form checksum 3527367240
InnoDB: stored checksum 3429563920, prior-to-4.0.14-form stored checksum 3527367240
InnoDB: Page lsn 0 1938900806, low 4 bytes of lsn at page end 1938900806
InnoDB: Page number (if stored to page already) 26305,
InnoDB: space id (if created with >= MySQL-4.1.1 and stored already) 47
InnoDB: Page may be an index page where index id is 84
InnoDB: (index "PRIMARY" of table "data"."cords")
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 26305.
InnoDB: You may have to recover from a backup.
InnoDB: It is also possible that your operating
InnoDB: system has corrupted its own file cache
InnoDB: and rebooting your computer removes the
InnoDB: error.
InnoDB: If the corrupt page is an index page
InnoDB: you can also try to fix the corruption
InnoDB: by dumping, dropping, and reimporting
InnoDB: the corrupt table. You can use CHECK
InnoDB: TABLE to scan your table for corruption.
InnoDB: See also http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
130107 18:29:59 InnoDB: Assertion failure in thread 140331781867264 in file buf0lru.c line 2151
InnoDB: Failing assertion: bpage->buf_fix_count == 0
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.5/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
11:29:59 UTC - mysqld got signal 6 ;
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.
Please help us make Percona Server better by reporting any
bugs at http://bugs.percona.com/

key_buffer_size=402653184
read_buffer_size=2097152
max_used_connections=3
max_threads=151
thread_count=1
connection_count=1
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 1013562 K bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x0
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...
stack_bottom = 0 thread_stack 0x40000
/usr/sbin/mysqld(my_print_stacktrace+0x35)[0x7c6e75]
/usr/sbin/mysqld(handle_fatal_signal+0x4a4)[0x696d34]
/lib/libpthread.so.0(+0xeff0)[0x7fa1af14eff0]
/lib/libc.so.6(gsignal+0x35)[0x7fa1ae3321b5]
/lib/libc.so.6(abort+0x180)[0x7fa1ae334fc0]
/usr/sbin/mysqld[0x8840e8]
/usr/sbin/mysqld[0x8846be]
/usr/sbin/mysqld[0x87b176]
/usr/sbin/mysqld[0x8abcdb]
/usr/sbin/mysqld[0x82bfb0]
/lib/libpthread.so.0(+0x68ca)[0x7fa1af1468ca]
/lib/libc.so.6(clone+0x6d)[0x7fa1ae3cfb6d]
You may download the Percona Server operations manual by visiting
http://www.percona.com/software/percona-server/. You may find information
in the manual which will help you identify the cause of the crash.
130107 18:29:59 mysqld_safe Number of processes running now: 0
130107 18:29:59 mysqld_safe mysqld restarted
130107 18:29:59 [Note] Plugin 'FEDERATED' is disabled.
130107 18:29:59 InnoDB: The InnoDB memory heap is disabled
130107 18:29:59 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130107 18:29:59 InnoDB: Compressed tables use zlib 1.2.3
130107 18:29:59 InnoDB: Using Linux native AIO
130107 18:29:59 InnoDB: Initializing buffer pool, size = 128.0M
130107 18:29:59 InnoDB: Completed initialization of buffer pool
130107 18:29:59 InnoDB: highest supported file format is Barracuda.
InnoDB: Log scan progressed past the checkpoint lsn 2637765613
130107 18:29:59 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...
InnoDB: Doing recovery: scanned up to log sequence number 2637766011
130107 18:29:59 InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percents: 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: Last MySQL binlog file position 0 31297, file name ./mysql-bin.000233
130107 18:29:59 InnoDB: Waiting for the background threads to start
130107 18:30:00 Percona XtraDB (http://www.percona.com) 1.1.8-rel29.2 started; log sequence number 2637766011
130107 18:30:00 [Note] Recovering after a crash using mysql-bin
130107 18:30:00 [Note] Starting crash recovery...
130107 18:30:00 [Note] Crash recovery finished.
130107 18:30:01 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
130107 18:30:01 [Note] - '0.0.0.0' resolves to '0.0.0.0';
130107 18:30:01 [Note] Server socket created on IP: '0.0.0.0'.
130107 18:30:01 [Note] Event Scheduler: Loaded 0 events
130107 18:30:01 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.5.28-29.2-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 Percona Server (GPL), Release 29.2
tanglir
Дата: 07.01.2013 15:40:45
debian.err
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 26305.
Что-то с данными случилось, похоже. С винтами всё в порядке?
Вот это
debian.err
InnoDB: you can also try to fix the corruption
InnoDB: by dumping, dropping, and reimporting
InnoDB: the corrupt table. You can use CHECK
InnoDB: TABLE to scan your table for corruption.
не пробовали делать?
debian.err
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 1013562 K bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
это проверили?
netwind
Дата: 07.01.2013 15:53:48
debian.err
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 1013562 K bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
это проверили?

да это уже наведенные ошибки пошли. только первую причину имеет смысл проверять
tlq
Дата: 07.01.2013 16:49:29
tanglir
debian.err
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 26305.
Что-то с данными случилось, похоже. С винтами всё в порядке?
Вот это
debian.err
InnoDB: you can also try to fix the corruption
InnoDB: by dumping, dropping, and reimporting
InnoDB: the corrupt table. You can use CHECK
InnoDB: TABLE to scan your table for corruption.
не пробовали делать?
debian.err
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 1013562 K bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
это проверили?

Да с винтами всё хорошо должно быть, единственное что недавно переезжали на debian и были полностью скопированы базы(/var/lib/mysql/), но вроде удачно встали на новую систему.
CHECK TABLE как и писал выше приводит к "MySQL server has gone away"...
С настройками тоже игрался, толку не вышло.
Сейчас заново скопировал файлы и перезалил, та же ошибка на этой таблице выходит.
netwind
Дата: 07.01.2013 17:05:52
tlq, ну так а что теперь винты проверять, если внутренняя структура данных уже нарушена.
действуйте далее по предложенному mysql плану :
InnoDB: See also http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
tlq
Дата: 08.01.2013 06:40:41
netwind
tlq, ну так а что теперь винты проверять, если внутренняя структура данных уже нарушена.
действуйте далее по предложенному mysql плану :
InnoDB: See also http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.

Сделал дамп сломаной таблицы, при попытке восстановить выдает следующее:
автор
ERROR 1030 (HY000) at line 50: Got error -1 from storage engine
tlq
Дата: 08.01.2013 10:30:11
Google и яндекс по этому поводу ничего внятного не дают :(.
netwind
Дата: 08.01.2013 13:21:41
tlq, вы уверены что железо исправно? сделайте и тест памяти на всякий случай.
Сделайте тогда текстовый дамп всего и пересоздайте базу.