Bug #120245 Unexpected error `Got error -1 - 'Unknown error -1' from storage engine`
Submitted: 10 Apr 13:14
Reporter: chi zhang Email Updates:
Status: Open Impact on me:
None 
Category:MySQL Server: DDL Severity:S1 (Critical)
Version:9.6.0 OS:Any
Assigned to: CPU Architecture:Any

[10 Apr 13:14] chi zhang
Description:
Hi,

The following test case triggers an unexpected error `Got error -1 - 'Unknown error -1' from storage engine`

```
DROP DATABASE IF EXISTS database7;
CREATE DATABASE database7;
USE database7;
CREATE TABLE t0(c0 DOUBLE  COLUMN_FORMAT DYNAMIC COMMENT 'asdf'  UNIQUE KEY  STORAGE DISK ) ;
ALTER TABLE t0 ROW_FORMAT DEFAULT, DEFAULT CHARACTER SET = utf8mb4, ENGINE = MEMORY, RENAME COLUMN c0 TO c_ren_8302, CHECKSUM 1, ADD COLUMN tmp_5947 DECIMAL(10,2) NULL, AUTO_INCREMENT = 191, DISABLE KEYS, FORCE, PACK_KEYS 1, INSERT_METHOD LAST, RENAME TO t4;
ALTER TABLE t4 STATS_AUTO_RECALC DEFAULT, DEFAULT CHARACTER SET = latin1, AUTO_INCREMENT = 137, DISABLE KEYS, STATS_PERSISTENT 0, COMPRESSION 'ZLIB', ADD INDEX idx_sco_6105 (c_ren_8302), RENAME TO t2, LOCK = DEFAULT;
ALTER TABLE t2 DEFAULT CHARACTER SET = utf8mb4, DROP INDEX idx_sco_6105, STATS_PERSISTENT DEFAULT, DROP c_ren_8302, DELAY_KEY_WRITE 1, MODIFY COLUMN tmp_5947 FLOAT NULL;
ALTER TABLE t2 CHANGE COLUMN tmp_5947 c_chg_171 DOUBLE NULL, ENGINE = InnoDB, RENAME AS t2, COMPRESSION 'ZLIB', ADD COLUMN tmp_8910 DECIMAL(10,2) NULL, PACK_KEYS 1, ROW_FORMAT REDUNDANT, ADD INDEX idx_sco_5898 (tmp_8910), LOCK = DEFAULT, AUTO_INCREMENT = 649, STATS_AUTO_RECALC 0, DISABLE KEYS;
ALTER TABLE t2 FORCE, AUTO_INCREMENT = 50, RENAME t2, DISABLE KEYS, ENGINE = MEMORY, STATS_PERSISTENT 0, LOCK = SHARED, CHANGE COLUMN c_chg_171 c_chg_1701 INT NULL, ALGORITHM DEFAULT, DELAY_KEY_WRITE 1, RENAME COLUMN tmp_8910 TO c_ren_9874;
ALTER TABLE t2 RENAME AS t0, CHECKSUM 1, FORCE, RENAME COLUMN c_ren_9874 TO c_ren_5594, PACK_KEYS DEFAULT, ADD INDEX idx_sco_2333 (c_ren_5594, c_chg_1701), LOCK = EXCLUSIVE, DROP INDEX idx_sco_5898, INSERT_METHOD LAST, ALGORITHM DEFAULT;
ALTER TABLE t0 PACK_KEYS 0, RENAME COLUMN c_ren_5594 TO c_ren_5206, DROP INDEX idx_sco_2333;
ALTER TABLE t0 DELAY_KEY_WRITE 1, DROP COLUMN c_ren_5206, COMPRESSION 'LZ4', RENAME TO t0, CHECKSUM 1, MODIFY COLUMN c_chg_1701 BIGINT NULL, INSERT_METHOD NO, ROW_FORMAT DYNAMIC, AUTO_INCREMENT = 117, FORCE, ADD COLUMN tmp_7083 FLOAT NULL;
ALTER TABLE t0 CHANGE COLUMN tmp_7083 c_chg_9586 FLOAT NULL, LOCK = DEFAULT, MODIFY COLUMN c_chg_1701 DOUBLE NULL, STATS_AUTO_RECALC DEFAULT;
ALTER TABLE t0 ALGORITHM COPY, COMPRESSION 'ZLIB', RENAME TO t2, CHECKSUM 1, CHANGE COLUMN c_chg_9586 c_chg_4319 SMALLINT NULL, LOCK = EXCLUSIVE, ENGINE = MyISAM, ADD COLUMN tmp_452 VARCHAR(255) NULL, STATS_PERSISTENT 1, MODIFY COLUMN c_chg_1701 VARCHAR(255) NULL, INSERT_METHOD LAST, DEFAULT CHARACTER SET = utf8mb4, AUTO_INCREMENT = 520, DISABLE KEYS, FORCE;
ALTER TABLE t2 INSERT_METHOD FIRST, ADD COLUMN tmp_1268 DECIMAL(10,2) NULL, COMPRESSION 'LZ4', RENAME AS t2;
ALTER TABLE t2 ROW_FORMAT FIXED, DELAY_KEY_WRITE 1, COMPRESSION 'NONE', RENAME COLUMN tmp_1268 TO c_ren_6524, CHANGE COLUMN c_chg_4319 c_chg_4515 FLOAT NULL;
ALTER TABLE t2 ENGINE = ARCHIVE, INSERT_METHOD NO, FORCE, PACK_KEYS 0, LOCK = SHARED, RENAME t2, DISABLE KEYS, DROP COLUMN tmp_452;
ALTER TABLE t2 ADD PRIMARY KEY (c_ren_6524), ALGORITHM COPY, ADD COLUMN tmp_9160 VARCHAR(255) NULL, COMPRESSION 'ZLIB', DROP c_chg_1701;
```

I run mysql in Docker with command `docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest`

The run the test case with `docker exec -i mysql mysql -uroot -p123456 < test.sql`

How to repeat:
```
DROP DATABASE IF EXISTS database7;
CREATE DATABASE database7;
USE database7;
CREATE TABLE t0(c0 DOUBLE  COLUMN_FORMAT DYNAMIC COMMENT 'asdf'  UNIQUE KEY  STORAGE DISK ) ;
ALTER TABLE t0 ROW_FORMAT DEFAULT, DEFAULT CHARACTER SET = utf8mb4, ENGINE = MEMORY, RENAME COLUMN c0 TO c_ren_8302, CHECKSUM 1, ADD COLUMN tmp_5947 DECIMAL(10,2) NULL, AUTO_INCREMENT = 191, DISABLE KEYS, FORCE, PACK_KEYS 1, INSERT_METHOD LAST, RENAME TO t4;
ALTER TABLE t4 STATS_AUTO_RECALC DEFAULT, DEFAULT CHARACTER SET = latin1, AUTO_INCREMENT = 137, DISABLE KEYS, STATS_PERSISTENT 0, COMPRESSION 'ZLIB', ADD INDEX idx_sco_6105 (c_ren_8302), RENAME TO t2, LOCK = DEFAULT;
ALTER TABLE t2 DEFAULT CHARACTER SET = utf8mb4, DROP INDEX idx_sco_6105, STATS_PERSISTENT DEFAULT, DROP c_ren_8302, DELAY_KEY_WRITE 1, MODIFY COLUMN tmp_5947 FLOAT NULL;
ALTER TABLE t2 CHANGE COLUMN tmp_5947 c_chg_171 DOUBLE NULL, ENGINE = InnoDB, RENAME AS t2, COMPRESSION 'ZLIB', ADD COLUMN tmp_8910 DECIMAL(10,2) NULL, PACK_KEYS 1, ROW_FORMAT REDUNDANT, ADD INDEX idx_sco_5898 (tmp_8910), LOCK = DEFAULT, AUTO_INCREMENT = 649, STATS_AUTO_RECALC 0, DISABLE KEYS;
ALTER TABLE t2 FORCE, AUTO_INCREMENT = 50, RENAME t2, DISABLE KEYS, ENGINE = MEMORY, STATS_PERSISTENT 0, LOCK = SHARED, CHANGE COLUMN c_chg_171 c_chg_1701 INT NULL, ALGORITHM DEFAULT, DELAY_KEY_WRITE 1, RENAME COLUMN tmp_8910 TO c_ren_9874;
ALTER TABLE t2 RENAME AS t0, CHECKSUM 1, FORCE, RENAME COLUMN c_ren_9874 TO c_ren_5594, PACK_KEYS DEFAULT, ADD INDEX idx_sco_2333 (c_ren_5594, c_chg_1701), LOCK = EXCLUSIVE, DROP INDEX idx_sco_5898, INSERT_METHOD LAST, ALGORITHM DEFAULT;
ALTER TABLE t0 PACK_KEYS 0, RENAME COLUMN c_ren_5594 TO c_ren_5206, DROP INDEX idx_sco_2333;
ALTER TABLE t0 DELAY_KEY_WRITE 1, DROP COLUMN c_ren_5206, COMPRESSION 'LZ4', RENAME TO t0, CHECKSUM 1, MODIFY COLUMN c_chg_1701 BIGINT NULL, INSERT_METHOD NO, ROW_FORMAT DYNAMIC, AUTO_INCREMENT = 117, FORCE, ADD COLUMN tmp_7083 FLOAT NULL;
ALTER TABLE t0 CHANGE COLUMN tmp_7083 c_chg_9586 FLOAT NULL, LOCK = DEFAULT, MODIFY COLUMN c_chg_1701 DOUBLE NULL, STATS_AUTO_RECALC DEFAULT;
ALTER TABLE t0 ALGORITHM COPY, COMPRESSION 'ZLIB', RENAME TO t2, CHECKSUM 1, CHANGE COLUMN c_chg_9586 c_chg_4319 SMALLINT NULL, LOCK = EXCLUSIVE, ENGINE = MyISAM, ADD COLUMN tmp_452 VARCHAR(255) NULL, STATS_PERSISTENT 1, MODIFY COLUMN c_chg_1701 VARCHAR(255) NULL, INSERT_METHOD LAST, DEFAULT CHARACTER SET = utf8mb4, AUTO_INCREMENT = 520, DISABLE KEYS, FORCE;
ALTER TABLE t2 INSERT_METHOD FIRST, ADD COLUMN tmp_1268 DECIMAL(10,2) NULL, COMPRESSION 'LZ4', RENAME AS t2;
ALTER TABLE t2 ROW_FORMAT FIXED, DELAY_KEY_WRITE 1, COMPRESSION 'NONE', RENAME COLUMN tmp_1268 TO c_ren_6524, CHANGE COLUMN c_chg_4319 c_chg_4515 FLOAT NULL;
ALTER TABLE t2 ENGINE = ARCHIVE, INSERT_METHOD NO, FORCE, PACK_KEYS 0, LOCK = SHARED, RENAME t2, DISABLE KEYS, DROP COLUMN tmp_452;
ALTER TABLE t2 ADD PRIMARY KEY (c_ren_6524), ALGORITHM COPY, ADD COLUMN tmp_9160 VARCHAR(255) NULL, COMPRESSION 'ZLIB', DROP c_chg_1701;
```