On Mon, Mar 4, 2019 at 8:31 PM Julien Rouhaud <rjuju...@gmail.com> wrote:
>
> On Fri, Feb 22, 2019 at 3:01 PM Magnus Hagander <mag...@hagander.net> wrote:
> >
> > It tracks things that happen in the general backends. Possibly we should 
> > also consider counting the errors actually found when running base backups? 
> > OTOH, that part of the code doesn't really track things like databases (as 
> > it operates just on the raw data directory underneath), so that 
> > implementation would definitely not be as clean...
>
> Sorry I just realized that I totally forgot this part of the thread.
>
> While it's true that we operate on raw directory, I see that sendDir()
> already setup a isDbDir var, and if this is true lastDir should
> contain the oid of the underlying database.  Wouldn't it be enough to
> call sendFile() using this, something like (untested):
>
> if (!sizeonly)
> - sent = sendFile(pathbuf, pathbuf + basepathlen + 1, &statbuf, true);
> + sent = sendFile(pathbuf, pathbuf + basepathlen + 1, &statbuf, true,
> isDbDir ? pg_atoi(lastDir+1, 4) : InvalidOid);
>
> and accordingly report any checksum error from sendFile()?

So this seem to work just fine without adding much code.  PFA v3 of
Magnus' patch including error reporting for BASE_BACKUP.

Attachment: stat_checksums_v3.diff
Description: Binary data

Reply via email to