pgoutput-client 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +43 -0
- data/lib/pgoutput/client/runner.rb +7 -4
- data/lib/pgoutput/client/stream.rb +1 -0
- data/lib/pgoutput/client/version.rb +1 -1
- data/sig/pgoutput/client/runner.rbs +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f4b5412d12b81f8e787d00975419c7478af45fb47d0fa0f616876a9141f47396
|
|
4
|
+
data.tar.gz: 9a77f1cbb0c438312fdefa4045f89f2359829751a96e6131f20ffc9ce4ccc6b2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e067f71e70ade6f7cf25d543edbfac7f79058e6a8b79a35457a6320365e574d7c8c12ecbdecd74355eff1aa641eabde1c926e74dc52513e7a1ad101461a7375d
|
|
7
|
+
data.tar.gz: e66ed2183b869dc7074595fc2509763d5da468ddd7f21a5ed10617990405da21b720df5131de01771beaed5532970073eed56bbbd1517a40bb271019b34f8af9
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,49 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.2.2 - 2026-06-17
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
* Added periodic standby status feedback while replication streams are idle.
|
|
10
|
+
* Added E2E coverage for PostgreSQL restart and replication recovery.
|
|
11
|
+
* Added E2E validation of replication slot resume behavior after reconnect.
|
|
12
|
+
* Added test coverage for idle replication streams.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
* Increased reconnect retry budget to better tolerate PostgreSQL restart windows.
|
|
17
|
+
* Improved replication stream resilience during transient PostgreSQL outages.
|
|
18
|
+
* Improved reconnect behavior when PostgreSQL is starting up and temporarily rejecting connections.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
* Fixed replication timeout during idle logical replication streams.
|
|
23
|
+
|
|
24
|
+
* Fixed walsender termination caused by missing standby feedback during periods without WAL activity.
|
|
25
|
+
|
|
26
|
+
* Fixed reconnect handling after PostgreSQL restart.
|
|
27
|
+
|
|
28
|
+
* Fixed connection recovery when PostgreSQL reports:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
FATAL: the database system is starting up
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
* Fixed E2E PostgreSQL test infrastructure and restart recovery validation.
|
|
35
|
+
|
|
36
|
+
* Fixed test isolation between unit and E2E PostgreSQL connection paths.
|
|
37
|
+
|
|
38
|
+
### Internal
|
|
39
|
+
|
|
40
|
+
* Expanded transport lifecycle validation.
|
|
41
|
+
* Improved operational reliability of long-running replication sessions.
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## [0.2.1] - 2026-06-16
|
|
45
|
+
|
|
46
|
+
- Gemspec summary and description improvement release only
|
|
47
|
+
|
|
5
48
|
## [0.2.0] - 2026-06-16
|
|
6
49
|
|
|
7
50
|
### Fixed
|
|
@@ -37,7 +37,7 @@ module Pgoutput
|
|
|
37
37
|
# @see Stream
|
|
38
38
|
# @api public
|
|
39
39
|
class Runner
|
|
40
|
-
DEFAULT_RECONNECT_ATTEMPTS =
|
|
40
|
+
DEFAULT_RECONNECT_ATTEMPTS = 30
|
|
41
41
|
DEFAULT_RECONNECT_BACKOFF = 0.5
|
|
42
42
|
|
|
43
43
|
# Configuration used by this runner.
|
|
@@ -70,6 +70,7 @@ module Pgoutput
|
|
|
70
70
|
@resume_lsn = configuration.start_lsn
|
|
71
71
|
@acked_lsn = configuration.start_lsn
|
|
72
72
|
@slot_created = false
|
|
73
|
+
@connected_once = false
|
|
73
74
|
@last_error = nil
|
|
74
75
|
@reconnect_attempts = 0
|
|
75
76
|
end
|
|
@@ -204,15 +205,17 @@ module Pgoutput
|
|
|
204
205
|
def run_stream_cycle(configuration, &block)
|
|
205
206
|
connection = Connection.open(configuration)
|
|
206
207
|
setup_connection(connection)
|
|
208
|
+
@connected_once = true
|
|
207
209
|
@stream = Stream.new(connection:, configuration:, acked_lsn: @acked_lsn)
|
|
208
210
|
@stream.start(&block)
|
|
209
211
|
:done
|
|
210
212
|
rescue ConnectionError => e
|
|
211
213
|
@last_error = e
|
|
212
|
-
raise if @stopped
|
|
214
|
+
raise if @stopped
|
|
215
|
+
raise if @stream.nil? && !@connected_once
|
|
213
216
|
|
|
214
|
-
@resume_lsn = @stream
|
|
215
|
-
@acked_lsn = @stream
|
|
217
|
+
@resume_lsn = @stream&.latest_lsn || @resume_lsn
|
|
218
|
+
@acked_lsn = @stream&.acked_lsn || @acked_lsn
|
|
216
219
|
:retry
|
|
217
220
|
ensure
|
|
218
221
|
@stream = nil
|