{"shas":[["2ada6779c5d3fcc31568ba263f8a0cc9bb8318c1","ffeaa947aef224da9ba99b6a18bdd74288df0e3e@sss.pgh.pa.us","Fix race condition in relcache init file invalidation.\n\nThe previous code tried to synchronize by unlinking the init file twice,\nbut that doesn't actually work: it leaves a window wherein a third process\ncould read the already-stale init file but miss the SI messages that would\ntell it the data is stale.  The result would be bizarre failures in catalog\naccesses, typically \"could not read block 0 in file ...\" later during\nstartup.\n\nInstead, hold RelCacheInitLock across both the unlink and the sending of\nthe SI messages.  This is more straightforward, and might even be a bit\nfaster since only one unlink call is needed.\n\nThis has been wrong since it was put in (in 2002!), so back-patch to all\nsupported releases.","Tom Lane"]],"ref":"refs/heads/master","size":1,"head":"2ada6779c5d3fcc31568ba263f8a0cc9bb8318c1","push_id":39696723}