Re: [PATCH] Verify Checksums during Basebackups
Michael Banck <michael.banck@credativ.de>
From: Michael Banck <michael.banck@credativ.de>
To: Magnus Hagander <magnus@hagander.net>
Cc: Stephen Frost <sfrost@snowman.net>, David Steele <david@pgmasters.net>, PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>, Robert Haas <robertmhaas@gmail.com>
Date: 2018-04-02T12:48:50Z
Lists: pgsql-hackers
Attachments
- basebackup-verify-checksum-V6.patch (text/x-diff) patch
Hi! On Sun, Apr 01, 2018 at 05:27:21PM +0200, Magnus Hagander wrote: > It might be a micro-optimisation, but ISTM that we shouldn't do the > basename(palloc(fn)) in is_heap_file() unless we actually need it -- so not > at the top of the function. (And surely "." and ".." should not occur here? > I think that's a result of copy/paste from the online checksum patch? > > We also do exactly the same basename(palloc(fn)) in sendFile(). Can we > find a way to reuse that duplication? Perhaps we want to split it into the > two pieces already out in sendFile() and pass it in as separate parameters? I've done the latter now, although it looks a bit weird that the second argument data is a subset of the first. I couldn't find another way to not have it done twice, though. > If not then this second one should at least only be done inside the if > (verify_checksums). We can't have both, as we need to call the is_heap_file() function in order to determine whether we should verify the checksums. > There is a bigger problem next to that though -- I believe basename() does > not exist on Win32. I haven't tested it, but there is zero documentation of > it existing, which usually indicates it doesn't. That's the part that > definitely needs to get fixed. > > I think you need to look into the functionality in port/path.c, in > particular last_dir_separator()? Thanks for the pointer, I've used that now; I mentioned before that basename() might be a portability hazard, but couldn't find a good substitute myself. V6 of the patch is attached. Michael -- Michael Banck Projektleiter / Senior Berater Tel.: +49 2166 9901-171 Fax: +49 2166 9901-100 Email: michael.banck@credativ.de credativ GmbH, HRB Mönchengladbach 12080 USt-ID-Nummer: DE204566209 Trompeterallee 108, 41189 Mönchengladbach Geschäftsführung: Dr. Michael Meskes, Jörg Folz, Sascha Heuer
Commits
-
Validate page level checksums in base backups
- 4eb77d50c21d 11.0 landed