mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	Remove overzealous VACUUM visibility map assertion.
The all_visible_according_to_vm variable's value is inherently prone to
becoming invalidated concurrently, since it is set before we even
acquire a lock on a related heap page buffer.
Oversight in commit 7136bf34, which added the assertion in passing.
Author: Masahiko Sawada <sawada.mshk@gmail.com>
Reported-By: Tang <tanghy.fnst@fujitsu.com>
Diagnosed-By:: Masahiko Sawada <sawada.mshk@gmail.com>
Discussion: https://postgr.es/m/CAD21AoDzgc8_MYrA5m1fyydomw_eVKtQiYh7sfDK4KEhdMsf_g@mail.gmail.com
			
			
This commit is contained in:
		@@ -1344,7 +1344,6 @@ lazy_scan_heap(LVRelState *vacrel, VacuumParams *params, bool aggressive)
 | 
				
			|||||||
		lazy_scan_prune(vacrel, buf, blkno, page, vistest, &prunestate);
 | 
							lazy_scan_prune(vacrel, buf, blkno, page, vistest, &prunestate);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Assert(!prunestate.all_visible || !prunestate.has_lpdead_items);
 | 
							Assert(!prunestate.all_visible || !prunestate.has_lpdead_items);
 | 
				
			||||||
		Assert(!all_visible_according_to_vm || prunestate.all_visible);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* Remember the location of the last page with nonremovable tuples */
 | 
							/* Remember the location of the last page with nonremovable tuples */
 | 
				
			||||||
		if (prunestate.hastup)
 | 
							if (prunestate.hastup)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user