Fix for [pgpool-general: 7896] Possible race condition..
authorMuhammad Usama <m.usama@gmail.com>
Wed, 27 Apr 2022 10:30:58 +0000 (15:30 +0500)
committerMuhammad Usama <m.usama@gmail.com>
Wed, 27 Apr 2022 11:39:15 +0000 (16:39 +0500)
commitb66b73a2f46956ab6781acdf42a9f53b704a3f46
treea66cb81ccfe974127f2e2c99a15ed7d432952d0d
parentb9e40253378f151ae23cc9a5f0628921f39a5267
Fix for [pgpool-general: 7896] Possible race condition..

Watchdog does not allow the remote nodes reported lost by life-check to rejoin
the cluster until the life-check process confirms the existence of life in the
previously lost nodes. This is good enough except for the case when the
(lost by life-check) node tries to rejoin the cluster after it was restarted
(Pgpool-II service restarted).
What happens is the cluster keeps rejecting the restarted node because
the cluster's life-check doesn't agree while the restarted node's life-check
waits to be added to cluster before it can start sending the heart-beats.

The fix is to allow the previously lost remote node become the part of the
cluster after restart, no matter the lost-reason.

Issue report:
https://www.pgpool.net/pipermail/pgpool-general/2021-November/007954.html
src/watchdog/watchdog.c