Commit cb90ad7
**Which issue(s) this PR fixes**:
* Backport #5026
**What this PR does / why we need it**:
TCP server with `server` helper does not close all connections at
shutdown process.
When receiving data from multiple clients, the server receive the data
continuously because the connection is not closed.
The server will shut down properly by this PR
### Reproduce
1. Launch Fluentd with following config file.
2. Send syslog data from two or more clients using following client
script
3. Terminate Fluentd
4. Relaunch Fluentd, then it shows the `2025-07-16 14:12:26 +0900
[warn]: #0 restoring buffer file: path = xxxxxxxxx` in logs.
* config
```
<source>
@type syslog
tag system
<transport tcp>
</transport>
bind 0.0.0.0
port 5140
</source>
<match **>
@type file
path "#{File.expand_path('~/tmp/fluentd/maillog')}"
<buffer>
@type file
path "#{File.expand_path('~/tmp/fluentd/buffer/buffer_syslog_maillog')}"
flush_at_shutdown true
</buffer>
</match>
```
* client script
```ruby
require 'bundler/inline'
gemfile do
source 'https://rubygems.org'
gem 'remote_syslog_sender'
end
def create_client
Thread.new do
sender = RemoteSyslogSender.new('127.0.0.1', 5140, protocol: :tcp)
loop do
sender.transmit("message body")
sleep 0.5
end
end
end
clients = []
3.times do
clients << create_client
end
clients.each(&:join)
```
Example code.
```
@ary = [1,2,3]
# It would like 1, 2, and 3 to be processed.
# However, following code handles 1 and 3.
@ary.each do |i|
puts i
@ary.delete(i)
end
```
**Docs Changes**:
Not needed.
**Release Note**:
Same as the title.
Signed-off-by: Shizuo Fujita <fujita@clear-code.com>
Signed-off-by: Daijiro Fukuda <fukuda@clear-code.com>
Co-authored-by: Shizuo Fujita <fujita@clear-code.com>
1 parent c301faa commit cb90ad7
2 files changed
Lines changed: 23 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
347 | 347 | | |
348 | 348 | | |
349 | 349 | | |
350 | | - | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
351 | 354 | | |
352 | 355 | | |
353 | 356 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
364 | 364 | | |
365 | 365 | | |
366 | 366 | | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
367 | 386 | | |
368 | 387 | | |
369 | 388 | | |
| |||
0 commit comments