Heikki Linnakangas <hlinnaka@iki.fi> writes:
> Ok, I have pushed this. Thanks!
Coverity is unhappy about this bit:
/srv/coverity/git/pgsql-git/postgresql/src/bin/pg_upgrade/multixact_read_v18.c: 282 in
GetOldMultiXactIdSingleMember()
276 if (!TransactionIdIsValid(*xactptr))
277 {
278 /*
279 * Corner case 2: we are looking at unused slot zero
280 */
281 if (offset == 0)
>>> CID 1676077: Control flow issues (DEADCODE)
>>> Execution cannot reach this statement: "continue;".
282 continue;
283
284 /*
285 * Otherwise this is an invalid entry that should not be
It sees the earlier test for offset == 0, and evidently is assuming
that the loop's "offset++" will not wrap around. Now I think that
the point of this check is exactly that "offset++" could have wrapped
around, but the commentary is not so clear that I'm certain this is a
false positive. If that is the intention, what do you think of
rephrasing this comment as "we have wrapped around to unused slot
zero"?
regards, tom lane