1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2024-12-14 10:13:05 +02:00
pgbackrest/test
David Steele fa5b2d44ad
Fix regression in retries.
5314dbf aimed to make nested Wait objects more accurate with regard to wait time but it also got rid of the "bonus" retry that was implicit in the prior implementation. This meant that if an operation used up the entire allotted timeout, it would not be retried. Object stores especially are noisy places and some amount of retry should always be attempted. So even though removing the "bonus" retry was intended, it turned out not to be a good idea.

Instead of an implicit retry, formalize two retries in the Wait object even if the wait time has expired. Any number of retries are allowed during the wait period. Also remove waitRemaining() since it is no longer needed.

Adjust tests as needed to account for the extra timeouts.

Note that there may still be an underlying issue here that is simply being masked by retries. That is, the issue expressing was that waiting for a socket to be writable was timing out and without a retry that caused a hard error. This patch does nothing to address the source of the write timeout and perhaps there is nothing we can do about it. It does seem similar to the write issue we had with our blocking TLS implementation, but it was never clear if that was a problem with TLS, the kernel, or a bug in pgBackRest itself. It cropped up after a kernel update and we switched to non-blocking TLS to address the issue (c88684e).
2023-11-09 12:04:25 -03:00
..
certificate SFTP support for repository storage. 2023-05-13 19:16:16 +03:00
code-count v2.48: Repository Storage Tags 2023-09-25 09:32:15 -04:00
data Automate generation of WAL and pg_control test files. 2017-11-18 20:02:54 -05:00
lib/pgBackRestTest Build command and configuration reference in C. 2023-10-09 14:03:43 -04:00
src Fix regression in retries. 2023-11-09 12:04:25 -03:00
.gitignore Move coverage results to test/result. 2020-03-14 15:29:42 -04:00
ci.pl Build command and configuration reference in C. 2023-10-09 14:03:43 -04:00
container.yaml Finalize catalog number for PostgreSQL 16 release. 2023-09-14 18:41:36 -04:00
define.yaml Build command and configuration reference in C. 2023-10-09 14:03:43 -04:00
Dockerfile SFTP support for repository storage. 2023-05-13 19:16:16 +03:00
test.pl Remove double spaces from comments and documentation. 2023-05-02 12:57:12 +03:00
uncrustify.cfg Check for stray execute permissions in test.pl --code-format. 2023-02-01 12:57:04 +07:00
Vagrantfile SFTP support for repository storage. 2023-05-13 19:16:16 +03:00