mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
MDEV-16456 InnoDB error "returned OS error 71" complains about wrong path
When attempting to rename a table to a non-existing database, InnoDB would misleadingly report "OS error 71" when in fact the error code is InnoDB's own (OS_FILE_NOT_FOUND), and not report both pathnames. Errors on rename could occur due to reasons connected to either pathname. os_file_handle_rename_error(): New function, to report errors in renaming files.
This commit is contained in:
@@ -29,3 +29,17 @@ DROP DATABASE abc_def;
|
||||
--source include/restart_mysqld.inc
|
||||
|
||||
DROP DATABASE abc_def2;
|
||||
|
||||
call mtr.add_suppression("InnoDB: (Operating system error|The error means|Cannot rename file)");
|
||||
|
||||
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
|
||||
--replace_result "\\" "/"
|
||||
--error ER_ERROR_ON_RENAME
|
||||
RENAME TABLE t1 TO non_existing_db.t1;
|
||||
|
||||
--let SEARCH_PATTERN= \[ERROR\] InnoDB: Cannot rename file '.*t1\.ibd' to '.*non_existing_db
|
||||
let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err;
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
# Cleanup
|
||||
DROP TABLE t1;
|
||||
|
||||
Reference in New Issue
Block a user