aws-fluent-plugin-kinesis: Failed to flush the buffer with error_class=NoMethodError error="undefined method `compact'
The aws-fluentd-plugin-kinesis having following errors while running with type kinesis_streams_aggregated and fluentd version 0.14.21.
2017-10-11 17:07:45 +0000 [warn]: #0 failed to flush the buffer. retry_time=0 next_retry_seconds=2017-10-11 17:07:45 +0000 chunk=“55b4874e145808169ea53006b65fdb54” error_class=NoMethodError error=“undefined method `compact’ for 92:Fixnum”
2017-10-11 17:09:15 +0000 [warn]: #0 failed to flush the buffer. retry_time=8 next_retry_seconds=2017-10-11 17:09:21 +0000 chunk=“55b487651c7eeff3d29c0c2caa6bc7c2” error_class=NoMethodError error=“undefined method `compact’ for 50:Fixnum”
Additionally I am using fluent-plugin-s3 along with fluent-plugin-kinesis.
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Comments: 18 (8 by maintainers)
Commits related to this issue
- Add debug test case for failure to flush the buffer - #133 — committed to simukappu/aws-fluent-plugin-kinesis by simukappu 6 years ago
- Add debug test case for failure to flush the buffer - #133 — committed to simukappu/aws-fluent-plugin-kinesis by simukappu 6 years ago
- Add test with td-agent 3.1.0 and 3.1.1 #133 #157 — committed to awslabs/aws-fluent-plugin-kinesis by simukappu 6 years ago
- Add test with td-agent 3.1.1 and multiple aws-sdk versions #133 #157 — committed to awslabs/aws-fluent-plugin-kinesis by simukappu 6 years ago
test_record.txt
test_fluentd_conf.txt
Hi @riywo
Thanks for looking into this. I have further observations and details as below.
The error ‘failed to flush the buffer’ is followed by ‘chunk bytes limit exceeds for an emitted event stream’.
The issue seems related to chunk_limit_size and total size of messages to be added in chunk.
For example if record size is 333 bytes and chunk_limit_size is 1k, then error is easily reproducible when input source has 3 or more records to be processed. (It works for 1 or 2 records in this case.) –chunk bytes limit exceeds for an emitted event stream: 1133bytes
Eventually it results into error - failed to flush the buffer, and hit limit for retries. dropping all chunks in the buffer queue. retry_times=10 records=10 error_class=NoMethodError error=“undefined method `compact’ for 51:Fixnum”
This is reproducible with both kinesis_streams_aggregated and kinesis_streams type
Attached fluentd config and message used for testing. Let me know if anything wrong with config.