Re: Incorrect fsync handling in pg_basebackup's tar_finish
От | Magnus Hagander |
---|---|
Тема | Re: Incorrect fsync handling in pg_basebackup's tar_finish |
Дата | |
Msg-id | CABUevEw2_mG2Ma4Xhk2BkuXq3d67aGPRfBcMxUMaK5EvKcyzow@mail.gmail.com обсуждение исходный текст |
Ответ на | Incorrect fsync handling in pg_basebackup's tar_finish (Michael Paquier <michael@paquier.xyz>) |
Ответы |
Re: Incorrect fsync handling in pg_basebackup's tar_finish
|
Список | pgsql-hackers |
On Mon, Jun 25, 2018 at 4:43 AM, Michael Paquier <michael@paquier.xyz> wrote:
-- Hi all,
I was just looking at the code of pg_basebackup, and noticed that we
don't actually check if the two last empty blocks of any tar file
produced are correctly fsync'd or not:
@@ -957,7 +957,10 @@ tar_finish(void)
/* sync the empty blocks as well, since they're after the last file */
if (tar_data->sync)
- fsync(tar_data->fd);
+ {
+ if (fsync(tar_data->fd) != 0)
+ return false;
+ }
That looks incorrect to me, hence shouldn't something like the attached
be done? Magnus and others, any opinions?
Yup, that seems like an issue and a correct fix to me.
В списке pgsql-hackers по дате отправления: