MDEV-22090 Change buffer is not freed after dropping or rebuilding table
When MDEV-19514 removed the change buffer merges in the background, it introduced a minor regression: After a DDL operation that drops or rebuilds a table or partition, any entries in the change buffer could survive until a slow shutdown (innodb_fast_shutdown=0) is executed. fil_delete_tablespace(). Before returning, invoke ibuf_delete_for_discarded_space(). With this, the only way to have change buffer ‘leaks’ is to kill and restart the server at an appropriate moment and never initiate a slow shutdown.
This commit is contained in:
parent
14c72bd3e0
commit
63f922dae1
@ -2272,7 +2272,7 @@ dberr_t fil_delete_tablespace(ulint id, bool if_exists)
|
||||
" in the tablespace memory cache.";
|
||||
}
|
||||
|
||||
return(err);
|
||||
goto func_exit;
|
||||
}
|
||||
|
||||
ut_a(space);
|
||||
@ -2367,8 +2367,9 @@ dberr_t fil_delete_tablespace(ulint id, bool if_exists)
|
||||
err = DB_TABLESPACE_NOT_FOUND;
|
||||
}
|
||||
|
||||
func_exit:
|
||||
ut_free(path);
|
||||
|
||||
ibuf_delete_for_discarded_space(id);
|
||||
return(err);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user