bunny 2.14.3 → 2.14.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|