Reason:
========
SAVEPOINT A;
<Bulk DDL FAILS>
ROLLBACK TO SAVEPOINT A;
When DDL bulk operation fails, InnoDB does rollback the whole transaction
and it makes the transaction state to TRX_STATE_NOT_STARTED. In
innobase_rollback_to_savepoint(), InnoDB fails with invalid transaction
state.
Fix:
===
- InnoDB should rollback the bulk insert operation alone instead of
complete transaction rollback when InnoDB bulk DDL operation fails.
This can be achieved by bulk_rollback_low().
row_mysql_handle_errors(): Avoid complete rollback of transaction
when DB_TEMP_FILE_WRITE_FAIL error happens.
convert_error_code_to_mysql(): Since InnoDB does partial
rollback, remove innodb_transaction_abort() call for
DB_TEMP_FILE_WRITE_FAIL error.