Hi, The issue at [1] is caused by missing invalidations, and [2] seems like a likely candidate too. I wonder if it'd be good to have a relcache test mode akin to CLOBBER_CACHE_ALWAYS and RELCACHE_FORCE_RELEASE, that tries to ensure that we've done sufficiently to ensure the right invalidations are sent.
I think what we'd kind of want is to ensure that relcache entries are rebuilt at the earliest possible time, but *not* later. That'd mean they're out of date if there's missing invalidations. Unfortunately I'm not clear on how that'd be achievable? Ideas? The best I can come up with is to code some additional dependencies into CacheInvalidateHeapTuple(), and add tracking ensuring we've sent the right messages. But that seems somewhat painful and filled with holes. [1] http://archives.postgresql.org/message-id/CAKoxK%2B5fVodiCtMsXKV_1YAKXbzwSfp7DgDqUmcUAzeAhf%3DHEQ%40mail.gmail.com [2] https://www.postgresql.org/message-id/12259.1532117...@sss.pgh.pa.us Greetings, Andres Freund