| Bug #29081 | mysqld crash following "LOAD DATA INFILE..." with Falcon | ||
|---|---|---|---|
| Submitted: | 13 Jun 2007 16:47 | Modified: | 3 Dec 2007 14:23 |
| Reporter: | Anthony Willard (Basic Quality Contributor) | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Falcon storage engine | Severity: | S2 (Serious) |
| Version: | 6.0.0-alpha-community-nt-debug | OS: | Windows (XP SP2/Vista X64) |
| Assigned to: | Ann Harrison | CPU Architecture: | Any |
[13 Jun 2007 16:47]
Anthony Willard
[13 Jun 2007 16:53]
Anthony Willard
I've uploaded a file "bug-data-29081.zip" to the FTP server.
[13 Jun 2007 16:59]
Anthony Willard
Between each test, I removed all tables in the test database, and removed the test Falcon (fl1, fl2, fts) files, and started the server. I have the basic settings from the install, with no tuning. Let me know if you need my settings.
[14 Jun 2007 11:10]
Hakan Küçükyılmaz
Anthony, this is fixed in latest version of Falcon: hakan@lu0011:~/downloads$ mysql -uroot test < bug_script.sql hakan@lu0011:~/downloads$ mysql -uroot test Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 6.0.1-alpha-debug Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. [13:05] root@test>select count(*) from t1; +----------+ | count(*) | +----------+ | 1200000 | +----------+ 1 row in set (1 min 38.86 sec) Best regards, Hakan
[14 Jun 2007 12:28]
Anthony Willard
Hakan, did you test this on the Windows configuration or *nix? On Windows, the mysql tool completes, then a few minutes later the error shows up as the mysqld process crashes. If it is truly corrected in 6.0.1+, when will that fix be available to test?
[14 Jun 2007 19:26]
MySQL Verification Team
Thank you for the bug report. I was able to repeat with a Windows X64
Falcon server built from the changeset printed at the bottom.
-> KEY `ClaimRangeData` (`GroupID`,`PaidDate`,`TreatmentStartDate`),
-> KEY `ByMember` (`EmployeeSSN`,`DependentNumber`,`PaidDate`,`TreatmentStartDate`),
-> KEY `ByProvider` (`BillingProviderTIN`,`PaidDate`),
-> KEY `ByFamily` (`EmployeeSSN`,`PaidDate`,`TreatmentStartDate`)
->
-> ) ENGINE=FALCON DEFAULT CHARSET=latin1 COMMENT='Test table';
Query OK, 0 rows affected (0.49 sec)
mysql> load data infile "c:/script/bug_data.dat" into table t1 fields terminated by "\t" lines terminated by "\n";
Query OK, 1200000 rows affected (2 min 9.76 sec)
Records: 1200000 Deleted: 0 Skipped: 0 Warnings: 0
c:\build\x64\6.0>bin\mysql -uroot test
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 6.0.1-alpha-nt Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> select count(*) from t1;
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql>
C:\build\x64\6.0>bin\mysqld-nt --standalone --console
070614 16:07:45 InnoDB: Started; log sequence number 0 46409
070614 16:07:46 [Note] Event Scheduler: Loaded 0 events
070614 16:07:46 [Note] bin\mysqld-nt: ready for connections.
Version: '6.0.1-alpha-nt' socket: '' port: 3306 Source distribution
Recovering database C:\build\x64\6.0\data\falcon_master.fts ...
first recovery block is 1
last recovery block is 748
recovery read block is 78
Bugcheck: assertion failed at line 461 in file .\Section.cpp
Memory
Module Line In Use Space in Use Deleted Space deleted
*unknown* 0 22 15166464 146111 10030956
Total 22 15166464 146111 10030956
Number small hunks: 5
Number big hunks: 3
Unique sizes: 1
Free segments: 1
Free space: 1615048
Records
Module Line In Use Space in Use Deleted Space deleted
Total 0 0 0 0
Number small hunks: 0
Number big hunks: 0
Unique sizes: 0
Free segments: 0
Free space: 0
c:\build\x64\6.0>bin\mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 6.0.1-alpha-nt Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show variables like "%version%"
-> ;
+-------------------------+---------------------+
| Variable_name | Value |
+-------------------------+---------------------+
| protocol_version | 10 |
| version | 6.0.1-alpha-nt |
| version_comment | Source distribution |
| version_compile_machine | unknown |
| version_compile_os | Win64 |
+-------------------------+---------------------+
5 rows in set (0.00 sec)
mysql>
[miguel@light mysql-5.1-falcon]$ bk changes | head
ChangeSet@1.2568, 2007-06-13 14:20:08-04:00, jas@rowvwade. +1 -0
Recover from lost tip page.
ChangeSet@1.2567, 2007-06-13 13:49:42-04:00, jas@rowvwade. +4 -0
Finish implementation of drop tablepace.
ChangeSet@1.2566, 2007-06-13 13:05:15-04:00, jas@rowvwade. +9 -0
Extend database validation to table spaces.
ChangeSet@1.2565, 2007-06-13 11:49:23-04:00, jas@rowvwade. +5 -0
[25 Jun 2007 20:18]
Ann Harrison
The proximate cause of the crash was an unhandled exception in rollback code. The cause of the exception and the rollback was running out of cache buffers, an error that can never happen unless there are more threads than buffers. Which was not the case. Correcting the order of precedence of two page types made it possible to release unloved pages from the cache.
[28 Nov 2007 15:39]
MySQL Verification Team
Hakan,
I can't repeat anymore with latest source tree:
-> KEY `ClaimRangeData2` (`PaidDate`,`GroupID`,`TreatmentStartDate`),
-> KEY `ClaimRangeData` (`GroupID`,`PaidDate`,`TreatmentStartDate`),
-> KEY `ByMember` (`EmployeeSSN`,`DependentNumber`,`PaidDate`,`TreatmentStartDate`),
-> KEY `ByProvider` (`BillingProviderTIN`,`PaidDate`),
-> KEY `ByFamily` (`EmployeeSSN`,`PaidDate`,`TreatmentStartDate`)
->
-> ) ENGINE=FALCON DEFAULT CHARSET=latin1 COMMENT='Test table';
Query OK, 0 rows affected (0.69 sec)
mysql> load data infile "c:/t/bug_data.dat" into table t1 fields terminated by "\t" lines terminated by "\n";
Query OK, 1200000 rows affected (2 min 24.30 sec)
Records: 1200000 Deleted: 0 Skipped: 0 Warnings: 0
mysql> exit
Bye
c:\dev>6.0\bin\mysql -uroot test
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 6.0.4-alpha-nt Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> select count(*) from t1;
+----------+
| count(*) |
+----------+
| 1200000 |
+----------+
1 row in set (32.43 sec)
mysql>
[3 Dec 2007 14:23]
MC Brown
A note has been added to the 6.0.4 changelog: When loading large data sets using LOAD DATA INFILE into a Falcon table, the server could crash.
