mariadb/storage
Thirunarayanan Balathandayuthapani 60a02cc869 MDEV-36017 Alter table aborts when temporary directory is full
Problem:
=======
- In 10.11, During Copy algorithm, InnoDB does use bulk insert
for row by row insert operation. When temporary directory
ran out of memory, row_mysql_handle_errors() fails to handle
DB_TEMP_FILE_WRITE_FAIL.

- During inplace algorithm, concurrent DML fails to write
the log operation into the temporary file. InnoDB fail to
mark the error for the online log.

- ddl_log_write() releases the global ddl lock prematurely before
release the log memory entry

Fix:
===
row_mysql_handle_errors(): Rollback the transaction when
InnoDB encounters DB_TEMP_FILE_WRITE_FAIL

convert_error_code_to_mysql(): Report an aborted transaction
when InnoDB encounters DB_TEMP_FILE_WRITE_FAIL during
alter table algorithm=copy or innodb bulk insert operation

row_log_online_op(): Mark the error in online log when
InnoDB ran out of temporary space

fil_space_extend_must_retry(): Mark the os_has_said_disk_full
as true if os_file_set_size() fails

ddl_log_write(): Release the global ddl lock after releasing
the log memory entry when error was encountered

is_bulk_insert(): Change the condition to make sure that
InnoDB does check for all modified tables when bulk insert
is enabled or unique_checks and foreign_key_checks is enabled.

btr_cur_optimistic_update(): Relax the assertion that
blob pointer can be null during rollback because InnoDB can
ran out of space while allocating the external page
2025-04-03 14:16:22 +05:30
..
archive Merge 10.6 into 10.11 2024-06-27 10:26:09 +03:00
blackhole MDEV-34348: my_hash_get_key fixes 2024-11-23 08:14:22 -07:00
columnstore Merge branch '10.6' into 10.11 2025-01-30 11:55:13 +01:00
connect Merge 10.6 into 10.11 2025-03-27 08:01:47 +02:00
csv Merge 10.6 into 10.11 2024-11-29 13:43:17 +02:00
example Remove dates from all rdiff files 2025-01-05 16:40:11 +02:00
federated Merge 10.5 into 10.6 2024-11-29 12:37:46 +02:00
federatedx Allow 'mariadb' as a connection wrapper name for FederatedX. 2025-02-25 16:04:56 +02:00
heap Merge 10.5 into 10.6 2025-01-20 09:57:37 +02:00
innobase MDEV-36017 Alter table aborts when temporary directory is full 2025-04-03 14:16:22 +05:30
maria Merge 10.6 into 10.11 2025-03-27 08:01:47 +02:00
mroonga Merge 10.6 into 10.11 2024-12-19 15:38:53 +02:00
myisam Merge 10.6 into 10.11 2025-03-27 08:01:47 +02:00
myisammrg Merge 10.6 into 10.11 2025-01-08 12:51:26 +02:00
oqgraph Merge 10.6 into 10.11 2024-11-29 13:43:17 +02:00
perfschema Merge branch '10.6' into 10.11 2025-01-10 13:14:42 +01:00
rocksdb Merge branch '10.6' into 10.11 2025-01-10 13:14:42 +01:00
sequence MDEV-33746 Supply missing override markings 2024-06-20 11:32:13 -04:00
sphinx Merge 10.5 into 10.6 2024-11-29 12:37:46 +02:00
spider Merge branch '10.6' into '10.11' 2025-04-02 06:33:39 +02:00
test_sql_discovery Merge 10.5 into 10.6 2024-06-24 13:09:47 +03:00