diff --git a/src/backend/replication/logical/applyparallelworker.c b/src/backend/replication/logical/applyparallelworker.c index 2e5914d5d95..3dfcff2798f 100644 --- a/src/backend/replication/logical/applyparallelworker.c +++ b/src/backend/replication/logical/applyparallelworker.c @@ -475,6 +475,10 @@ pa_allocate_worker(TransactionId xid) if (!pa_can_start()) return; + winfo = pa_launch_parallel_worker(); + if (!winfo) + return; + /* First time through, initialize parallel apply worker state hashtable. */ if (!ParallelApplyTxnHash) { @@ -490,10 +494,6 @@ pa_allocate_worker(TransactionId xid) HASH_ELEM | HASH_BLOBS | HASH_CONTEXT); } - winfo = pa_launch_parallel_worker(); - if (!winfo) - return; - /* Create an entry for the requested transaction. */ entry = hash_search(ParallelApplyTxnHash, &xid, HASH_ENTER, &found); if (found)