Bug #10174 blackhole test hangs on 64 bit in 5.0
Submitted: 26 Apr 2005 13:02 Modified: 26 Apr 2005 14:16
Reporter: Guilhem Bichot Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:5.0-bk OS:Linux (linux)
Assigned to: CPU Architecture:Any

[26 Apr 2005 13:02] Guilhem Bichot
Description:
./mysql-test-run --skip-innodb t/blackhole.test
mysqld is staying in a 100% CPU loop.
Last lines of .err:
CURRENT_TEST: blackhole
050426 15:54:25 [Note] /nfstmp1/guilhem/mysql-5.0-4ita/sql/mysqld: ready for connections.
Version: '5.0.5-beta-debug-log'  socket: '/nfstmp1/guilhem/mysql-5.0-4ita/mysql-test/var/tmp/master.sock'  port: 9306  MySQL
 Community Edition - Debug (GPL)
Warning: prev link 1 didn't point at previous lock at read: read lock with no write locks
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Last lines of .trace (running with --debug):
T@23058430: | | | >open_and_lock_tables
T@23058430: | | | | >open_tables
T@23058430: | | | | | >init_alloc_root
T@23058430: | | | | | | enter: root: 0x2000000000636330
T@23058430: | | | | | | >my_malloc
T@23058430: | | | | | | | my: size: 8040  my_flags: 0
T@23058430: | | | | | | | exit: ptr: 0x6000000000227070
T@23058430: | | | | | | <my_malloc
T@23058430: | | | | | <init_alloc_root
T@23058430: | | | | | >open_table
T@23058430: | | | | | | >hash_search
T@23058430: | | | | | | | exit: found key at 0
T@23058430: | | | | | | <hash_search
T@23058430: | | | | | <open_table
T@23058430: | | | | | >free_root
T@23058430: | | | | | | enter: root: 0x2000000000636330  flags: 1
T@23058430: | | | | | <free_root
T@23058430: | | | | | >free_root
T@23058430: | | | | | | enter: root: 0x2000000000636330  flags: 0
T@23058430: | | | | | | >my_free
T@23058430: | | | | | | | my: ptr: 0x6000000000227070
T@23058430: | | | | | | <my_free
T@23058430: | | | | | <free_root
T@23058430: | | | | <open_tables
T@23058430: | | | | >lock_tables
T@23058430: | | | | | >alloc_root
T@23058430: | | | | | | enter: root: 0x60000000001f36b8
T@23058430: | | | | | | exit: ptr: 0x60000000001fc568
T@23058430: | | | | | <alloc_root
T@23058430: | | | | | >mysql_lock_tables
T@23058430: | | | | | | >my_malloc
T@23058430: | | | | | | | my: size: 40  my_flags: 0
T@23058430: | | | | | | | exit: ptr: 0x6000000000207ce0
T@23058430: | | | | | | <my_malloc
T@23058430: | | | | | | >lock_external
T@23058430: | | | | | | | >ha_blackhole::external_lock
T@23058430: | | | | | | | <ha_blackhole::external_lock
T@23058430: | | | | | | <lock_external
T@23058430: | | | | | | >thr_multi_lock
T@23058430: | | | | | | | lock: data: 0x6000000000207cf8  count: 1
T@23058430: | | | | | | | >thr_lock
T@23058430: | | | | | | | | lock: data: 0x60000000001ffc78  thread: 2305843009220212944  lock: 0x60000000001ffcc0  type: 0
T@23058430: | | | | | | | | >check_locks
T@23058430: | | | | | | | | <check_locks
T@23058430: | | | | | | | | >check_locks

gdb of the looping thread:
(gdb) bt
#0  check_locks (lock=0x40000000009a4580, where=0x6000000000adab94 "") at thr_lock.c:194
#1  0x40000000008bf1c0 in thr_lock (data=0x0, lock_type=TL_IGNORE) at thr_lock.c:495
#2  0x40000000008c14a0 in thr_multi_lock (data=0x0, count=0) at thr_lock.c:846
#3  0x40000000002a8410 in mysql_lock_tables (thd=0x6000000000ad8130, tables=0x6000000000ae0c10, count=1) at lock.cc:125
#4  0x400000000033b8d0 in lock_tables (thd=0x6000000000ad8130, tables=0x6000000000b0cdd8, count=1) at sql_base.cc:2239
#5  0x400000000033af60 in open_and_lock_tables (thd=0x6000000000ad8130, tables=0x6000000000b0cdd8) at sql_base.cc:2081
#6  0x40000000003aa8d0 in mysql_test_select (stmt=0x6000000000b0bd50, tables=0x6000000000b0cdd8, text_protocol=false)
    at sql_prepare.cc:1153
#7  0x40000000003abd70 in check_prepared_statement (stmt=0x6000000000b0bd50, text_protocol=false) at sql_prepare.cc:1602
#8  0x40000000003ac8c0 in mysql_stmt_prepare (thd=0x6000000000ad8130, packet=0x6000000000b0bda0 "\2008\b",
    packet_length=22, name=0x0) at sql_prepare.cc:1798
#9  0x40000000002ec730 in dispatch_command (command=COM_PREPARE, thd=0x6000000000ad8130,
    packet=0x6000000000b02d11 "select period from t1", packet_length=22) at sql_parse.cc:1631
#10 0x40000000002ebd70 in do_command (thd=0x6000000000ad8130) at sql_parse.cc:1457
#11 0x40000000002e9f40 in handle_one_connection (arg=0x60000000001a0438) at sql_parse.cc:1114
#12 0x20000000000d05b0 in start_thread () from /lib/tls/libpthread.so.0

No problem in 4.1.

How to repeat:
See description. The machine has 4 Itanium2 CPUs.