Description:
Upon running sysbench against falcon with 64 threads, update no key test crashes with a back trace of:
(gdb) bt
#0 0x0000000000828066 in interlockedDecrement (ptr=0xe0) at Interlock.h:90
#1 0x0000000000829782 in Transaction::releaseDependency (this=0x0) at Transaction.cpp:502
#2 0x0000000000829a18 in Transaction::releaseDependencies (this=0x2aaaad928028) at Transaction.cpp:343
#3 0x000000000082a390 in Transaction::rollback (this=0x2aaaad928028) at Transaction.cpp:225
#4 0x0000000000841c80 in Connection::rollback (this=0x4c20b90) at Connection.cpp:277
#5 0x0000000000812823 in StorageConnection::rollback (this=0x4c20a78) at StorageConnection.cpp:272
#6 0x000000000080f1ab in NfsStorageTable::rollback (hton=0xf54578, thd=0x1380d68, all=false) at ha_falcon.cpp:668
#7 0x000000000075029f in ha_rollback_trans (thd=0x1380d68, all=false) at handler.cc:817
#8 0x0000000000750a86 in ha_autocommit_or_rollback (thd=0x1380d68, error=1) at handler.cc:874
#9 0x00000000006e29a3 in mysql_update (thd=0x1380d68, table_list=0x12a6e30, fields=@0x111b960, values=@0x111bcf8, conds=0x12a7ce0, order_num=0,
order=0x0, limit=18446744073709551615, handle_duplicates=DUP_ERROR, ignore=false) at sql_update.cc:672
#10 0x000000000065917f in mysql_execute_command (thd=0x1380d68) at sql_parse.cc:3320
#11 0x00000000006da3ca in Prepared_statement::execute (this=0x111b398, expanded_query=0x43eb5510, open_cursor=false) at sql_prepare.cc:2965
#12 0x00000000006da949 in mysql_stmt_execute (thd=0x1380d68, packet_arg=0x1115349 "\003", packet_length=118) at sql_prepare.cc:2291
#13 0x000000000066056b in dispatch_command (command=COM_STMT_EXECUTE, thd=0x1380d68, packet=0x1115349 "\003", packet_length=118)
at sql_parse.cc:1789
#14 0x0000000000661e85 in do_command (thd=0x1380d68) at sql_parse.cc:1612
#15 0x0000000000662292 in handle_one_connection (arg=0x1380d68) at sql_parse.cc:1227
#16 0x000000390fe062ea in start_thread () from /lib64/libpthread.so.0
#17 0x000000390e5cb73d in clone () from /lib64/libc.so.6
#18 0x0000000000000000 in ?? ()
Here are the last 20 lines in the query log:
[patg@buffy mysql-5.1-falcon]$ tail -20 mysql-test/var/master-data/mysql/general_log.CSV
"2006-10-25 14:59:16","root[root] @ localhost []","1135","0","Execute","[3] UPDATE sbtest set c='787669088-708189422-701095817-831160930-370846242-260512804-1055793725-517156329-1034506085-768780692' where id=495475"
"2006-10-25 14:59:16","root[root] @ localhost []","1150","0","Execute","[3] UPDATE sbtest set c='645968280-10326182-233838034-327577498-125929265-836548932-570215011-1058338255-1003637987-196655957' where id=571442"
"2006-10-25 14:59:16","root[root] @ localhost []","1168","0","Execute","[3] UPDATE sbtest set c='261728736-897863477-349105817-924887753-1054982199-745952642-326283553-576063003-78337567-210048136' where id=495551"
"2006-10-25 14:59:16","root[root] @ localhost []","1148","0","Execute","[3] UPDATE sbtest set c='208727768-158713180-682452837-328558241-669989037-808182525-109727569-19490203-592575674-756401712' where id=497737"
"2006-10-25 14:59:16","root[root] @ localhost []","1134","0","Execute","[3] UPDATE sbtest set c='108609023-559546473-167440563-1002214894-934523925-586850932-351599423-920644484-1013781401-953911351' where id=500967"
"2006-10-25 14:59:16","root[root] @ localhost []","1138","0","Execute","[3] UPDATE sbtest set c='947767384-85544794-982658842-971980364-851460690-989432929-358885865-603262306-684884931-7520100' where id=259368"
"2006-10-25 14:59:16","root[root] @ localhost []","1153","0","Execute","[3] UPDATE sbtest set c='744391368-289187625-799371758-61999295-873273755-302843474-758438891-211250763-686854679-116011492' where id=500864"
"2006-10-25 14:59:16","root[root] @ localhost []","1149","0","Execute","[3] UPDATE sbtest set c='654331456-650615471-13879442-646811356-471429897-358178518-65769266-735080679-985708956-732405285' where id=499817"
"2006-10-25 14:59:16","root[root] @ localhost []","1173","0","Execute","[3] UPDATE sbtest set c='159411106-989378357-785481420-43399614-523372495-911455860-1031596644-614455476-1013217319-180135954' where id=499372"
"2006-10-25 14:59:16","root[root] @ localhost []","1174","0","Execute","[3] UPDATE sbtest set c='757360709-895447075-558521568-681265378-540858838-968390267-155060840-130900693-370980985-802858252' where id=576361"
"2006-10-25 14:59:16","root[root] @ localhost []","1157","0","Execute","[3] UPDATE sbtest set c='579218025-412579954-233375433-720908677-310437697-506762476-972326896-227785644-298983369-906405005' where id=501326"
"2006-10-25 14:59:16","root[root] @ localhost []","1145","0","Execute","[3] UPDATE sbtest set c='225902147-501249161-461871092-837864623-392624611-810160747-885720431-437703907-9279925-482368785' where id=441050"
"2006-10-25 14:59:16","root[root] @ localhost []","1133","0","Execute","[3] UPDATE sbtest set c='526204538-409958144-597409282-425944413-303042087-488800261-940139765-135601523-560327191-5615840' where id=497415"
"2006-10-25 14:59:16","root[root] @ localhost []","1163","0","Execute","[3] UPDATE sbtest set c='378835462-757921060-1052787196-79852093-925257880-794270873-396233206-29810804-235749305-788709653' where id=670887"
"2006-10-25 14:59:16","root[root] @ localhost []","1175","0","Execute","[3] UPDATE sbtest set c='114555541-102275782-974394689-399587713-613323813-633293828-839680724-181530715-663173953-1008890163' where id=503048"
"2006-10-25 14:59:16","root[root] @ localhost []","1187","0","Execute","[3] UPDATE sbtest set c='948012135-218830672-650498835-215606852-427067681-979849292-1000161050-701437748-917849997-126887295' where id=499275"
"2006-10-25 14:59:16","root[root] @ localhost []","1142","0","Execute","[3] UPDATE sbtest set c='822323604-82652055-207779107-65921893-1043011144-615364485-10957929-773736580-76095333-354588239' where id=498126"
"2006-10-25 14:59:16","root[root] @ localhost []","1181","0","Execute","[3] UPDATE sbtest set c='666156447-54963964-269274563-539269152-730111515-109863457-623632620-1018371918-66463843-100260124' where id=501060"
"2006-10-25 14:59:16","root[root] @ localhost []","1151","0","Execute","[3] UPDATE sbtest set c='601777114-318407770-143820823-1012344984-383259429-566224601-437110182-416183162-826563962-627960996' where id=479705"
"2006-10-25 14:59:16","root[root] @ localhost []","1131","0","Execute","[3] UPDATE sbtest set c='575234803-1040818092-813402461-882891011-929848667-45231547-303672986-517268713-885597939-656506133' where id=496017"
How to repeat:
1. Start mysqld from gdb with (change dirs per your env)
--gdb --default-storage-engine=falcon --skip-innodb --skip-ndbcluster --port=5555 --socket=/tmp/falc.sock --datadir=/home/patg/mysql-build/mysql-5.1-falcon/mysql-test/var/master-data/ --character-sets-dir=/home/patg/mysql-build/mysql-5.1-falcon/sql/share/charsets --basedir=/home/patg/mysql-build/mysql-5.1-falcon/sql --language=/home/patg/mysql-build/mysql-5.1-falcon/sql/share/english --log=/tmp/mysqld.log --max-connections=1000
2. Run sysbench prepare to create and populate test table
/usr/local/bin/sysbench --test=oltp --oltp-table-size=1000000 --mysql-engine-trx=yes --mysql-socket=/tmp/patg_falc.sock --mysql-port=5555 --mysql-user=root --mysql-db=sbtest prepare
3. Run sysbench update no key test
/usr/local/bin/sysbench --test=oltp --mysql-engine-trx=yes --oltp-table-name=sbtest --oltp-test-mode=nontrx --oltp-nontrx-mode=update_nokey --max-requests=0 --oltp-dist-type=special --mysql-table-engine=falcon --mysql-user=root --num-threads=64 --max-time=180 --mysql-port=5555 --mysql-socket=/tmp/falc.sock --mysql-db=sbtest --oltp-table-size=1000000 run