Bug #11560 | server crashed creating index whilst big load was going. | ||
---|---|---|---|
Submitted: | 25 Jun 2005 5:24 | Modified: | 4 Jul 2005 19:05 |
Reporter: | Paul McArdle | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | MySQL Server | Severity: | S2 (Serious) |
Version: | Ver 5.0.7-beta-standard for pc-l | OS: | Linux (red hat 9) |
Assigned to: | CPU Architecture: | Any |
[25 Jun 2005 5:24]
Paul McArdle
[25 Jun 2005 19:09]
Jorge del Conde
I was unable to reporduce this bug. This is the script that I used to test it out: printf ("inserting values...\n"); for (i=0;i<=NUM;i++) { sprintf (qry, "INSERT INTO animal VALUES ('%d_%d', %d)", i, i, i); mysql_query(MySQL,qry); res = mysql_store_result(MySQL); mysql_free_result(res); printf("."); } getchar(); printf ("\nselecting values...\n"); for (i=0;i<=NUM;i++) { sprintf (qry, "SELECT * FROM animal WHERE name = '%d_%d'", i, i); mysql_query(MySQL,qry); res = mysql_store_result(MySQL); mysql_free_result(res); printf("."); } getchar(); printf ("\ndeleting values...\n"); for (i=0;i<=NUM;i++) { sprintf (qry, "DELETE FROM animal WHERE name = '%d_%d'", i, i); mysql_query(MySQL,qry); res = mysql_store_result(MySQL); mysql_free_result(res); printf("."); } Can you please give me a fully working script that reproduces this behaviour ? Also, running the above script took too long, would it be ok (for testing purposes) to create 'name' as a primary key ?
[26 Jun 2005 1:03]
Paul McArdle
Hi, was using ruby1.6.8 & ruby-mysql, START SERVER [root@localhost root]# mysqld -uroot --sock=/tmp/mysql.sock & [1] 2416 050626 10:17:39 [Warning] Asked for 196608 thread stack, but got 126976 [root@localhost root]# 050626 10:17:40 InnoDB: Started; log sequence number 0 43644 050626 10:17:40 [Note] mysqld: ready for connections. Version: '5.0.7-beta-standard' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Edition - Standard (GPL) [root@localhost root]# opened 4 or five teminals under red hat 9 kernel 2.4.20.31.9 ADD CLIENTS connected to server with ruby in each terminal using ('localhost', 'mysql', '','test') teminal 1 irb >require '/var/www/cgi-bin/oldruby/lib/ruby/1.8/mysql' => true irb(main):002:0> require '/var/www/cgi-bin/oldruby/lib/ruby/1.8/mysql411' => true irb(main):007:0> my = Mysql.connect('localhost','mysql','','test') => #<Mysql> irb(main):008:0> (1..1000000).each do |i| irb(main):009:1* res = my.query("select * from animal where name = '#{i.to_s}_#{i.to_s}'") irb(main):010:1> sleep .00005 irb(main):010:1> puts i irb(main):011:1> end 1 2 3 4 ........... i've got 1 terminal going now. did similar in next terminal (1..1000000).each do |i| my.query("insert into animal values('#{i.to_s}','#{i.to_s}' )") sleep .00005 end #off it goes will run all night teminal 2 (1..1000000).each do |i| my.query("select from animal where name = '#{i.to_s}_#{i.to_s}' ") # trigger converts animal.name to name + "_" + name sleep .00005 end #off it goes will run all night etc. teminal 3 (1..1000000).each do |i| my.query("select from animal where name = '#{i.to_s}_#{i.to_s}' ") # trigger converts animal.name to name + "_" + name sleep .00005 end #off it goes will run all night mysqladmin -uroot -prooted -S/tmp/mysql.sock status Uptime: 939 Threads: 3 Questions: 311930 Slow queries: 0 Opens: 0 Flush tables: 1 Open tables: 2 Queries per second avg: 332.194 [root@localhost root]# START MYSQLADMINISTRATOR create an index on animal.name through the various dialogs use defaults. got sucess message got error retrieving info for table test.animal object not found got mysqld got signal 11; 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. key_buffer_size=8388600 read_buffer_size=131072 max_used_connections=6 max_connections=100 threads_connected=5 It is possible that mysqld could use up to key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 225791 K bytes of memory Hope that's ok; if not, decrease some variables in the equation. thd=0x89d9c10 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... Cannot determine thread, fp=0xbfe5eac8, backtrace may not be correct. Stack range sanity check OK, backtrace follows: 0x809cc37 0x834a258 0x8053f19 0x805ca7b 0x817953a 0x81770c4 0x81774cd 0x80d3f41 0x80f2609 0x80afaaa 0x80b4309 0x80ac7f4 0x80ac124 0x80ab6b4 0x8347a0c 0x837141a New value of fp=(nil) failed sanity check, terminating stack trace! Please read http://dev.mysql.com/doc/mysql/en/Using_stack_trace.html and follow instructions on how to resolve the stack trace. Resolved stack trace is much more helpful in diagnosing the problem, so please do resolve it Trying to get some variables. Some pointers may be invalid and cause the dump to abort... thd->query at 0x8a063a8 = insert into animal values('808334','808334' ) thd->thread_id=1 The manual page at http://www.mysql.com/doc/en/Crashing.html contains information that should help you find out what is causing the crash. from terminal where I statred mysqld. was up to 450 per sec before crash. Uptime: 2013 Threads: 6 Questions: 910456 Slow queries: 0 Opens: 0 Flush tables: 1 Open tables: 26 Queries per second avg: 452.288 time to fix the test database.
[4 Jul 2005 19:05]
Jorge del Conde
I was still unable to reproduce this bug using the latest 5.0 from bk.