Fix bogus tar-file padding logic for standby.signal.
When pg_basebackup -R is used, we inject standby.signal into the tar file for the main tablespace. The proper thing to do is to pad each file injected into the tar file out to a 512-byte boundary by appending nulls, but here the file is of length 0 and we add 511 zero bytes. Since 0 is already a multiple of 512, we should not add any zero bytes. Do that instead. Patch by me, reviewed by Tom Lane. Discussion: http://postgr.es/m/CA+TgmobWbfReO9-XFk8urR1K4wTNwqoHx_v56t7=T8KaiEoKNw@mail.gmail.com
This commit is contained in:
parent
e81e5741a6
commit
0278d3f79a
@ -1207,7 +1207,12 @@ ReceiveTarFile(PGconn *conn, PGresult *res, int rownum)
|
|||||||
time(NULL));
|
time(NULL));
|
||||||
|
|
||||||
writeTarData(&state, header, sizeof(header));
|
writeTarData(&state, header, sizeof(header));
|
||||||
writeTarData(&state, zerobuf, 511);
|
|
||||||
|
/*
|
||||||
|
* we don't need to pad out to a multiple of the tar block size
|
||||||
|
* here, because the file is zero length, which is a multiple of
|
||||||
|
* any block size.
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user