Re: pg_basebackup, pg_receivexlog and data durability (was: silent data loss with ext4 / all current versions)
От | Michael Paquier |
---|---|
Тема | Re: pg_basebackup, pg_receivexlog and data durability (was: silent data loss with ext4 / all current versions) |
Дата | |
Msg-id | CAB7nPqSENY_aPF21z-kg8_of=BZ2kFTj9+p+EsNJLzT=OMzxdQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: pg_basebackup, pg_receivexlog and data durability (was: silent data loss with ext4 / all current versions) (Jeff Janes <jeff.janes@gmail.com>) |
Ответы |
Re: pg_basebackup, pg_receivexlog and data durability (was: silent data loss with ext4 / all current versions)
|
Список | pgsql-hackers |
On Fri, Sep 30, 2016 at 1:31 AM, Jeff Janes <jeff.janes@gmail.com> wrote: > On Thu, Sep 29, 2016 at 8:33 AM, Peter Eisentraut > <peter.eisentraut@2ndquadrant.com> wrote: >> >> On 9/26/16 10:34 PM, Michael Paquier wrote: >> > I thought that as long as the error string is shown to the user, it >> > does not matter much if errno is still saved or not. All the callers >> > of durable_rename() on frontends don't check for strerrno(errno) >> > afterwards. Do you think it matters? Changing that back is trivial. >> > Sorry for not mentioning directly in the thread that I modified that >> > when dropping the last patch set. >> >> Actually, I think the equivalent backend code only does this to save the >> errno across the close call because the elog call comes after the close. >> So it's OK to not do that in the frontend. >> >> With that in mind, I have committed the v3 series now. Thanks! > I'm getting compiler warnings: > > file_utils.c: In function 'fsync_pgdata': > file_utils.c:86: warning: passing argument 2 of 'walkdir' from incompatible > pointer type > file_utils.c:36: note: expected 'int (*)(const char *, bool, const char *)' > but argument is of type 'void (*)(const char *, bool, const char *)' > file_utils.c:88: warning: passing argument 2 of 'walkdir' from incompatible > pointer type > file_utils.c:36: note: expected 'int (*)(const char *, bool, const char *)' > but argument is of type 'void (*)(const char *, bool, const char *)' > file_utils.c:89: warning: passing argument 2 of 'walkdir' from incompatible > pointer type > file_utils.c:36: note: expected 'int (*)(const char *, bool, const char *)' > but argument is of type 'void (*)(const char *, bool, const char *)' Oops. Are you using gcc to see that? I compiled with clang and on Windows without noticing it. -- Michael
В списке pgsql-hackers по дате отправления: