bunny 2.14.3 → 2.14.4
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/.travis.yml +5 -4
- data/ChangeLog.md +21 -2
- data/README.md +1 -1
- data/lib/bunny/cruby/socket.rb +3 -0
- data/lib/bunny/reader_loop.rb +8 -1
- data/lib/bunny/session.rb +2 -0
- data/lib/bunny/version.rb +1 -1
- data/repl +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf0bcb6bc92f6092788f0eeffed76f438be49f1341857a6e5a94254544cf44e3
|
4
|
+
data.tar.gz: 317240a20f888087e959999b7cbe10d57fe423316032bc6fa6f2a6733e8dd50c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0c159c08871fdf203a322543489d9c563d45c855f407f9e069adc6f3f0d97f7b0fb8d7ac90a5280dfdc2cea81dbef53e0c2b217be2064373432d0ca0d889626
|
7
|
+
data.tar.gz: 4d8a071b4d8494ad3976d842a705cf3d8323d8c14c61a0c147c309cc07ebc77bf6420243a597c68a3cde9b4b7a6cb5f17e25bab7972cf607f1d1d55b8bd88cdb
|
data/.travis.yml
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
dist: bionic
|
1
2
|
language: ruby
|
2
3
|
bundler_args: --without development
|
3
4
|
cache: bundler
|
@@ -10,10 +11,10 @@ before_script:
|
|
10
11
|
script: "bundle exec rake integration_without_recovery"
|
11
12
|
rvm:
|
12
13
|
- ruby-head
|
13
|
-
- "2.6.
|
14
|
-
- "2.5.
|
15
|
-
- "2.4.
|
16
|
-
- "2.3.
|
14
|
+
- "2.6.3"
|
15
|
+
- "2.5.5"
|
16
|
+
- "2.4.5"
|
17
|
+
- "2.3.8"
|
17
18
|
notifications:
|
18
19
|
email: michael@rabbitmq.com
|
19
20
|
services:
|
data/ChangeLog.md
CHANGED
@@ -1,6 +1,25 @@
|
|
1
|
-
## Changes between Bunny 2.14.
|
1
|
+
## Changes between Bunny 2.14.4 and 2.14.5 (in development)
|
2
2
|
|
3
|
-
No changes
|
3
|
+
No changes.
|
4
|
+
|
5
|
+
|
6
|
+
## Changes between Bunny 2.14.3 and 2.14.4 (Feb 11th, 2020)
|
7
|
+
|
8
|
+
### More Defensive Thread Join Operations
|
9
|
+
|
10
|
+
Bunny is now more defensive around thread join operations which it performs
|
11
|
+
when stopping its consumer work pool.
|
12
|
+
|
13
|
+
`Thread#join` can cause an unhandled exception to be re-raised at
|
14
|
+
a very surprising moment. This behavior can also be affected by 3rd party
|
15
|
+
libraries, e.g. those that do connection pooling. While Bunny cannot
|
16
|
+
fully avoid every possible surprising failure, it now avoids at least
|
17
|
+
one such problematic interaction triggered by a custom [interrupt handler](https://ruby-doc.org/core-2.5.1/Thread.html#method-c-handle_interrupt)
|
18
|
+
in a 3rd party library.
|
19
|
+
|
20
|
+
GitHub issue: [#589](https://github.com/ruby-amqp/bunny/issues/589)
|
21
|
+
|
22
|
+
Contributed by @fuegas.
|
4
23
|
|
5
24
|
|
6
25
|
## Changes between Bunny 2.14.2 and 2.14.3 (Sep 29th, 2019)
|
data/README.md
CHANGED
@@ -48,7 +48,7 @@ Specific examples:
|
|
48
48
|
|
49
49
|
Modern Bunny versions support
|
50
50
|
|
51
|
-
* CRuby 2.
|
51
|
+
* CRuby 2.3 through 2.6 (inclusive)
|
52
52
|
|
53
53
|
Bunny works sufficiently well on JRuby but there are known
|
54
54
|
JRuby bugs in versions prior to JRuby 9000 that cause high CPU burn. JRuby users should
|
data/lib/bunny/cruby/socket.rb
CHANGED
@@ -32,6 +32,9 @@ module Bunny
|
|
32
32
|
socket.setsockopt(::Socket::IPPROTO_TCP, ::Socket::TCP_NODELAY, true)
|
33
33
|
end
|
34
34
|
socket.setsockopt(::Socket::SOL_SOCKET, ::Socket::SO_KEEPALIVE, true) if options.fetch(:keepalive, true)
|
35
|
+
socket.instance_eval do
|
36
|
+
@__bunny_socket_eof_flag__ = false
|
37
|
+
end
|
35
38
|
socket.extend self
|
36
39
|
socket.options = { :host => host, :port => port }.merge(options)
|
37
40
|
socket
|
data/lib/bunny/reader_loop.rb
CHANGED
@@ -116,7 +116,14 @@ module Bunny
|
|
116
116
|
end
|
117
117
|
|
118
118
|
def join
|
119
|
-
|
119
|
+
# Thread#join can/would trigger a re-raise of an unhandled exception in this thread.
|
120
|
+
# In addition, Thread.handle_interrupt can be used by other libraries or application code
|
121
|
+
# that would make this join operation fail with an obscure exception.
|
122
|
+
# So we try to save everyone some really unpleasant debugging time by introducing
|
123
|
+
# this condition which typically would not evaluate to true anyway.
|
124
|
+
#
|
125
|
+
# See ruby-amqp/bunny#589 and ruby-amqp/bunny#590 for background.
|
126
|
+
@thread.join if @thread && @thread != Thread.current
|
120
127
|
end
|
121
128
|
|
122
129
|
def kill
|
data/lib/bunny/session.rb
CHANGED
@@ -171,6 +171,7 @@ module Bunny
|
|
171
171
|
else
|
172
172
|
opts[:automatically_recover] || opts[:automatic_recovery]
|
173
173
|
end
|
174
|
+
@recovering_from_network_failure = false
|
174
175
|
@max_recovery_attempts = opts[:recovery_attempts]
|
175
176
|
@recovery_attempts = @max_recovery_attempts
|
176
177
|
# When this is set, connection attempts won't be reset after
|
@@ -184,6 +185,7 @@ module Bunny
|
|
184
185
|
@continuation_timeout = opts.fetch(:continuation_timeout, DEFAULT_CONTINUATION_TIMEOUT)
|
185
186
|
|
186
187
|
@status = :not_connected
|
188
|
+
@manually_closed = false
|
187
189
|
@blocked = false
|
188
190
|
|
189
191
|
# these are negotiated with the broker during the connection tuning phase
|
data/lib/bunny/version.rb
CHANGED
data/repl
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bunny
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.14.
|
4
|
+
version: 2.14.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Duncan
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2020-02-11 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: amq-protocol
|