> On Dec 22, 2025, at 17:28, Chao Li <[email protected]> wrote:
> 
> 
> 
>> On Dec 22, 2025, at 17:01, Zhijie Hou (Fujitsu) <[email protected]> 
>> wrote:
>> 
>> Hi,
>> 
>> When reviewing some parallel apply related codes, I noticed a bug in the
>> parallel apply worker, similar to the issue discussed in this thread.
>> 
>> The issue is that the logical replication parallel apply worker may 
>> erroneously
>> advance the origin progress during an error or unsuccessful apply. This can 
>> lead
>> to transaction loss, as these transactions will not be resent by the server.
>> Commit 3f28b2fc addressed a similar issue in both the apply worker and table
>> sync worker.
>> 
>> The original fix involved registering a before_shmem_exit callback to reset 
>> the
>> origin information, preventing the worker from advancing it during 
>> transaction
>> abortion on shutdown. The attached patch registers the same callback for the
>> parallel apply worker, ensuring consistent behavior across all workers.
>> 
>> Best Regards,
>> Hou zj
>> <v1-0001-Fix-unexpected-origin-advancement-during-parallel.patch>
> 
> So, ParallelApplyWorkerMain() only calls InitializeLogRepWorker() but 
> SetupApplyOrSyncWorker(), by moving before_shmem_exit() into 
> InitializeLogRepWorker(), ParallelApplyWorkerMain()() gets the exit callback.
> 
> LGTM.
> 

I just noticed a nitpick while reviewing the other your patch:
```
+        * avoid origin advancement for an in-complete transaction which could
```

“In-complete” should be just “incomplete”.

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/






Reply via email to