On Wednesday, March 2, 2022 9:34 AM Peter Smith <smithpb2...@gmail.com> wrote: > Please see below my review comments for v24. Thank you for checking my patch !
> ====== > > 1. src/backend/replication/logical/worker.c - start_table_sync > > + /* Report the worker failed during table synchronization */ > + pgstat_report_subscription_error(MySubscription->oid, > + !am_tablesync_worker()); > > (This review comment is just FYI in case you did not do this deliberately) > > FYI, you didn't really need to call am_tablesync_worker() here because it is > already asserted for the sync phase that it MUST be a tablesync worker. > > OTOH, IMO it documents the purpose of the parm so if it was deliberate then > that is OK too. Fixed. > ~~~ > > 2. src/backend/replication/logical/worker.c - start_table_sync > > + PG_CATCH(); > + { > + /* > + * Abort the current transaction so that we send the stats message in > + * an idle state. > + */ > + AbortOutOfAnyTransaction(); > + > + /* Report the worker failed during table synchronization */ > + pgstat_report_subscription_error(MySubscription->oid, > + !am_tablesync_worker()); > + > > [Maybe you will say that this review comment is unrelated to disable_on_err, > but since this is a totally new/refactored function then I think maybe there > is no > problem to make this change at the same time. Anyway there is no function > change, it is just rearranging some comments.] > > I felt the separation of those 2 statements and comments makes that code less > clean than it could/should be. IMO they should be grouped together. > > SUGGESTED > /* > * Report the worker failed during table synchronization. Abort the > * current transaction so that the stats message is sent in an idle > * state. > */ > AbortOutOfAnyTransaction(); > pgstat_report_subscription_error(MySubscription->oid, !am_tablesync_work > er()); I think this is OK. Thank you for suggestion. Fixed. > ~~~ > > 3. src/backend/replication/logical/worker.c - start_apply > > + /* > + * Abort the current transaction so that we send the stats message in > + * an idle state. > + */ > + AbortOutOfAnyTransaction(); > + > + /* Report the worker failed during the application of the change */ > + pgstat_report_subscription_error(MySubscription->oid, > + !am_tablesync_worker()); > > Same comment as #2 above, but this code fragment is in start_apply function. Fixed. > ~~~ > > 4. src/test/subscription/t/029_disable_on_error.pl - comment > > +# Drop the unique index on the sub and re-enabled the subscription. > +# Then, confirm that we have finished the apply. > > SUGGESTED (tweak the comment wording) > # Drop the unique index on the sub and re-enable the subscription. > # Then, confirm that the previously failing insert was applied OK. Fixed. Best Regards, Takamichi Osumi
v25-0001-Optionally-disable-subscriptions-on-error.patch
Description: v25-0001-Optionally-disable-subscriptions-on-error.patch