mirror of https://github.com/postgres/postgres
Flush logical mapping files with fd opened for read/write at checkpoint
The file descriptor was opened with read-only to fsync a regular file, which would cause EBADFD errors on some platforms. This is similar to the recent fix done bya586cc4b
(which was broken by me with82a5649
), except that I noticed this issue while monitoring the backend code for similar mistakes. Backpatch to 9.4, as this has been introduced since logical decoding exists as ofb89e151
. Author: Michael Paquier Reviewed-by: Andres Freund Discussion: https://postgr.es/m/20191006045548.GA14532@paquier.xyz Backpatch-through: 9.4
This commit is contained in:
parent
1634d36157
commit
b8e19b932a
|
@ -1280,7 +1280,8 @@ CheckPointLogicalRewriteHeap(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
int fd = OpenTransientFile(path, O_RDONLY | PG_BINARY);
|
||||
/* on some operating systems fsyncing a file requires O_RDWR */
|
||||
int fd = OpenTransientFile(path, O_RDWR | PG_BINARY);
|
||||
|
||||
/*
|
||||
* The file cannot vanish due to concurrency since this function
|
||||
|
|
Loading…
Reference in New Issue