Skip to content

Commit d2ef7c6

Browse files
Backport(v1.19): test_supervisor: ensure to close socket manager server (#5327) (#5337)
**Which issue(s) this PR fixes**: Backport #5327 Fixes # **What this PR does / why we need it**: Fix thread and resource leaks in test_supervisor.rb by ensuring proper shutdown for socket manager. Before: ``` $ ruby -Ilib:test -e "at_exit { puts '--- Thread count at exit: ' + Thread.list.size.to_s; pp Thread.list }; require './test/test_supervisor.rb'" ... ==================================================================================================================================================================================================== Omission: Only for Windows. [test_files_for_each_process_with_rotate_on_windows(SupervisorTest::init logger)] /home/watson/src/fluentd/test/test_supervisor.rb:881:in 'SupervisorTest::TEST_U3VwZXJ2aXNvclRlc3Q6OmluaXQgbG9nZ2Vy#test_files_for_each_process_with_rotate_on_windows' ==================================================================================================================================================================================================== Finished in 23.457651502 seconds. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 74 tests, 195 assertions, 0 failures, 0 errors, 0 pendings, 8 omissions, 0 notifications 100% passed ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 3.15 tests/s, 8.31 assertions/s --- Thread count at exit: 10 [#<Thread:0x00007f34974b7fa8 run>, #<Thread:0x00007f347932bd88 /home/watson/.rbenv/versions/4.0.2/lib/ruby/gems/4.0.0/gems/serverengine-2.4.0/lib/serverengine/socket_manager_unix.rb:125 sleep>, #<Thread:0x00007f347947e050 /home/watson/.rbenv/versions/4.0.2/lib/ruby/gems/4.0.0/gems/webrick-1.9.2/lib/webrick/utils.rb:158 sleep_forever>, #<Thread:0x00007f34794da008 /home/watson/.rbenv/versions/4.0.2/lib/ruby/gems/4.0.0/gems/serverengine-2.4.0/lib/serverengine/socket_manager_unix.rb:125 sleep>, #<Thread:0x00007f347951d1f0 /home/watson/.rbenv/versions/4.0.2/lib/ruby/gems/4.0.0/gems/serverengine-2.4.0/lib/serverengine/socket_manager_unix.rb:125 sleep>, #<Thread:0x00007f347954f970 /home/watson/.rbenv/versions/4.0.2/lib/ruby/gems/4.0.0/gems/serverengine-2.4.0/lib/serverengine/socket_manager_unix.rb:125 sleep>, #<Thread:0x00007f34795799c8 /home/watson/.rbenv/versions/4.0.2/lib/ruby/gems/4.0.0/gems/serverengine-2.4.0/lib/serverengine/socket_manager_unix.rb:125 sleep>, #<Thread:0x00007f3479580cc8 /home/watson/.rbenv/versions/4.0.2/lib/ruby/gems/4.0.0/gems/serverengine-2.4.0/lib/serverengine/socket_manager_unix.rb:125 sleep>, #<Thread:0x00007f34795af938 /home/watson/src/fluentd/lib/fluent/supervisor.rb:419 sleep>, #<Thread:0x00007f34795a23a0 /home/watson/.rbenv/versions/4.0.2/lib/ruby/gems/4.0.0/gems/serverengine-2.4.0/lib/serverengine/socket_manager_unix.rb:125 sleep>] ``` After: ``` $ ruby -Ilib:test -e "at_exit { puts '--- Thread count at exit: ' + Thread.list.size.to_s; pp Thread.list }; require './test/test_supervisor.rb'" ... ==================================================================================================================================================================================================== Omission: Only for Windows. [test_files_for_each_process_with_rotate_on_windows(SupervisorTest::init logger)] /home/watson/src/fluentd/test/test_supervisor.rb:881:in 'SupervisorTest::TEST_U3VwZXJ2aXNvclRlc3Q6OmluaXQgbG9nZ2Vy#test_files_for_each_process_with_rotate_on_windows' ==================================================================================================================================================================================================== Finished in 23.451976513 seconds. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 74 tests, 195 assertions, 0 failures, 0 errors, 0 pendings, 8 omissions, 0 notifications 100% passed ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 3.16 tests/s, 8.31 assertions/s --- Thread count at exit: 3 [#<Thread:0x00007fcf1a057fa8 run>, #<Thread:0x00007fcefcc0d938 /home/watson/.rbenv/versions/4.0.2/lib/ruby/gems/4.0.0/gems/webrick-1.9.2/lib/webrick/utils.rb:158 sleep_forever>, #<Thread:0x00007fcefcd3ec58 /home/watson/src/fluentd/lib/fluent/supervisor.rb:419 sleep>] ``` **Docs Changes**: N/A **Release Note**: N/a Signed-off-by: Shizuo Fujita <fujita@clear-code.com> Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Shizuo Fujita <fujita@clear-code.com>
1 parent 4903074 commit d2ef7c6

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

test/test_supervisor.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
require 'fluent/system_config'
44
require 'fluent/supervisor'
55
require 'fluent/file_wrapper'
6+
require 'fluent/version'
67
require_relative 'test_plugin_classes'
78

89
require 'net/http'
@@ -919,6 +920,7 @@ def test_enable_shared_socket
919920
ensure
920921
server.after_run
921922
ENV.delete('SERVERENGINE_SOCKETMANAGER_PATH')
923+
server.socket_manager_server.close
922924
end
923925
end
924926

@@ -1013,6 +1015,7 @@ def test_zero_downtime_restart((daemonize, wait_success, wait_sleep, restart_can
10131015
ensure
10141016
Fluent::Supervisor.cleanup_socketmanager_path
10151017
ENV.delete('SERVERENGINE_SOCKETMANAGER_PATH')
1018+
server.socket_manager_server.close
10161019
end
10171020

10181021
def test_share_sockets
@@ -1043,6 +1046,8 @@ def test_share_sockets
10431046
new_server&.after_run
10441047
ENV.delete('SERVERENGINE_SOCKETMANAGER_PATH')
10451048
ENV.delete("FLUENT_RUNNING_IN_PARALLEL_WITH_OLD")
1049+
server.socket_manager_server.close
1050+
new_server.socket_manager_server.close
10461051
end
10471052

10481053
def test_stop_parallel_old_supervisor_after_delay

0 commit comments

Comments
 (0)