Bug #43733 Select on processlist let the embedded server crash (concurrent_innodb_safelog)
Submitted: 18 Mar 2009 16:11 Modified: 18 Dec 2009 20:46
Reporter: Horst Hunger Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Embedded Library ( libmysqld ) Severity:S1 (Critical)
Version:5.1.33-debug, 5.1-bugteam OS:Linux (suse-linux-gnu on i686)
Assigned to: Alexey Botchkov
Triage: Triaged: D1 (Critical)

[18 Mar 2009 16:11] Horst Hunger
Description:
After inserting selects on processlist into concurrent.inc of the main test suite (involved concurrent_innodb_safelog.test and concurrent_innodb_unsafelog.test) the embedded server stopped in pushbuild with the following trace back:

Logging: ./mtr  --embedded-server concurrent_innodb_safelog
090318 16:44:48 [Warning] Forcing shutdown of 2 plugins
MySQL Version 5.1.33
Checking supported features...
 - skipping ndbcluster
 - skipping SSL
 - binaries are debug compiled
Collecting tests...
vardir: /work/bzr/mysql-5.1-39484/mysql-test/var
Checking leftover processes...
 - found old pid 751 in 'mysqld.1.pid', killing it...
   process did not exist!
Removing old var directory...
Creating var directory '/work/bzr/mysql-5.1-39484/mysql-test/var'...
Installing system database...
Using server port 60300

==============================================================================

TEST                                      RESULT   TIME (ms)
------------------------------------------------------------

worker[1] Using MTR_BUILD_THREAD 250, with reserved ports 12500..12509
main.concurrent_innodb_safelog           [ fail ]
        Test ended at 2009-03-18 16:45:05

CURRENT_TEST: main.concurrent_innodb_safelog
InnoDB: The first specified data file /work/bzr/mysql-5.1-39484/mysql-test/var/mysqld.1/data/ibdata1 did not exist:
InnoDB: a new database to be created!
090318 18:44:53  InnoDB: Setting file /work/bzr/mysql-5.1-39484/mysql-test/var/mysqld.1/data/ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
090318 18:44:54  InnoDB: Log file /work/bzr/mysql-5.1-39484/mysql-test/var/mysqld.1/data/ib_logfile0 did not exist: new to be created
InnoDB: Setting log file /work/bzr/mysql-5.1-39484/mysql-test/var/mysqld.1/data/ib_logfile0 size to 5 MB
InnoDB: Database physically writes the file full: wait...
090318 18:44:54  InnoDB: Log file /work/bzr/mysql-5.1-39484/mysql-test/var/mysqld.1/data/ib_logfile1 did not exist: new to be created
InnoDB: Setting log file /work/bzr/mysql-5.1-39484/mysql-test/var/mysqld.1/data/ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
Got error 22 when trying to lock mutex at sql_show.cc, line 1867
mysqltest got signal 6
read_command_buf at 0x899acc0 = }
conn->name at 0x8f79970 = thread1
conn->cur_query at (nil) is an invalid pointer
Attempting backtrace...
stack_bottom = (nil) thread_stack 0x30000
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded(my_print_stacktrace+0x26)[0x8268e99]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded[0x81d112c]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded[0x81d1156]
[0xffffe420]
/lib/libc.so.6(abort+0x101)[0xb7de81e1]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded(safe_mutex_lock+0x18e)[0x826d291]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded(_Z23fill_schema_processlistP3THDP10TABLE_LISTP4Item+0x413)[0x833572f]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded(_Z24get_schema_tables_resultP4JOIN23enum_schema_table_state+0x294)[0x832abe6]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded(_ZN4JOIN4execEv+0x69e)[0x8320ebe]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded(_Z12mysql_selectP3THDPPP4ItemP10TABLE_LISTjR4ListIS1_ES2_jP8st_orderSB_S2_SB_yP13select_resultP18st_select_lex_unitP13st_select_lex+0x342)[0x831da50]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded(_Z13handle_selectP3THDP6st_lexP13select_resultm+0x201)[0x8322e15]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded[0x82d9e53]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded(_Z21mysql_execute_commandP3THD+0x51c)[0x82dba60]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded(_Z11mysql_parseP3THDPKcjPS2_+0x1d0)[0x82e2b08]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded(_Z16dispatch_command19enum_server_commandP3THDPcj+0x9f4)[0x82e3690]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded[0x82344a7]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded(mysql_send_query+0x1c8)[0x81e63c5]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded(mysql_real_query+0xa5)[0x81e6475]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded(_Z13var_query_setP3VARPKcPS2_+0x11f)[0x81dc961]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded(_Z9eval_exprP3VARPKcPS2_+0x142)[0x81dc2a2]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded(_Z7var_setPKcS0_S0_S0_+0x123)[0x81dcc53]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded(_Z6do_letP10st_command+0x1c6)[0x81dcf60]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded(main+0xa4d)[0x81dfa15]
/lib/libc.so.6(__libc_start_main+0xe0)[0xb7dd2fe0]
/work/bzr/mysql-5.1-39484/libmysqld/examples/mysqltest_embedded[0x81cea01]
Writing a core file...

How to repeat:
./mtr --embedded-server concurrent_innodb_safelog

or

./mtr --embedded-server concurrent_innodb_unsafelog
[18 Mar 2009 16:23] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/69629

2840 Horst Hunger	2009-03-18
      Due to bug#43733 I disabled "concurrent_innodb_(un)safelog.test" for embedded server.
[18 Mar 2009 16:57] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/69636

3077 Horst Hunger	2009-03-18
      Due to bug#43733 I disabled the tests "concurrent_innodb_(un)safelog.test" also in 6.0.
[18 Mar 2009 20:07] Sveta Smirnova
Thank you for the report.

I can not repeat described behavior with main 5.1 tree. Which tree do you use? How did you compile MySQL?
[23 Mar 2009 11:19] Sveta Smirnova
Thank you for the feedback.

Verified as described.
[23 Mar 2009 11:23] Sveta Smirnova
concurrent_innodb_safelog once failed with timeout for me and crashed second time.
[27 Mar 2009 14:57] Bugs System
Pushed into 5.1.34 (revid:joro@sun.com-20090327143448-wuuuycetc562ty6o) (version source revid:leonard@mysql.com-20090316090622-sr8lylqvsl1jrcnv) (merge vers: 5.1.34) (pib:6)
[13 Apr 2009 9:21] Bugs System
Pushed into 6.0.11-alpha (revid:alik@sun.com-20090413084402-snnrocwzktcl88ny) (version source revid:chad@mysql.com-20090318215944-c523ue4h6jl8r670) (merge vers: 6.0.11-alpha) (pib:6)
[4 May 2009 10:37] Satya B
myisam_debug.test is also disabled in embedded mode due to this bug.
[9 May 2009 16:45] Bugs System
Pushed into 5.1.34-ndb-6.2.18 (revid:jonas@mysql.com-20090508185236-p9b3as7qyauybefl) (version source revid:jonas@mysql.com-20090508185236-p9b3as7qyauybefl) (merge vers: 5.1.34-ndb-6.2.18) (pib:6)
[9 May 2009 17:41] Bugs System
Pushed into 5.1.34-ndb-6.3.25 (revid:jonas@mysql.com-20090509063138-1u3q3v09wnn2txyt) (version source revid:jonas@mysql.com-20090509063138-1u3q3v09wnn2txyt) (merge vers: 5.1.34-ndb-6.3.25) (pib:6)
[9 May 2009 18:39] Bugs System
Pushed into 5.1.34-ndb-7.0.6 (revid:jonas@mysql.com-20090509154927-im9a7g846c6u1hzc) (version source revid:jonas@mysql.com-20090509154927-im9a7g846c6u1hzc) (merge vers: 5.1.34-ndb-7.0.6) (pib:6)
[5 Jun 2009 8:52] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/75630

2925 Alexey Botchkov	2009-06-04
      Bug#43733      Select on processlist let the embedded server crash (concurrent_innodb_safelog)
          the thread->mysys_var parameter should be empty for the idle
          embedded-server threads so that working threads can safely free
          this memory.
      
      per-file comments:
        libmysqld/lib_sql.cc
      Bug#43733      Select on processlist let the embedded server crash (concurrent_innodb_safelog)
          set thread->mysys_var= 0 after the query is handled
      
        mysql-test/include/concurrent.inc
      Bug#43733      Select on processlist let the embedded server crash (concurrent_innodb_safelog)
          enable these for the embedded-server mode
      
        sql/sql_show.cc
      Bug#43733      Select on processlist let the embedded server crash (concurrent_innodb_safelog)
          show thread lock status in the query result
[5 Jun 2009 9:07] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/75649

2925 Alexey Botchkov	2009-06-04
      Bug#43733      Select on processlist let the embedded server crash (concurrent_innodb_safelog)
          the thread->mysys_var parameter should be empty for the idle
          embedded-server threads so that working threads can safely free
          this memory.
      
      per-file comments:
        libmysqld/lib_sql.cc
      Bug#43733      Select on processlist let the embedded server crash (concurrent_innodb_safelog)
          set thread->mysys_var= 0 after the query is handled
      
        mysql-test/include/concurrent.inc
      Bug#43733      Select on processlist let the embedded server crash (concurrent_innodb_safelog)
          enable these for the embedded-server mode
      
        sql/sql_show.cc
      Bug#43733      Select on processlist let the embedded server crash (concurrent_innodb_safelog)
          show thread lock status in the query result
[5 Jun 2009 9:07] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/75650

2925 Alexey Botchkov	2009-06-04
      Bug#43733      Select on processlist let the embedded server crash (concurrent_innodb_safelog)
          the thread->mysys_var parameter should be empty for the idle
          embedded-server threads so that working threads can safely free
          this memory.
      
      per-file comments:
        libmysqld/lib_sql.cc
      Bug#43733      Select on processlist let the embedded server crash (concurrent_innodb_safelog)
          set thread->mysys_var= 0 after the query is handled
      
        mysql-test/include/concurrent.inc
      Bug#43733      Select on processlist let the embedded server crash (concurrent_innodb_safelog)
          enable these for the embedded-server mode
      
        sql/sql_show.cc
      Bug#43733      Select on processlist let the embedded server crash (concurrent_innodb_safelog)
          show thread lock status in the query result
[29 Sep 2009 12:46] Alexander Barkov
http://lists.mysql.com/commits/75650 is ok to push.
[30 Sep 2009 2:22] Alexey Botchkov
5.1-bugteam
[6 Oct 2009 9:01] Bugs System
Pushed into 5.1.40 (revid:joro@sun.com-20091006073316-lea2cpijh9r6on7c) (version source revid:ingo.struewing@sun.com-20091002112748-2xmjv846dk323nc3) (merge vers: 5.1.40) (pib:11)
[7 Oct 2009 23:42] Paul Dubois
Noted in 5.1.40 changelog.

Selecting from the process list in the embedded server caused a crash.

Setting report to NDI pending push into 5.4.x.
[22 Oct 2009 6:36] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20091022063126-l0qzirh9xyhp0bpc) (version source revid:alik@sun.com-20091019135554-s1pvptt6i750lfhv) (merge vers: 6.0.14-alpha) (pib:13)
[22 Oct 2009 7:08] Bugs System
Pushed into 5.5.0-beta (revid:alik@sun.com-20091022060553-znkmxm0g0gm6ckvw) (version source revid:alik@sun.com-20091013094238-g67x6tgdm9a7uik0) (merge vers: 5.5.0-beta) (pib:13)
[22 Oct 2009 19:24] Paul Dubois
Noted in 5.5.0, 6.0.14 changelogs.
[18 Dec 2009 10:36] Bugs System
Pushed into 5.1.41-ndb-7.1.0 (revid:jonas@mysql.com-20091218102229-64tk47xonu3dv6r6) (version source revid:jonas@mysql.com-20091218095730-26gwjidfsdw45dto) (merge vers: 5.1.41-ndb-7.1.0) (pib:15)
[18 Dec 2009 10:52] Bugs System
Pushed into 5.1.41-ndb-6.2.19 (revid:jonas@mysql.com-20091218100224-vtzr0fahhsuhjsmt) (version source revid:jonas@mysql.com-20091217101452-qwzyaig50w74xmye) (merge vers: 5.1.41-ndb-6.2.19) (pib:15)
[18 Dec 2009 11:07] Bugs System
Pushed into 5.1.41-ndb-6.3.31 (revid:jonas@mysql.com-20091218100616-75d9tek96o6ob6k0) (version source revid:jonas@mysql.com-20091217154335-290no45qdins5bwo) (merge vers: 5.1.41-ndb-6.3.31) (pib:15)
[18 Dec 2009 11:21] Bugs System
Pushed into 5.1.41-ndb-7.0.11 (revid:jonas@mysql.com-20091218101303-ga32mrnr15jsa606) (version source revid:jonas@mysql.com-20091218064304-ezreonykd9f4kelk) (merge vers: 5.1.41-ndb-7.0.11) (pib:15)