>Description:
        
 InnoDB crashes when a ROLLBACK of multiple "LOAD DATA INFILE 'file' 
 REPLACE INTO 'table' commands.
 mysqld will not startup again because InnoDB attempts the rollback
 and crashes again.

>How-To-Repeat:

#create a data file (100,000 lines of 3 integers from 0 to 999999)
perl -e 'for($i=0; $i<100000; $i++){print "$i\t$i\t$i\n";}' > /tmp/data

# create a table:
create table speed1 (a int not null, b int, c int, primary key (a), index (b)) 
TYPE=INNODB

mysql> SET AUTOCOMMIT=0;
Query OK, 0 rows affected (0.01 sec)

mysql> LOAD DATA INFILE "/tmp/data.dat" REPLACE INTO TABLE speed1;
Query OK, 200000 rows affected (5.60 sec)
Records: 100000  Deleted: 100000  Skipped: 0  Warnings: 0

mysql> ROLLBACK;
Query OK, 0 rows affected (2.08 sec)

mysql> LOAD DATA INFILE "/tmp/data.dat" REPLACE INTO TABLE speed1;
Query OK, 200000 rows affected (5.59 sec)
Records: 100000  Deleted: 100000  Skipped: 0  Warnings: 0

mysql> LOAD DATA INFILE "/tmp/data.dat" REPLACE INTO TABLE speed1;
Query OK, 200000 rows affected (5.92 sec)
Records: 100000  Deleted: 100000  Skipped: 0  Warnings: 0

mysql> ROLLBACK;
ERROR 2013: Lost connection to MySQL server during query
mysql>

Running mysqld in gdb results in the following:

(gdb) run --basedir=/usr/local/mysql --datadir=/var/lib/mysql --user=root 
--pid-Starting program: /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql 
--dInnoDB: Database was not shut down normally.
InnoDB: Starting recovery from log files...
InnoDB: Starting log scan based on checkpoint at
InnoDB: log sequence number 0 269517328
InnoDB: Doing recovery: scanned up to log sequence number 0 269582848
InnoDB: Doing recovery: scanned up to log sequence number 0 269648384
InnoDB: Doing recovery: scanned up to log sequence number 0 269713920
InnoDB: Doing recovery: scanned up to log sequence number 0 269779456
InnoDB: Doing recovery: scanned up to log sequence number 0 269844992
InnoDB: Doing recovery: scanned up to log sequence number 0 269910528
.
.
.
InnoDB: Doing recovery: scanned up to log sequence number 0 280330752
InnoDB: Doing recovery: scanned up to log sequence number 0 280396288
InnoDB: Doing recovery: scanned up to log sequence number 0 280424053
Innobase: 1 uncommitted transaction(s) which must be rolled back
Innobase: Starting rollback of uncommitted transactions
Innobase: Rolling back trx no 194872

Program received signal SIGSEGV, Segmentation fault.
0x811c9f8 in trx_undo_rec_release ()
(gdb) bt
#0  0x811c9f8 in trx_undo_rec_release ()
#1  0x80fc97e in row_undo_mod ()
#2  0x80f74a5 in row_undo ()
#3  0x80f75b1 in row_undo_step ()
#4  0x80de1e4 in que_run_threads ()
#5  0x811b9ee in trx_rollback_all_without_sess ()
#6  0x813ad9b in recv_recovery_from_checkpoint_finish ()
#7  0x80dca09 in innobase_start_or_create_for_mysql ()
#8  0x80b9d50 in innobase_init ()
#9  0x80b44d4 in ha_init ()
#10 0x806f8b2 in main ()
#11 0x81cbd15 in __libc_start_main (main=0x806f000 <main>, argc=6, ubp_av=0xbffffa54, 
init=0x80480b4 <_init>,
    fini=0x8239d00 <_fini>, rtld_fini=0, stack_end=0xbffffa4c) at 
../sysdeps/generic/libc-start.c:129

>Fix:
None known.

>Submitter-Id:  <submitter ID>
>Originator:    Jeff Shelman
>Organization:
>MySQL support: none 
>Synopsis:      mysqld (InnoDB) crashes on ROLLBACK
>Severity:      critical 
>Priority:      high 
>Category:      mysql
>Class:         sw-bug 
>Release:       mysql-3.23.38 (Source distribution)

>Environment:
        
System: Linux shado 2.4.3-20mdk #1 Sun Apr 15 23:03:10 CEST 2001 i686 unknown
Architecture: i686

Some paths:  /usr/bin/perl /usr/bin/make /usr/bin/gmake /usr/bin/gcc /usr/bin/cc
GCC: Reading specs from /usr/lib/gcc-lib/i586-mandrake-linux/2.96/specs
gcc version 2.96 20000731 (Linux-Mandrake 8.0 2.96-0.48mdk)
Compilation info: CC='gcc'  CFLAGS='-O3 -mpentiumpro'  CXX='gcc'  CXXFLAGS='-O3 
-mpentiumpro -felide-constructors -fno-exceptions -fno-rtti'  LDFLAGS=''
LIBC: 
lrwxrwxrwx    1 root     root           13 May  1 20:19 /lib/libc.so.6 -> libc-2.2.2.so
-rwxr-xr-x    1 root     root      1216268 Feb 21 03:38 /lib/libc-2.2.2.so
-rw-r--r--    1 root     root     26366908 Feb 21 03:31 /usr/lib/libc.a
-rw-r--r--    1 root     root          178 Feb 21 03:31 /usr/lib/libc.so
Configure command: ./configure  --prefix=/usr/local/mysql --enable-assembler 
--with-mysqld-ldflags=-all-static --with-innodb


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to