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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 165eadf1b7d159212f9281c6035d5f59e3a567ef9b154bdee57404f923a4235d
4
- data.tar.gz: 1a9bcc944d587f7ef826d541de51f270b4d09e5fce80eb5bfafddcc021a026b5
3
+ metadata.gz: 218081af2ff7b57ef68809a19b03066c9b9b965598d07c0e37c61a0480fd69ba
4
+ data.tar.gz: 043ff1255a486f0508c3662711be7a0fb62b7ffcd933f198c0e3275476dc7242
5
5
  SHA512:
6
- metadata.gz: add64055a34765d049d436f078dbfc9fb7a70193ac3bdd6ebdfcd552fb54708546478f3699f248a626675a460f0063b4872910130b25621e675c811cdfe5565d
7
- data.tar.gz: '058a6790ecd0de367a52612e322ede3407e30894a1bdef5322803e44b28a0f4a47283f5a50fa4266ab6eb93023bc4d6b656fdc2238788862728e12540755cf77'
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.close
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: 100,
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(
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Legion
4
4
  module Transport
5
- VERSION = '1.3.7'
5
+ VERSION = '1.3.8'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legion-transport
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.7
4
+ version: 1.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity