mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	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:
		@@ -1279,7 +1279,8 @@ CheckPointLogicalRewriteHeap(void)
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			int			fd = OpenTransientFile(path, O_RDONLY | PG_BINARY, 0);
 | 
			
		||||
			/* on some operating systems fsyncing a file requires O_RDWR */
 | 
			
		||||
			int			fd = OpenTransientFile(path, O_RDWR | PG_BINARY, 0);
 | 
			
		||||
 | 
			
		||||
			/*
 | 
			
		||||
			 * The file cannot vanish due to concurrency since this function
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user