Aria mysqld: recovered pages: 0% 20%111105 21:05:20 [ERROR] mysqld got signal 11 ;

Bug #887051 reported by Dreas van Donselaar
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MariaDB
Fix Released
Critical
Michael Widenius

Bug Description

MySQL failed to startup on a server with:
=====
Nov 5 21:05:20 server1 mysqld_safe: Starting mysqld daemon with databases from /var/lib/mysql
Nov 5 21:05:20 server1 mysqld: 111105 21:05:20 [Warning] 'master-host' is deprecated and will be removed in a future release. Please use ''CHANGE MASTER'' instead.
Nov 5 21:05:20 server1 mysqld: 111105 21:05:20 [Note] Plugin 'BLACKHOLE' is disabled.
Nov 5 21:05:20 server1 mysqld: 111105 21:05:20 [Note] Plugin 'FEDERATED' is disabled.
Nov 5 21:05:20 server1 mysqld: 111105 21:05:20 [Note] mysqld: Aria engine: starting recovery
Nov 5 21:05:20 server1 mysqld: recovered pages: 0% 20%111105 21:05:20 [ERROR] mysqld got signal 11 ;
Nov 5 21:05:20 server1 mysqld: This could be because you hit a bug. It is also possible that this binary
Nov 5 21:05:20 server1 mysqld: or one of the libraries it was linked against is corrupt, improperly built,
Nov 5 21:05:20 server1 mysqld: or misconfigured. This error can also be caused by malfunctioning hardware.
Nov 5 21:05:20 server1 mysqld: We will try our best to scrape up some info that will hopefully help diagnose
Nov 5 21:05:20 server1 mysqld: the problem, but since we have already crashed, something is definitely wrong
Nov 5 21:05:20 server1 mysqld: and this may fail.
Nov 5 21:05:20 server1 mysqld:
Nov 5 21:05:20 server1 mysqld: key_buffer_size=0
Nov 5 21:05:20 server1 mysqld: read_buffer_size=131072
Nov 5 21:05:20 server1 mysqld: max_used_connections=0
Nov 5 21:05:20 server1 mysqld: max_threads=502
Nov 5 21:05:20 server1 mysqld: threads_connected=0
Nov 5 21:05:20 server1 mysqld: It is possible that mysqld could use up to
Nov 5 21:05:20 server1 mysqld: key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 1098540 K
Nov 5 21:05:20 server1 mysqld: bytes of memory
Nov 5 21:05:20 server1 mysqld: Hope that's ok; if not, decrease some variables in the equation.
Nov 5 21:05:20 server1 mysqld:
Nov 5 21:05:20 server1 mysqld: Thread pointer: 0x0
Nov 5 21:05:20 server1 mysqld: Attempting backtrace. You can use the following information to find out
Nov 5 21:05:20 server1 mysqld: where mysqld died. If you see no messages after this, something went
Nov 5 21:05:20 server1 mysqld: terribly wrong...
Nov 5 21:05:20 server1 mysqld: stack_bottom = (nil) thread_stack 0x40000
Nov 5 21:05:20 server1 mysqld: /usr/sbin/mysqld(my_print_stacktrace+0x2e) [0x7f6dd2ef195e]
Nov 5 21:05:20 server1 mysqld: /usr/sbin/mysqld(handle_segfault+0x3eb) [0x7f6dd2b27b2b]
Nov 5 21:05:20 server1 mysqld: /lib/libpthread.so.0 [0x7f6dd1124a80]
Nov 5 21:05:20 server1 mysqld: /lib/libc.so.6 [0x7f6dd06a8561]
Nov 5 21:05:20 server1 mysqld: /lib/libc.so.6(memmove+0x7c) [0x7f6dd06a738c]
Nov 5 21:05:20 server1 mysqld: /usr/sbin/mysqld(_ma_apply_redo_index+0x65c) [0x7f6dd2d2fc9c]
Nov 5 21:05:20 server1 mysqld: /usr/sbin/mysqld [0x7f6dd2d4f2fd]
Nov 5 21:05:20 server1 mysqld: /usr/sbin/mysqld [0x7f6dd2d4b441]
Nov 5 21:05:20 server1 mysqld: /usr/sbin/mysqld [0x7f6dd2d4e90d]
Nov 5 21:05:20 server1 mysqld: /usr/sbin/mysqld(maria_apply_log+0x19c) [0x7f6dd2d5025c]
Nov 5 21:05:20 server1 mysqld: /usr/sbin/mysqld(maria_recovery_from_log+0x50) [0x7f6dd2d50bc0]
Nov 5 21:05:20 server1 mysqld: /usr/sbin/mysqld [0x7f6dd2d09066]
Nov 5 21:05:20 server1 mysqld: /usr/sbin/mysqld(ha_initialize_handlerton(st_plugin_int*)+0x38) [0x7f6dd2c1a768]
Nov 5 21:05:20 server1 mysqld: /usr/sbin/mysqld [0x7f6dd2ca232c]
Nov 5 21:05:20 server1 mysqld: /usr/sbin/mysqld(plugin_init(int*, char**, int)+0x518) [0x7f6dd2ca4578]
Nov 5 21:05:20 server1 mysqld: /usr/sbin/mysqld [0x7f6dd2b29bbb]
Nov 5 21:05:20 server1 mysqld: /usr/sbin/mysqld(main+0x1f0) [0x7f6dd2b2a740]
Nov 5 21:05:20 server1 mysqld: /lib/libc.so.6(__libc_start_main+0xe6) [0x7f6dd06491a6]
Nov 5 21:05:20 server1 mysqld: /usr/sbin/mysqld [0x7f6dd2a59759]
Nov 5 21:05:20 server1 mysqld: The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
Nov 5 21:05:20 server1 mysqld: information that should help you find out what is causing the crash.
Nov 5 21:05:20 server1 mysqld: Writing a core file
Nov 5 21:05:20 server1 mysqld_safe: mysqld from pid file /var/run/mysqld/mysqld.pid ended
Nov 5 21:05:34 server1 /etc/init.d/mysql[32456]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
Nov 5 21:05:34 server1 /etc/init.d/mysql[32456]: #007/usr/bin/mysqladmin: connect to server at 'localhost' failed
Nov 5 21:05:34 server1 /etc/init.d/mysql[32456]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Nov 5 21:05:34 server1 /etc/init.d/mysql[32456]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Nov 5 21:05:34 server1 /etc/init.d/mysql[32456]:
=====

Moving out aria_log.00000003 and aria_log_control allowed MySQL to start again. Running with 5.2.9. Uploaded a copy of those files to FTP.

Related branches

Changed in maria:
assignee: nobody → Michael Widenius (monty)
importance: Undecided → Critical
status: New → Confirmed
Michael Widenius (monty)
Changed in maria:
status: Confirmed → In Progress
Michael Widenius (monty)
Changed in maria:
status: In Progress → New
Michael Widenius (monty)
Changed in maria:
status: New → In Progress
milestone: none → 5.2
Revision history for this message
Elena Stepanova (elenst) wrote :

# Test case
# Put it in the same mysql-test folder where mysql-test-run.pl resides.
# Run as
# perl ./<test name>
# The same test case will also be attached

$ENV{MTR_VERSION}=2;

print "#### Creating test file and data...####\n";

open( TEST, '>t/test.test' )
  || die "Could not open t/test.test for writing\n";
print TEST "
USE test; \
DROP TABLE IF EXISTS t1; \
CREATE TABLE t1 \
( word VARCHAR(255) PRIMARY KEY ) ENGINE=Aria; \
LOAD DATA LOCAL INFILE 'update.in' INTO TABLE t1; \
SET AUTOCOMMIT=0; \
DELETE FROM t1; \
LOAD DATA LOCAL INFILE 'update.in' \
INTO TABLE t1 IGNORE 1 LINES; \
COMMIT; \
";
close( TEST );
open( DATA, '>update.in' )
  || die "Could not open update.in for writing\n";
print DATA "saved1\nsaved2";
close( DATA );

print "#### Starting server... ####\n";
system( "perl ./mysql-test-run.pl --start-and-exit test" );

print "#### Running SQL... ####\n";
system( "perl mysql-test-run.pl "
  . "--extern socket=var/tmp/mysqld.1.sock test" );

print "#### Reading PID file... ####\n";
open( PID, 'var/run/mysqld.1.pid' )
  || die "Could not open var/run/mysqld.1.pid\n";
my $pid = <PID>;
close( PID );
chomp $pid;

print "#### Killing server.... ####\n";
system( "kill -9 $pid" );

print "#### Trying to restart the server.... ####\n";
system( "perl mysql-test-run.pl --start-dirty test" );
system( "cat var/log/mysqld.1.err" );

# EOF

Revision history for this message
Elena Stepanova (elenst) wrote :

To reproduce the problem manually:

- Create a text file update.in with two lines in it, e.g.
saved1
saved2
- Start a server on a fresh data folder, default server settings are enough
- Execute SQL

USE test;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1
( word VARCHAR(255) PRIMARY KEY ) ENGINE=Aria;
LOAD DATA LOCAL INFILE 'update.in' INTO TABLE t1;
SET AUTOCOMMIT=0;
DELETE FROM t1;
LOAD DATA LOCAL INFILE 'update.in'
INTO TABLE t1 IGNORE 1 LINES;
COMMIT;

(make sure you have the right path to update.in)
- kill server with SIGKILL or alike
- try to start server on the same datadir again

Revision history for this message
Elena Stepanova (elenst) wrote :

Same perl test as an attachment, for convenience

Michael Widenius (monty)
Changed in maria:
status: In Progress → Fix Committed
Michael Widenius (monty)
Changed in maria:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.