intermittent ER_KEY_NOT_FOUND errors during insert
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
PBXT |
Fix Committed
|
Undecided
|
Paul McCullagh |
Bug Description
I am using MySQL 5.1.45 and PBXT 1.1 revision 851
my non-default pbxt settings are:
pbxt_index_
pbxt_record_
pbxt_flush_
I am using a modified sysbench test (to be published real soon) in which 1 or more threads run nothing but the following on the sbtest table:
"INSERT INTO %s values(?,0,'0',"
" ON DUPLICATE KEY UPDATE c = c + 1",
C has type 'char' in the table, I use it as an int.
I get intermittent errors:
ALERT: failed to execute MySQL query: `INSERT INTO sbtest values(
yyyyyyyyy') ON DUPLICATE KEY UPDATE c = c + 1`:
ALERT: Error 1032 Can't find record in 'sbtest'
FATAL: database error, exiting...
I run it in a loop: first for 1 thread, then 2, then 4, ... then 1024
The test was OK for 1 thread.
Then failed for 2, 4, 8, 16, 32 threads
Then was ok for 64 or more threads
There are no errors in the database error log.
Changed in pbxt: | |
status: | New → In Progress |
Changed in pbxt: | |
assignee: | nobody → Paul McCullagh (paul-mccullagh) |
Reproduction code is sysbench at https:/ /code.launchpad .net/~mdcallag/ sysbench/ 0.4-incupdate
vary the the value for --num-threads
sysbench --test=oltp --oltp- table-size= 2000000 --max-time=60 --max-requests=0 --mysql- table-engine= pbxt \ ps-mode= disable --mysql- engine- trx=no --oltp-skip-trx --oltp- test-mode= incinsert \ dist-type= uniform --oltp-range-size=1 prepare
--db-
--oltp-
sysbench --test=oltp --oltp- table-size= 2000000 --max-time=60 --max-requests=0 --mysql- table-engine= pbxt \ mode=disable --mysql- engine- trx=no --oltp-skip-trx --oltp- test-mode= incinsert \ dist-type= uniform --oltp-range-size=1 --num-threads=1 --seed-rng=1 run
--db-ps-
--oltp-