Author: Noah Misch Commit: Noah Misch Fix back-patch of "Avoid race in RelationBuildDesc() ..." The back-patch of commit fdd965d074d46765c295223b119ca437dbcac973 broke CLOBBER_CACHE_ALWAYS for v9.6 through v13, because it updated the InvalidateSystemCaches() call pertaining to CLOBBER_CACHE_RECURSIVELY and not also the one pertaining to CLOBBER_CACHE_ALWAYS. Back-patch to v13, v12, v11, and v10. Reported by Tomas Vondra. Reviewed by FIXME. Discussion: https://postgr.es/m/df7b4c0b-7d92-f03f-75c4-9e08b269a716@enterprisedb.com diff --git a/src/backend/utils/cache/inval.c b/src/backend/utils/cache/inval.c index 8b0503f..8fe1f0d 100644 --- a/src/backend/utils/cache/inval.c +++ b/src/backend/utils/cache/inval.c @@ -715,27 +715,27 @@ AcceptInvalidationMessages(void) * slows things by at least a factor of 10000, so I wouldn't suggest * trying to run the entire regression tests that way. It's useful to try * a few simple tests, to make sure that cache reload isn't subject to * internal cache-flush hazards, but after you've done a few thousand * recursive reloads it's unlikely you'll learn more. */ #if defined(CLOBBER_CACHE_ALWAYS) { static bool in_recursion = false; if (!in_recursion) { in_recursion = true; - InvalidateSystemCaches(); + InvalidateSystemCachesExtended(true); in_recursion = false; } } #elif defined(CLOBBER_CACHE_RECURSIVELY) { static int recursion_depth = 0; /* Maximum depth is arbitrary depending on your threshold of pain */ if (recursion_depth < 3) { recursion_depth++; InvalidateSystemCachesExtended(true); recursion_depth--;