diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c
index e23b0de7242..22d0a2626eb 100644
--- a/src/backend/commands/subscriptioncmds.c
+++ b/src/backend/commands/subscriptioncmds.c
@@ -990,6 +990,7 @@ AlterSubscription_refresh(Subscription *sub, bool copy_data,
 					 */
 					ReplicationOriginNameForLogicalRep(sub->oid, relid, originname,
 													   sizeof(originname));
+					sleep(3);
 					replorigin_drop_by_name(originname, true, false);
 				}
 
diff --git a/src/backend/replication/logical/origin.c b/src/backend/replication/logical/origin.c
index 87f10e50dcc..e1a58c7970d 100644
--- a/src/backend/replication/logical/origin.c
+++ b/src/backend/replication/logical/origin.c
@@ -445,6 +445,7 @@ replorigin_drop_by_name(const char *name, bool missing_ok, bool nowait)
 	Assert(IsTransactionState());
 
 	rel = table_open(ReplicationOriginRelationId, RowExclusiveLock);
+	sleep(2);
 
 	roident = replorigin_by_name(name, missing_ok);
 
diff --git a/src/backend/replication/logical/tablesync.c b/src/backend/replication/logical/tablesync.c
index e4fd6347fd1..4f501bf1b55 100644
--- a/src/backend/replication/logical/tablesync.c
+++ b/src/backend/replication/logical/tablesync.c
@@ -376,6 +376,7 @@ process_syncing_tables_for_sync(XLogRecPtr current_lsn)
 		replorigin_session_origin_lsn = InvalidXLogRecPtr;
 		replorigin_session_origin_timestamp = 0;
 
+		sleep(6);
 		/*
 		 * Drop the tablesync's origin tracking if exists.
 		 *
