Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
11.2.1, 11.3(EOL), 11.4
-
None
Description
During shrinking of tablespace, InnoDB traverses all used extents.
But it fails to handle the error during traversal.
Following patch addresses the issue:
diff --git a/storage/innobase/fsp/fsp0fsp.cc b/storage/innobase/fsp/fsp0fsp.cc
|
index d0d406a0c1e..9aa101bb70d 100644
|
--- a/storage/innobase/fsp/fsp0fsp.cc
|
+++ b/storage/innobase/fsp/fsp0fsp.cc
|
@@ -3465,10 +3465,10 @@ dberr_t fsp_traverse_extents(
|
else
|
{
|
err= old_xdes_entry->insert(0, mtr);
|
- if (err) return err;
|
- if (threshold & (srv_page_size - 1))
|
+ if (err == DB_SUCCESS && threshold & (srv_page_size - 1))
|
err= old_xdes_entry->insert(
|
xdes_calc_descriptor_page(0, threshold), mtr);
|
+ if (err) return err;
|
}
|
|
buf_block_t *block= nullptr;
|