Here are a few small patches for basebackup.c: 0001 fixes what I believe to be a slight logical error in sendFile(), introduced by me during the v15 development cycle when I introduced the bbsink abstraction. I believe that it is theoretically possible for this to cause an assertion failure, although the chances of that actually happening seem extremely remote in practice. I don't believe there are any consequences worse than that; for instance, I don't think this can result in your backup getting corrupted. See the proposed commit message for full details. Because I believe that this is formally a bug, I am inclined to think that this should be back-patched, but I also think it's fairly likely that no one would ever notice if we didn't. However, patch authors have been known to be wrong about the consequences of their own bugs from time to time, so please do let me know if this seems more serious to you than what I'm indicating, or conversely if you think it's not a problem at all for some reason.
0002 removes an old comment from the file that I find useless and slightly misleading. 0003 rewrites a comment about the way that we verify checksums during backups. If we get a checksum mismatch, we reread the block and see if the perceived problem goes away. If it doesn't, then we report it. This is intended as protection against the backup reading a block while some other process is in the midst of writing it, but there's no guarantee that any concurrent write will finish quickly enough for our second read attempt to see the updated contents. The comment claims otherwise, and that's false, and I'm getting tired of reading this false claim every time I read this code, so I rewrote the comment to say what I believe to be true, namely, that our algorithm is flaky and we have no good way to fix that right now. I'm pretty sure that Andres pointed this problem out when this feature was under discussion, but somehow it's still like this. There's another nearby comment which is also false or at least misleading for basically the same reasons which probably should be rewritten too, but I was a bit less certain how to rewrite it and it wasn't making me as annoyed as this one, so for now I only rewrote the one. Comments? -- Robert Haas EDB: http://www.enterprisedb.com
0002-Remove-an-old-comment-that-doesn-t-seem-especially-u.patch
Description: Binary data
0001-In-basebackup.c-perform-end-of-file-test-after-check.patch
Description: Binary data
0003-Reword-overly-optimistic-comment-about-backup-checks.patch
Description: Binary data