Обсуждение: [Patch] checksumming-related buglets inpg_verify_checksums/pg_basebackup TAP tests

Поиск
Список
Период
Сортировка

[Patch] checksumming-related buglets inpg_verify_checksums/pg_basebackup TAP tests

От
Michael Banck
Дата:
Hi,

while hacking on pg_verify_checksums and looking at hexdumps, I noticed
that the TAP tests of pg_verify_checksums (and pg_basebackup from which
it was copy-pasted) actually write "305c305c[...]" (i.e. literal
backslashes and number 0s) instead of "000[...]" into the to-be-
corrupted relfilenodes due to wrong quoting.

This also revealed a second bug in the pg_basebackup test suite where
the offset for the corruption in the second file was wrong, so it
actually never got corrupted, and the tests only passed due to the above
twice than expected number of written bytes. The write() probably
overflowed into an adjacent block so that the total number of corrupted
blocks was as expected by addident. Oops, my bad, patch 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

Unser Umgang mit personenbezogenen Daten unterliegt
folgenden Bestimmungen: https://www.credativ.de/datenschutz
Вложения

Re: [Patch] checksumming-related buglets inpg_verify_checksums/pg_basebackup TAP tests

От
Michael Paquier
Дата:
On Thu, Feb 14, 2019 at 03:07:56PM +0100, Michael Banck wrote:
> This also revealed a second bug in the pg_basebackup test suite where
> the offset for the corruption in the second file was wrong, so it
> actually never got corrupted, and the tests only passed due to the above
> twice than expected number of written bytes. The write() probably
> overflowed into an adjacent block so that the total number of corrupted
> blocks was as expected by accident. Oops, my bad, patch attached.

Fixed and back-patched where adapted, thanks!  ee9e145 was a first
shot for a fix in pg_basebackup tests, but it has missed one seek()
call.
--
Michael

Вложения