I can't see any place that "cachedFetchXid" is ever invalidated.
Shouldn't it be invalidated before transaction ID wraparound?
It's difficult to construct a test case to show whether this is a
problem or not, but I couldn't find how this is solved in the code. My
understanding is that, before truncating the clog, we need to make sure
that there are no references to any transaction IDs that would be cut
off.
Regards,
Jeff Davis