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 <
[email protected]>
Reported-By: Tang <[email protected]>
Diagnosed-By:: Masahiko Sawada <
[email protected]>
Discussion: https://postgr.es/m/CAD21AoDzgc8_MYrA5m1fyydomw_eVKtQiYh7sfDK4KEhdMsf_g@mail.gmail.com
lazy_scan_prune(vacrel, buf, blkno, page, vistest, &prunestate);
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 */
if (prunestate.hastup)