ncm@zembu.com (Nathan Myers) writes:
> Here, backend B is a good citizen and locks while it makes its change.
No, backend B wasn't a good citizen: it should have been holding
exclusive lock on the buffer.
> Also, as hints, would it be Bad(tm) if an attempt to clear one failed?
Clearing hint bits is also an exclusive-lock-only operation. Notice
I specified that *setting* them is the only case allowed to be done
with shared lock.
regards, tom lane