Skip to content

test_supervisor: ensure to close socket manager server - #5327

Merged
kenhys merged 1 commit into
fluent:masterfrom
Watson1978:test_supervisor
Apr 20, 2026
Merged

test_supervisor: ensure to close socket manager server#5327
kenhys merged 1 commit into
fluent:masterfrom
Watson1978:test_supervisor

Conversation

@Watson1978

Copy link
Copy Markdown
Contributor

Which issue(s) this PR fixes:
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>
@Watson1978 Watson1978 added CI Test/CI issues backport to v1.19 We will backport this fix to the LTS branch labels Apr 18, 2026
@Watson1978 Watson1978 added this to the v1.20.0 milestone Apr 18, 2026
@Watson1978
Watson1978 requested a review from kenhys April 18, 2026 14:10

@kenhys kenhys left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@kenhys
kenhys merged commit da622eb into fluent:master Apr 20, 2026
36 of 37 checks passed
@Watson1978
Watson1978 deleted the test_supervisor branch April 20, 2026 01:44
github-actions Bot pushed a commit that referenced this pull request Apr 20, 2026
**Which issue(s) this PR fixes**:
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>
Watson1978 added a commit that referenced this pull request Apr 20, 2026
…er (#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>
@Watson1978 Watson1978 added the backported "backport to LTS" is done label Apr 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport to v1.19 We will backport this fix to the LTS branch backported "backport to LTS" is done CI Test/CI issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants