Bug #31139 | MySQL 6.0.2-alpha and Falcon and bug when trying to create thousands of tables | ||
---|---|---|---|
Submitted: | 21 Sep 2007 20:34 | Modified: | 1 Feb 2008 8:29 |
Reporter: | Mariella Di Giacomo | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | MySQL Server: Falcon storage engine | Severity: | S1 (Critical) |
Version: | 6.0.2 | OS: | Linux (Linux 2.2.6 and Debian 4.0) |
Assigned to: | Vladislav Vaintroub | CPU Architecture: | Any |
[21 Sep 2007 20:34]
Mariella Di Giacomo
[23 Sep 2007 4:05]
MySQL Verification Team
Application to create Falcon Tables
Attachment: bug31139.cpp (text/plain), 1.14 KiB.
[23 Sep 2007 4:40]
MySQL Verification Team
Thank you for the bug report. Verified with a Windows 64-bit server: mysql> show variables like "%version%"; +-------------------------+---------------------+ | Variable_name | Value | +-------------------------+---------------------+ | protocol_version | 10 | | version | 6.0.3-alpha-nt | | version_comment | Source distribution | | version_compile_machine | unknown | | version_compile_os | Win64 | +-------------------------+---------------------+ 5 rows in set (0.03 sec) All memory values are displayed in KB. Abbreviation key: Pri Priority Thd Number of Threads Hnd Number of Handles VM Virtual Memory WS Working Set Priv Private Virtual Memory Priv Pk Private Virtual Memory Peak Faults Page Faults NonP Non-Paged Pool Page Paged Pool Cswtch Context Switches C:\>pslist 3280 -m pslist v1.28 - Sysinternals PsList Copyright ® 2000-2004 Mark Russinovich Sysinternals Process memory detail for LUAR: Name Pid VM WS Priv Priv Pk Faults NonP Page mysqld-nt 3280 104772 19592 35064 43408 5686 10 759 Name Pid VM WS Priv Priv Pk Faults NonP Page mysqld-nt 3280 383560 256480 295184 295184 71783 24 759 First output before to begin to create Falcon tables and second output after 40000 tables were created. The memory usage grows according the number of tables created.
[20 Nov 2007 4:06]
Kevin Lewis
Chris, You can probably figure out where this is crashing. Mariella Di Giacomo got a crash with 4 different configurations. The testcase is currently a .c file, but I bet you could create a stored procedure to create empty tables in a loop. Then the testcase could be put into a mysql-test-run script.
[1 Feb 2008 8:28]
Vladislav Vaintroub
The crash seems to disappear in the latest Falcon. I was able to create 500000 tables on both 64 and 32 bit Windows. The test in mysqltest format is below and (I beter not include it into the test suite, since as it is huge - runs for one hour and consumes 10GB disk). --source include/have_falcon.inc SET storage_engine = Falcon; --disable_warnings DROP PROCEDURE IF EXISTS p; SET GLOBAL falcon_record_memory_max = 5368709120; --enable_warnings delimiter //; create procedure p () begin declare v int default 1; while v < 500000 do select 'alter',v; set @v = concat('create table t',v,'(i int)'); prepare stmt1 from @v; execute stmt1; set v = v + 1; end while; end// call p()// DROP PROCEDURE p// delimiter ;//
[1 Feb 2008 8:29]
Vladislav Vaintroub
Can't reproduce with latest 6.0.5BK