After looking into that a bit more and rediscovering/re-remembering
all the previous threads about RelationTruncate()'s failures, which
d87251048a0f has made worse, I now think we should do one of two
things:
1. Fix bug #18146[1]. Then this WaitIO() problem will be fixed as a
side-effect. I posted a new patch over there.
2. If somehow we can't agree on that critical section in back
branches (for example if we finish up deciding to do the big
re-engineering project for truncation where the buffer pool has new
states, ie fix in HEAD only), then at least wrap the truncation in
HOLD_INTERRUPTS() for releases 14-17.
[1] https://www.postgresql.org/message-id/flat/18146-04e908c662113ad5%40postgresql.org