-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
In YAML syntax, a single int value for an array option causes a config error.
Found in the following fix.
Note: This PR doesn't address the issue where setting an Int directly to an Array option causes ConfigError:
retryable_response_codes: 503(TheCcase in #5126 (comment))
It could be a different issue.
The current behavior is inconsistent and somewhat unnatural.
Unnatural current behavior:
- An error occurs only when a single int value is specified for an array option.
- It can be avoided by setting it as a String.
- There’s no such issue with options that are initially String arrays.
- There’s no such issue with the normal config syntax.
To Reproduce
NG(Causes config error file="..." error_class=Fluent::ConfigError error="array required but got 503"):
config:
- match:
$type: http
$tag: test
endpoint: http://localhost:9880/tag
retryable_response_codes: 503OK as YAML syntax:
config:
- match:
$type: http
$tag: test
endpoint: http://localhost:9880/tag
retryable_response_codes: "503"config:
- match:
$type: http
$tag: test
endpoint: http://localhost:9880/tag
retryable_response_codes: 503,OK as normal syntax:
<match test>
@type http
endpoint "http://localhost:9880/tag"
retryable_response_codes 503
</match>OK as YAML syntax since v1.19.1 (after #5126):
config:
- match:
$type: http
$tag: test
endpoint: http://localhost:9880/tag
retryable_response_codes: [503]config:
- match:
$type: http
$tag: test
endpoint: http://localhost:9880/tag
retryable_response_codes:
- 503Please also refer to the C case in #5126 (comment).
Expected behavior
Fluentd can parse a single int value for an array option, such as the following:
config:
- match:
$type: http
$tag: test
endpoint: http://localhost:9880/tag
retryable_response_codes: 503Your Environment
- Fluentd version: v1.19.1
- Package version: None
- Operating system: Ubuntu 22.04.5 LTS
- Kernel version: 6.8.0-85-genericYour Configuration
See `To reproduce`.Your Error Log
2025-11-11 14:27:25 +0900 [info]: init supervisor logger path=nil rotate_age=nil rotate_size=nil
2025-11-11 14:27:25 +0900 [info]: parsing config file is succeeded path="/test/fluentd/config/yaml/tmp.yaml"
2025-11-11 14:27:25 +0900 [info]: inaccessible include directory was specified path="/etc/fluent/conf.d"
2025-11-11 14:27:25 +0900 [info]: gem 'fluentd' version '1.19.1'
2025-11-11 14:27:25 +0900 [error]: config error in:
<match test>
@type http
endpoint "http://localhost:9880/tag"
retryable_response_codes 503
</match>
2025-11-11 14:27:25 +0900 [error]: config error file="/test/fluentd/config/yaml/tmp.yaml" error_class=Fluent::ConfigError error="array required but got 503"Additional context
No response
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Type
Projects
Status
No status