legion-transport 1.3.7 → 1.3.8
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 +6 -0
- data/lib/legion/transport/connection.rb +16 -1
- data/lib/legion/transport/settings.rb +1 -1
- data/lib/legion/transport/version.rb +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: 218081af2ff7b57ef68809a19b03066c9b9b965598d07c0e37c61a0480fd69ba
|
|
4
|
+
data.tar.gz: 043ff1255a486f0508c3662711be7a0fb62b7ffcd933f198c0e3275476dc7242
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 139dcd7366604e058a31bf7fd6f5fccf556545f99a2fcffb896d16671e35b68b0c99300b3d08fb9e145083dedc5c2a12316bd692ac1244f39627231641d9a7dd
|
|
7
|
+
data.tar.gz: bf7a8d0e9cb7a9db00112a426df6dadf2a871c173e72b5fb946a161db20b26075d75eb0c7b0a459dd8f092668da5cb48a21864fe4d3d5d6b875df9cd90317d0c
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Legion::Transport ChangeLog
|
|
2
2
|
|
|
3
|
+
## [1.3.8] - 2026-03-22
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- Shutdown no longer hangs when Bunny is mid-recovery: disable auto-recovery flag, close with 5s timeout, force-close transport socket on timeout
|
|
7
|
+
- Reduce default `recovery_attempts` from 100 to 10 (20s max retry vs 200s); configurable via `transport.connection.recovery_attempts` env var
|
|
8
|
+
|
|
3
9
|
## [1.3.7] - 2026-03-22
|
|
4
10
|
|
|
5
11
|
### Changed
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'concurrent-ruby'
|
|
4
|
+
require 'timeout'
|
|
4
5
|
require_relative 'connection/ssl'
|
|
5
6
|
|
|
6
7
|
module Legion
|
|
@@ -91,7 +92,21 @@ module Legion
|
|
|
91
92
|
|
|
92
93
|
def shutdown
|
|
93
94
|
Legion::Logging.info 'Transport connection shutting down' if defined?(Legion::Logging)
|
|
94
|
-
session
|
|
95
|
+
return unless @session
|
|
96
|
+
|
|
97
|
+
s = session
|
|
98
|
+
return unless s
|
|
99
|
+
|
|
100
|
+
# Disable automatic recovery so Bunny stops retrying during shutdown
|
|
101
|
+
s.instance_variable_set(:@recovering_from_network_failure, false) if s.respond_to?(:instance_variable_set)
|
|
102
|
+
|
|
103
|
+
Timeout.timeout(5) { s.close }
|
|
104
|
+
rescue Timeout::Error
|
|
105
|
+
Legion::Logging.warn('Transport shutdown timed out after 5s, forcing close') if defined?(Legion::Logging)
|
|
106
|
+
s&.instance_variable_get(:@transport)&.close rescue nil # rubocop:disable Style/RescueModifier
|
|
107
|
+
rescue StandardError => e
|
|
108
|
+
Legion::Logging.warn("Transport shutdown error: #{e.message}") if defined?(Legion::Logging)
|
|
109
|
+
ensure
|
|
95
110
|
@session = nil
|
|
96
111
|
end
|
|
97
112
|
|
|
@@ -27,7 +27,7 @@ module Legion
|
|
|
27
27
|
host: host,
|
|
28
28
|
port: port,
|
|
29
29
|
vhost: ENV['transport.connection.vhost'] || '/',
|
|
30
|
-
recovery_attempts:
|
|
30
|
+
recovery_attempts: (ENV['transport.connection.recovery_attempts'] || 10).to_i,
|
|
31
31
|
logger_level: ENV['transport.log_level'] || 'info',
|
|
32
32
|
connected: false,
|
|
33
33
|
resolved_hosts: resolve_hosts(
|