[CP] [FIX] make serialize failed when push_back failed

This commit is contained in:
ZenoWang
2024-02-08 10:25:59 +00:00
committed by ob-robot
parent d719518631
commit d25cc8fb9b

View File

@ -46,14 +46,17 @@ int ObUndoStatusList::serialize(char *buf, const int64_t buf_len, int64_t &pos)
int ObUndoStatusList::serialize_(char *buf, const int64_t buf_len, int64_t &pos) const
{
int ret = OB_SUCCESS;
ObArray<ObUndoStatusNode *> node_arr;
node_arr.reset();
ObSEArray<ObUndoStatusNode *, 32> node_arr;
node_arr.reuse();
ObUndoStatusNode *node = head_;
// generate undo status node stack
while (OB_NOT_NULL(node)) {
node_arr.push_back(node);
if (OB_FAIL(node_arr.push_back(node))) {
STORAGE_LOG(WARN, "push back undo status node failed", KR(ret), K(node_arr.count()));
} else {
node = node->next_;
}
}
LST_DO_CODE(OB_UNIS_ENCODE, undo_node_cnt_);
// pop undo status node to serialize