Looking at the upgrade code, in light of the "IPC/MultixactCreation on
the Standby server" thread [1], I think we need to make it more
tolerant. It's possible that there are 0 offsets in
pg_multixact/offsets. That might or might not be a problem: it's OK as
long as those multixids don't appear in any heap table, or you might
actually have lost those multixids, which is bad but the damage has
already been done and upgrade should not get stuck on it.
GetOldMultiXactIdSingleMember() currently asserts that the offset is
never zero, but it should try to do something sensible in that case
instead of just failing.
[1]
https://www.postgresql.org/message-id/172e5723-d65f-4eec-b512-14beacb326ce%40yandex.ru
- Heikki