Details
-
Task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
None
-
10.2.6-2
Description
Running
./mtr rocksdb.tbl_opt_data_index_dir
|
produces this error:
rocksdb.tbl_opt_data_index_dir [ fail ]
|
Test ended at 2017-03-16 11:11:07
|
|
CURRENT_TEST: rocksdb.tbl_opt_data_index_dir
|
mysqltest: At line 14: query 'CREATE TABLE t1 (a INT PRIMARY KEY, b CHAR(8)) ENGINE=rocksdb DATA DIRECTORY = '/foo/bar/data'' failed with wrong errno 1005: 'Can't create table `test`.`t1` (errno: 198 "Unknown error 198")', instead of 1296...
|
|
The result from queries just before the failure was:
|
DROP TABLE IF EXISTS t1;
|
CREATE TABLE t1 (a INT PRIMARY KEY, b CHAR(8)) ENGINE=rocksdb DATA DIRECTORY = '/foo/bar/data';
|
|
- saving '/home/psergey/dev-git/10.2-mariarocks/mysql-test/var/log/rocksdb.tbl_opt_data_index_dir/' to '/home/psergey/dev-git/10.2-mariarocks/mysql-test/var/log/rocksdb.tbl_opt_data_index_dir/'
|
--------------------------------------------------------------------------
|
The servers were restarted 0 times
|
Spent 0.000 of 4 seconds executing testcases
|
|
Failure: Failed 1/1 tests, 0.00% were successful.
|
|
Failing test(s): rocksdb.tbl_opt_data_index_dir
|
Attachments
Issue Links
- is part of
-
MDEV-9658 Make MyRocks in MariaDB stable
-
- Closed
-
Some investigation:
Debugging this statement:
MariaDB [test]> CREATE TABLE t1 (a INT PRIMARY KEY, b CHAR(8)) ENGINE=rocksdb DATA DIRECTORY = '/foo/bar/data';
Breakpoint 1, myrocks::ha_rocksdb::create (this=0x7fffe886f088, name=0x7ffff7eecf50 "./test/t1",
table_arg=0x7ffff7eea720, create_info=0x7ffff7eed550) at /home/psergey/dev-git/10.2-mariarocks/storage/rocksdb/ha_rocksdb.cc:5410
(gdb) fini
Run till exit from #0 myrocks::ha_rocksdb::create (this=0x7fffe886f088, name=0x7ffff7eecf50 "./test/t1", table_arg=0x7ffff7eea720, create_info=0x7ffff7eed550) at /home/psergey/dev-git/10.2-mariarocks/storage/rocksdb/ha_rocksdb.cc:5410
0x0000555555d6bfdc in handler::ha_create (this=0x7fffe886f088, name=0x7ffff7eecf50 "./test/t1", form=0x7ffff7eea720, info_arg=0x7ffff7eed550) at /home/psergey/dev-git/10.2-mariarocks/sql/handler.cc:4368
Value returned is $6 = 198
The 198 value is HA_ERR_ROCKSDB_TABLE_DATA_DIRECTORY_NOT_SUPPORTED.
Then, something odd happens.
Execution reaches ha_rocksdb::get_error_message which provides the right error
message
Breakpoint 2, myrocks::ha_rocksdb::get_error_message (this=0x7fffe886f088, error=198, buf=0x7ffff7ee98d0) at
/home/psergey/dev-git/10.2-mariarocks/storage/rocksdb/ha_rocksdb.cc:4831
(gdb) next
(gdb) next
(gdb) p buf->c_ptr()
$13 = 0x7fffe888f1b0 "Specifying DATA DIRECTORY for an individual table is not supported."
After which we end up in my_error:
my_error (nr=1296, MyFlags=2048) at /home/psergey/dev-git/10.2-mariarocks/mysys/my_error.c:109
(gdb) print ebuff
$18 = "Got error 198 'Specifying DATA DIRECTORY for an individual table is not supported.' from ROCKSDB\000\..."
... but the error is not passed over to the client.
Is this because there was another call before to my_error() made after ha_rocksdb::create but before ha_rocksdb::get_error_message() ?