[BUG.FIX] Fixed compare-and-swap (CAS) tablet with an I/O operator.
This commit is contained in:
@ -185,15 +185,20 @@ void TestLSTabletService::construct_and_get_tablet_list(
|
||||
ObTabletHandle old_handle;
|
||||
|
||||
ObTabletMapKey head_key(ls_id_, tablet_id);
|
||||
ObUpdateTabletPointerParam param;
|
||||
ret = t3m->get_tablet(WashTabletPriority::WTP_LOW, head_key, old_handle);
|
||||
ASSERT_EQ(OB_SUCCESS, ret);
|
||||
ret = t3m->compare_and_swap_tablet(head_key, old_handle, tablet_handle_head);
|
||||
ret = tablet_handle_head.get_obj()->get_updating_tablet_pointer_param(param);
|
||||
ASSERT_EQ(OB_SUCCESS, ret);
|
||||
ret = t3m->compare_and_swap_tablet(head_key, old_handle, tablet_handle_head, param);
|
||||
ASSERT_EQ(OB_SUCCESS, ret);
|
||||
|
||||
ObTabletMapKey node_key(ls_id_, node_tablet_id);
|
||||
ret = t3m->get_tablet(WashTabletPriority::WTP_LOW, node_key, old_handle);
|
||||
ASSERT_EQ(OB_SUCCESS, ret);
|
||||
ret = t3m->compare_and_swap_tablet(node_key, old_handle, tablet_handle_tail);
|
||||
ret = tablet_handle_tail.get_obj()->get_updating_tablet_pointer_param(param);
|
||||
ASSERT_EQ(OB_SUCCESS, ret);
|
||||
ret = t3m->compare_and_swap_tablet(node_key, old_handle, tablet_handle_tail, param);
|
||||
ASSERT_EQ(OB_SUCCESS, ret);
|
||||
}
|
||||
|
||||
@ -1104,8 +1109,11 @@ TEST_F(TestLSTabletService, update_tablet_ddl_commit_scn)
|
||||
ASSERT_EQ(OB_NOT_SUPPORTED, ls_handle.get_ls()->get_tablet_svr()->update_tablet_ddl_commit_scn(data_tablet_id, ddl_commit_scn));
|
||||
|
||||
ObTabletHandle new_tablet_hdl;
|
||||
ObUpdateTabletPointerParam param;
|
||||
ASSERT_EQ(OB_SUCCESS, ObTabletPersister::persist_and_transform_tablet(*tablet_handle.get_obj(), new_tablet_hdl));
|
||||
ASSERT_EQ(OB_SUCCESS, MTL(ObTenantMetaMemMgr *)->compare_and_swap_tablet(key, tablet_handle, new_tablet_hdl));
|
||||
ret = new_tablet_hdl.get_obj()->get_updating_tablet_pointer_param(param);
|
||||
ASSERT_EQ(OB_SUCCESS, ret);
|
||||
ASSERT_EQ(OB_SUCCESS, MTL(ObTenantMetaMemMgr *)->compare_and_swap_tablet(key, tablet_handle, new_tablet_hdl, param));
|
||||
|
||||
ASSERT_EQ(OB_SUCCESS, ls_handle.get_ls()->get_tablet_svr()->update_tablet_ddl_commit_scn(data_tablet_id, ddl_commit_scn));
|
||||
ASSERT_EQ(OB_SUCCESS, ls_handle.get_ls()->get_tablet_svr()->get_tablet(data_tablet_id, tablet_handle));
|
||||
|
||||
Reference in New Issue
Block a user