I'd like to get some clarification around an architectural point about recovery. I see that it is normal to see "unexpected pageaddr" errors during recovery because of the way Postgres overwrites old log files, and thus this is taken to be a normal termination condition, i.e. the end of the log (see http://doxygen.postgresql.org/xlog_8c.html#a0519e464bfaa79bde3e241e6cff986c7). My question is how does recovery distinguish between the actual end of the log as opposed to a log file corruption (e.g. torn page)?
I'd like to be able to distinguish between a corruption in the log vs. a normal recovery condition if possible.