Describe the bug
When we stop td-agent service, out_forward sometimes throws
an unhandled exception.
The exact exception varies, but it always occures in ack_handler.rb.
Here is a few examples:
# case 1
unexpected error while receiving ack error_class=IOError
error="closed stream"
# case 2
unexpected error while receiving ack message error_class=IOError
error="stream closed in another thread"
# case 3
unexpected error while receiving ack error_class=NoMethodError
error="undefined method `disable!' for nil:NilClass"
It suggests that out_forward's shutdown sequence is racy i.e.
multiple threads can process the same ack message concurrently.
To Reproduce
- Run
out_foward with require_ack_response
- Stop Fluentd during actively transmitting records.
Expected behavior
No error.
Your Environment
- Fluentd version: v1.15.2
- TD Agent version: -
- Operating system: -
- Kernel version: -
Your Configuration
<match **>
@type forward
require_ack_response true
...
</match>
Your Error Log
Additional context
No response
Describe the bug
When we stop
td-agentservice,out_forwardsometimes throwsan unhandled exception.
The exact exception varies, but it always occures in ack_handler.rb.
Here is a few examples:
It suggests that
out_forward's shutdown sequence is racy i.e.multiple threads can process the same ack message concurrently.
To Reproduce
out_fowardwithrequire_ack_responseExpected behavior
No error.
Your Environment
Your Configuration
Your Error Log
Additional context
No response