Skip to content

Commit 56e7f67

Browse files
authored
Merge pull request #2635 from ganmacs/fix-bug-available-socket-value-can-be-nil
Reuse same hash object after calling purge_obsolete_socks
2 parents 497fd28 + 20c8a10 commit 56e7f67

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

lib/fluent/plugin/out_forward/socket_cache.rb

+3-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,9 @@ def purge_obsolete_socks
8181
end
8282
end
8383
end
84-
@available_sockets = @available_sockets.select { |_, v| !v.empty? }
84+
85+
# reuse same object (@available_sockets)
86+
@available_sockets.reject! { |_, v| v.empty? }
8587

8688
sockets += @inactive_sockets
8789
@inactive_sockets.clear

test/plugin/out_forward/test_socket_cache.rb

+10
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,16 @@ class SocketCacheTest < Test::Unit::TestCase
3838
sock = mock!.open { new_sock }.subject
3939
assert_equal(new_sock, c.checkout_or('key') { sock.open })
4040
end
41+
42+
test 'reuse same hash object after calling purge_obsolete_socks' do
43+
c = Fluent::Plugin::ForwardOutput::SocketCache.new(10, $log)
44+
c.checkout_or('key') { 'socket' }
45+
c.purge_obsolete_socks
46+
47+
assert_nothing_raised(NoMethodError) do
48+
c.checkout_or('key') { 'new socket' }
49+
end
50+
end
4151
end
4252

4353
sub_test_case 'checkin' do

0 commit comments

Comments
 (0)