From: Robert Haas <robertmhaas(at)gmail(dot)com> To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> Cc: Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com>, Mark Dilger <mark(dot)dilger(at)enterprisedb(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>, tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> Subject: Re: refactoring basebackup.c Date: 2021-11-08 16:34:50 Message-ID: CA+TgmoZbNzsWwM4BE5Jb_qHncY817DYZwGf+2-7hkMQ27ZwsMQ@mail.gmail.com Views: Whole Thread |Raw Message |Download mbox |Resend email Thread: 2020-05-08 20:53:09 from Robert Haas <robertmhaas(at)gmail(dot)com> 2020-05-08 20:55:50 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2020-07-29 15:31:26 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2020-07-31 16:49:39 from Andres Freund <andres(at)anarazel(dot)de> 2020-07-31 17:50:49 from Robert Haas <robertmhaas(at)gmail(dot)com> 2020-10-21 16:14:53 from Mark Dilger <mark(dot)dilger(at)enterprisedb(dot)com> 2021-07-08 15:56:10 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2021-07-12 12:21:06 from tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> 2021-07-16 07:13:27 from Dilip Kumar <dilipbalaut(at)gmail(dot)com>📎 2021-07-19 11:33:58 from Dilip Kumar <dilipbalaut(at)gmail(dot)com> 2021-07-19 12:32:43 from tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> 2021-07-19 14:59:06 from Dilip Kumar <dilipbalaut(at)gmail(dot)com> 2021-07-22 17:14:31 from tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> 2021-07-22 18:36:10 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-07-19 11:04:27 from tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> 2021-07-19 18:51:44 from Mark Dilger <mark(dot)dilger(at)enterprisedb(dot)com> 2021-07-20 18:57:38 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-07-20 20:03:40 from Mark Dilger <mark(dot)dilger(at)enterprisedb(dot)com> 2021-07-21 15:09:08 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-07-21 16:11:49 from Mark Dilger <mark(dot)dilger(at)enterprisedb(dot)com> 2021-07-21 16:21:01 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-09-08 18:13:42 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com>📎 2021-09-08 19:39:42 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-09-09 23:55:31 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2021-09-13 11:19:25 from Dilip Kumar <dilipbalaut(at)gmail(dot)com> 2021-09-13 16:12:40 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2021-09-14 14:30:45 from Dilip Kumar <dilipbalaut(at)gmail(dot)com> 2021-09-14 15:30:22 from Sergei Kornilov <sk(at)zsrv(dot)org> 2021-09-21 15:25:03 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-09-21 11:53:54 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com> 2021-09-21 16:51:55 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2021-10-07 11:50:10 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com>📎 2021-10-07 16:07:28 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2021-09-21 13:35:01 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com>📎 2021-09-21 17:20:04 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-09-22 16:52:40 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com>📎 2021-09-13 10:02:45 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com> 2021-09-13 16:04:37 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-09-21 13:07:37 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com> 2021-09-21 16:56:56 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-09-22 16:40:32 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com> 2021-09-23 15:22:20 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-09-24 12:57:44 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com> 2021-10-05 09:51:11 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com>📎 2021-10-12 17:39:29 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-10-14 17:20:55 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com>📎 2021-10-14 18:14:18 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-10-15 11:54:15 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com> 2021-10-15 12:05:09 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-10-20 12:48:55 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com>📎 2021-10-25 20:15:24 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2021-10-29 12:58:24 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com>📎 2021-10-29 13:24:27 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-11-02 11:52:29 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com>📎 2021-11-02 14:32:35 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-11-02 16:34:05 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-11-05 15:50:01 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2021-11-08 14:52:10 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-11-08 15:59:16 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> 2021-11-08 16:34:50 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2021-11-08 21:41:22 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-11-09 19:36:06 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-11-15 16:26:41 from Dmitry Dolgov <9erthalion6(at)gmail(dot)com> 2021-11-15 19:23:35 from Robert Haas <robertmhaas(at)gmail(dot)com> 2021-11-16 21:47:03 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2021-11-22 17:35:51 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com>📎 2021-12-27 13:31:26 from tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> 2021-12-28 07:41:53 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com> 2021-12-28 17:16:15 from tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> 2022-01-05 16:54:01 from tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> 2022-01-18 14:42:44 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com>📎 2022-01-18 21:27:18 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-01-19 12:16:47 from Dipesh Pandit <dipesh(dot)pandit(at)gmail(dot)com>📎 2022-01-19 15:56:10 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-01-19 21:26:58 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-01-20 13:00:43 from Dipesh Pandit <dipesh(dot)pandit(at)gmail(dot)com>📎 2022-01-20 16:10:01 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-01-21 19:30:55 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-01-24 14:29:55 from Dipesh Pandit <dipesh(dot)pandit(at)gmail(dot)com>📎 2022-01-24 20:14:59 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-01-21 18:33:15 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-01-25 03:54:52 from "Shinoda, Noriyoshi (PN Japan FSIP)" <noriyoshi(dot)shinoda(at)hpe(dot)com>📎 2022-01-25 13:06:27 from Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org>📎 2022-01-25 13:42:27 from Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org>📎 2022-01-25 20:12:51 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-01-26 01:23:46 from Michael Paquier <michael(at)paquier(dot)xyz> 2022-01-26 17:31:06 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-01-25 16:22:12 from tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> 2022-01-26 01:29:29 from Michael Paquier <michael(at)paquier(dot)xyz> 2022-01-26 20:45:18 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-01-27 07:37:45 from Dipesh Pandit <dipesh(dot)pandit(at)gmail(dot)com>📎 2022-01-27 19:13:48 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-01-28 08:54:38 from Dipesh Pandit <dipesh(dot)pandit(at)gmail(dot)com>📎 2022-01-28 13:42:19 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-01-28 17:48:15 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com>📎 2022-01-28 19:49:48 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-01-29 03:38:51 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com> 2022-01-31 11:10:25 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com>📎 2022-01-31 13:38:05 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-01-31 14:24:28 from Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com>📎 2022-01-27 12:15:16 from tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> 2022-01-27 16:47:47 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-01-27 17:08:15 from tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> 2022-01-27 17:42:39 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-01-28 10:45:41 from tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> 2022-01-19 16:30:42 from tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> 2022-01-03 14:09:58 from tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> 2022-01-03 17:12:03 from tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> 2022-01-04 14:37:44 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-01-05 10:11:38 from tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> 2022-01-05 15:05:21 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-01-18 18:55:22 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-02-02 15:55:53 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-02-09 13:41:27 from Abhijit Menon-Sen <ams(at)toroid(dot)org> 2022-02-10 12:40:52 from Dipesh Pandit <dipesh(dot)pandit(at)gmail(dot)com>📎 2022-02-10 14:31:50 from Jeevan Ladhe <jeevanladhe(dot)os(at)gmail(dot)com> 2022-02-11 08:43:36 from Dipesh Pandit <dipesh(dot)pandit(at)gmail(dot)com>📎 2022-02-11 10:57:51 from Jeevan Ladhe <jeevanladhe(dot)os(at)gmail(dot)com>📎 2022-02-11 12:20:30 from Dipesh Pandit <dipesh(dot)pandit(at)gmail(dot)com> 2022-02-11 15:01:07 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-02-11 15:05:25 from Jeevan Ladhe <jeevanladhe(dot)os(at)gmail(dot)com> 2022-02-11 15:29:44 from Justin Pryzby <pryzby(at)telsasoft(dot)com> 2022-02-11 15:50:09 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-02-12 06:01:15 from "Shinoda, Noriyoshi (PN Japan FSIP)" <noriyoshi(dot)shinoda(at)hpe(dot)com>📎 2022-02-14 16:00:18 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-02-15 13:18:41 from Jeevan Ladhe <jeevanladhe(dot)os(at)gmail(dot)com>📎 2022-02-15 16:54:48 from tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> 2022-02-15 18:03:50 from Jeevan Ladhe <jeevanladhe(dot)os(at)gmail(dot)com>📎 2022-02-15 17:59:44 from Justin Pryzby <pryzby(at)telsasoft(dot)com> 2022-02-16 15:51:36 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-02-16 16:11:31 from Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> 2022-02-16 16:16:25 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-02-16 17:45:56 from Jeevan Ladhe <jeevanladhe(dot)os(at)gmail(dot)com>📎 2022-02-16 21:07:08 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-02-17 01:46:22 from Jeevan Ladhe <jeevanladhe(dot)os(at)gmail(dot)com>📎 2022-03-04 08:31:50 from Dipesh Pandit <dipesh(dot)pandit(at)gmail(dot)com> 2022-03-04 14:31:59 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-07 21:25:14 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-03-08 09:49:07 from Jeevan Ladhe <jeevanladhe(dot)os(at)gmail(dot)com>📎 2022-03-08 15:28:23 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-03-08 16:32:31 from Jeevan Ladhe <jeevanladhe(dot)os(at)gmail(dot)com> 2022-03-08 16:53:19 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-08 16:58:34 from Jeevan Ladhe <jeevanladhe(dot)os(at)gmail(dot)com> 2022-03-11 01:02:23 from Justin Pryzby <pryzby(at)telsasoft(dot)com> 2022-03-11 15:19:29 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-03-11 16:29:11 from Justin Pryzby <pryzby(at)telsasoft(dot)com> 2022-03-11 17:37:34 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-12 01:52:53 from Andres Freund <andres(at)anarazel(dot)de> 2022-03-14 13:27:59 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-14 16:11:35 from Dipesh Pandit <dipesh(dot)pandit(at)gmail(dot)com>📎 2022-03-14 16:35:47 from Justin Pryzby <pryzby(at)telsasoft(dot)com> 2022-03-14 17:02:20 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-14 17:11:52 from Justin Pryzby <pryzby(at)telsasoft(dot)com> 2022-03-14 17:21:55 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-17 15:50:15 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-03-17 19:41:30 from Justin Pryzby <pryzby(at)telsasoft(dot)com> 2022-03-17 20:29:51 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-20 19:05:28 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-03-20 19:11:54 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> 2022-03-21 01:24:17 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-21 01:32:45 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> 2022-03-21 02:03:38 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-20 19:40:50 from Justin Pryzby <pryzby(at)telsasoft(dot)com> 2022-03-21 01:38:44 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-21 13:18:33 from Justin Pryzby <pryzby(at)telsasoft(dot)com> 2022-03-21 16:57:36 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-03-21 18:22:56 from Justin Pryzby <pryzby(at)telsasoft(dot)com> 2022-03-21 18:25:52 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-03-21 18:41:33 from Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org> 2022-03-22 15:37:57 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-03-23 13:19:42 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-27 17:47:47 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> 2022-03-28 19:50:50 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-03-28 20:38:47 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> 2022-03-28 20:53:29 from Justin Pryzby <pryzby(at)telsasoft(dot)com>📎 2022-03-28 21:39:31 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-29 00:07:27 from Justin Pryzby <pryzby(at)telsasoft(dot)com> 2022-03-29 00:11:54 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> 2022-03-29 12:51:20 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-30 20:00:39 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-30 20:14:47 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> 2022-03-30 20:27:48 from Justin Pryzby <pryzby(at)telsasoft(dot)com> 2022-03-15 10:33:05 from Jeevan Ladhe <jeevanladhe(dot)os(at)gmail(dot)com> 2022-03-15 17:50:36 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-16 15:12:54 from Justin Pryzby <pryzby(at)telsasoft(dot)com>📎 2023-03-23 02:08:34 from Thomas Munro <thomas(dot)munro(at)gmail(dot)com> 2023-03-23 20:11:38 from Robert Haas <robertmhaas(at)gmail(dot)com> 2023-03-24 14:46:37 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2023-04-12 14:57:51 from Justin Pryzby <pryzby(at)telsasoft(dot)com> 2023-04-12 15:55:16 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-23 20:34:04 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-03-23 21:14:28 from Andres Freund <andres(at)anarazel(dot)de> 2022-03-23 22:31:12 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-23 23:31:44 from Andres Freund <andres(at)anarazel(dot)de> 2022-03-24 13:39:38 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-23 21:52:34 from Justin Pryzby <pryzby(at)telsasoft(dot)com>📎 2022-03-23 22:57:04 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-27 20:50:21 from Justin Pryzby <pryzby(at)telsasoft(dot)com>📎 2022-03-28 16:57:02 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-03-28 17:32:34 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-03-24 21:56:48 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-03-25 13:23:26 from Dipesh Pandit <dipesh(dot)pandit(at)gmail(dot)com> 2022-03-28 16:28:02 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-23 23:07:01 from Justin Pryzby <pryzby(at)telsasoft(dot)com> 2022-03-23 23:36:53 from Andres Freund <andres(at)anarazel(dot)de> 2022-03-24 13:00:05 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-24 13:19:31 from Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org> 2022-03-28 16:37:01 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-28 16:52:23 from Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org> 2022-03-28 16:55:09 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-30 12:06:37 from Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org> 2022-03-30 12:55:30 from Andrew Dunstan <andrew(at)dunslane(dot)net> 2022-03-30 12:00:17 from Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org>📎 2022-03-30 15:44:27 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-03-30 17:00:42 from Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org> 2022-03-31 12:21:47 from Andrew Dunstan <andrew(at)dunslane(dot)net> 2022-02-12 21:12:21 from Justin Pryzby <pryzby(at)telsasoft(dot)com> 2022-02-12 21:23:10 from Andres Freund <andres(at)anarazel(dot)de> 2022-02-11 13:55:23 from Robert Haas <robertmhaas(at)gmail(dot)com> 2022-02-15 16:26:29 from Robert Haas <robertmhaas(at)gmail(dot)com>📎 2022-03-11 18:39:17 from Robert Haas <robertmhaas(at)gmail(dot)com> 2020-05-08 21:27:45 from Andres Freund <andres(at)anarazel(dot)de> 2020-05-11 19:02:50 from Robert Haas <robertmhaas(at)gmail(dot)com> 2020-05-12 05:26:40 from Sumanta Mukherjee <sumanta(dot)mukherjee(at)enterprisedb(dot)com> 2020-05-13 04:01:26 from Suraj Kharage <suraj(dot)kharage(at)enterprisedb(dot)com> 2020-05-13 11:54:15 from Sumanta Mukherjee <sumanta(dot)mukherjee(at)enterprisedb(dot)com> 2020-05-13 14:19:41 from Robert Haas <robertmhaas(at)gmail(dot)com> 2020-05-14 02:20:22 from Suraj Kharage <suraj(dot)kharage(at)enterprisedb(dot)com> 2020-06-30 05:15:43 from Dipesh Pandit <dipesh(dot)pandit(at)gmail(dot)com> 2020-06-30 06:19:34 from Suraj Kharage <suraj(dot)kharage(at)enterprisedb(dot)com> 2020-05-12 08:31:59 from Dilip Kumar <dilipbalaut(at)gmail(dot)com> 2020-05-12 20:26:34 from Robert Haas <robertmhaas(at)gmail(dot)com> 2020-05-13 03:37:37 from Dilip Kumar <dilipbalaut(at)gmail(dot)com> Lists: pgsql-hackers
On Mon, Nov 8, 2021 at 10:59 AM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote: > Robert Haas <robertmhaas(at)gmail(dot)com> writes: > > It turns out that these commits are causing failures on prairiedog. > > Per email from Tom off-list, that's apparently because prairiedog has > > a fussy version of tar that doesn't like it when you omit the trailing > > NUL blocks that are supposed to be part of a tar file. > > FTR, prairiedog is green. It's Noah's AIX menagerie that's complaining.
Woops.
> It's actually a little bit disturbing that we're only seeing a failure > on that one platform, because that means that nothing else is anchoring > us to the strict POSIX specification for tarfile format. We knew that > GNU tar is forgiving about missing trailing zero blocks, but apparently > so is BSD tar.
Yeah.
> One part of me wants to add some explicit test for the trailing blocks. > Another says, well, the *de facto* tar standard seems not to require > the trailing blocks, never mind the letter of POSIX --- so when AIX > dies, will anyone care anymore? Maybe not.
FWIW, I think both of those are pretty defensible positions. Honestly, I'm not sure how likely the bug is to recur once we fix it here, either. The only reason this is a problem is because of the kludge of having the server generate the entire output file except for the last 1kB. If we eliminate that behavior I don't know that this particular problem is especially likely to come back. But adding a test isn't stupid either, just a bit tricky to write. When I was testing locally this morning I found that there were considerably more than 1024 zero bytes at the end of the file because the last file it backs up is pg_control which ends with lots of zero bytes. So it's not sufficient to just write a test that checks for non-zero bytes in the last 1kB of the file. What I think you'd need to do is figure out the number of files in the archive and the sizes of each one, and based on that work out how big the tar archive should be: 512 bytes per file or directory or symlink plus enough extra 512 byte chunks to cover the contents of each file plus an extra 1024 bytes at the end. That doesn't seem particularly simple to code. We could run 'tar tvf' and parse the output to get the number of files and their lengths, but that seems likely to cause more portability headaches than the underlying issue. Since pg_basebackup now has the logic to do all of this parsing internally, we could make it complain if it receives from a v15+ server an archive trailer that is not 1024 bytes of zeroes, but that wouldn't help with this exact problem, because the issue in this case is when pg_basebackup decides it doesn't need to parse in the first place. We could add a pg_basebackup option --force-parsing-and-check-if-the-server-seems-broken, but that seems like overkill to me. So overall I'm inclined to just do nothing about this unless someone has a better idea how to write a reasonable test.
Anyway, here's my proposal for fixing the issue immediately before us. 0001 adds logic to pad out the unterminated tar archives, and 0002 makes the server terminate its tar archives while preserving the logic added by 0001 for cases where we're talking to an older server. I assume that it's best to get something committed quickly here so will do that in ~4 hours if there are no major objections, or sooner if I hear some enthusiastic endorsement.
-- Robert Haas EDB:http://www.enterprisedb.com