mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	Fix bug in WAL replay of COMMIT_TS_SETTS record.
Previously the WAL replay of COMMIT_TS_SETTS record called TransactionTreeSetCommitTsData() with the argument write_xlog=true, which generated and wrote new COMMIT_TS_SETTS record. This should not be acceptable because it's during recovery. This commit fixes the WAL replay of COMMIT_TS_SETTS record so that it calls TransactionTreeSetCommitTsData() with write_xlog=false and doesn't generate new WAL during recovery. Back-patch to all supported branches. Reported-by: lx zou <zoulx1982@163.com> Author: Fujii Masao Reviewed-by: Alvaro Herrera Discussion: https://postgr.es/m/16931-620d0f2fdc6108f1@postgresql.org
This commit is contained in:
		@@ -1024,7 +1024,7 @@ commit_ts_redo(XLogReaderState *record)
 | 
				
			|||||||
			subxids = NULL;
 | 
								subxids = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		TransactionTreeSetCommitTsData(setts->mainxid, nsubxids, subxids,
 | 
							TransactionTreeSetCommitTsData(setts->mainxid, nsubxids, subxids,
 | 
				
			||||||
									   setts->timestamp, setts->nodeid, true);
 | 
														   setts->timestamp, setts->nodeid, false);
 | 
				
			||||||
		if (subxids)
 | 
							if (subxids)
 | 
				
			||||||
			pfree(subxids);
 | 
								pfree(subxids);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user