On Mon, Sep 26, 2016 at 3:59 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Magnus Hagander <magnus@hagander.net> writes: > Oh, right, at the very last loop. I've never seen it need more than 1 loop > so I didn't manage to hit that codepath :) But yeah, saving errno and > restoring it on the other side of pg_usleep is probably a good idea.
Right. On a larger scale --- I'm too uncaffeinated to figure out whether this is the code path taken for the initially user-supplied file name. But it would be unfriendly if when you fat-finger the command line arguments, it takes 5 seconds for pg_xlogdump to tell you so. Maybe the looping behavior should only happen on non-first file access.
It's a different codepath, so the retry does not happen on that. Different error message, even. ("could not open file" vs "could not find file").
I'll go commit this including a source code comment about why the loop is there that was missing.