| Bug #65598 | Concurrent SET requests return non-existant error | ||
|---|---|---|---|
| Submitted: | 13 Jun 2012 9:58 | Modified: | 13 Jun 2012 10:18 |
| Reporter: | Pedro Fonseca | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: MyISAM storage engine | Severity: | S3 (Non-critical) |
| Version: | 5.5.19, 5.5.26 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[13 Jun 2012 10:18]
Valeriy Kravchuk
I've repeated this easily with 5.5.26 on 64-bit FC14, by executing the following commands from 2 windows concurrently: [openxs@chief 5.5]$ for i in `seq 1 1000`; do echo $i; bin/mysql -uroot test -e "set @@global.default.key_buffer_size=16*1024*1024"; done I've got eventually: ... 646 647 ERROR 1210 (HY000) at line 1: Incorrect arguments to SET 648 649 ... Server was started with --no-defaults option and built using: BUILD/compile-pentium64-debug-max --prefix=/home/openxs/dbs/5.5

Description: We're using mysqld version 5.5.19 built from source. We found a concurrency bug in MyISAM storage engine that makes the server return a non-existent error. The bug is triggered when two SET requests are concurrently executed, by different clients. In some executions, instead of executing the requests without any error, the server returns an error complaining about the arguments given to SET. How to repeat: This is a non-deterministic bug that is triggered only in a very small number of executions. We used the following server command line options to enable MyISAM and to disable InnoDB storage engine: --default-storage-engine=myisam --innodb=OFF The following requests trigger the bug under some executions: Client A: create database new_db; use new_db; Client B: use new_db; Client A (concurrently with Client B): SET @@global.default.key_buffer_size=16*1024*1024 Client B (concurrently with Client A): SET @@global.default.key_buffer_size=16*1024*1024 The usual behavior is for no error to be returned. However, we found that in a small fraction of the executions the clients get the error: "ERROR 1210 (HY000) at line 3: Incorrect arguments to SET"