On Thu, Apr 8, 2021 at 5:28 PM Michael Paquier <mich...@paquier.xyz> wrote: > > On Thu, Apr 08, 2021 at 04:55:22PM +0530, Bharath Rupireddy wrote: > > With the recent commit aaf0432572 which introduced a waiting/timeout > > capability for pg_teriminate_backend function, I would like to do > > $subject. Attaching a patch, please have a look. > > +-- Terminate the remote backend having the specified application_name and > wait > +-- for the termination to complete. 10 seconds timeout here is chosen > randomly, > +-- we will see a warning if the process doesn't go away within that time. > +SELECT pg_terminate_backend(pid, 10000) FROM pg_stat_activity > + WHERE application_name = 'fdw_retry_check'; > > I think that you are making the tests less stable by doing that. A > couple of buildfarm machines are very slow, and 10 seconds would not > be enough. So it seems to me that this patch is trading what is a > stable solution for a solution that may finish by randomly bite.
Agree. Please see the attached patch, I removed a fixed waiting time. Instead of relying on pg_stat_activity, pg_sleep and pg_stat_clear_snapshot, now it depends on pg_terminate_backend and pg_wait_for_backend_termination. This way we could reduce the functions that the procedure terminate_backend_and_wait uses and also the new functions pg_terminate_backend and pg_wait_for_backend_termination gets a test coverage. Thoughts? With Regards, Bharath Rupireddy. EnterpriseDB: http://www.enterprisedb.com
v2-0001-Simplify-backend-terminate-and-wait-logic-in-post.patch
Description: Binary data