Skip to content

Commit 0fee691

Browse files
Catch empty AZ env vars (#6109)
--------- Co-authored-by: Adrien Guillo <adrien.guillo@datadoghq.com>
1 parent 81eb7e1 commit 0fee691

1 file changed

Lines changed: 21 additions & 2 deletions

File tree

quickwit/quickwit-config/src/config_value.rs

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ use std::{any, fmt};
1818

1919
use anyhow::{self, Context};
2020
use serde::{Deserialize, Deserializer};
21+
use tracing::log::warn;
2122

2223
use crate::qw_env_vars::{QW_ENV_VARS, QW_NONE};
2324

@@ -68,7 +69,17 @@ where
6869
// QW env vars take precedence over the config file values.
6970
if E > QW_NONE
7071
&& let Some(env_var_key) = QW_ENV_VARS.get(&E)
71-
&& let Some(env_var_value) = env_vars.get(*env_var_key)
72+
&& let Some(env_var_value) = env_vars.get(*env_var_key).filter(|val| {
73+
if val.is_empty() {
74+
warn!(
75+
"environment variable `{}` is set but value is empty",
76+
*env_var_key
77+
);
78+
false
79+
} else {
80+
true
81+
}
82+
})
7283
{
7384
let value = env_var_value.parse::<T>().map_err(|error| {
7485
anyhow::anyhow!(
@@ -118,7 +129,7 @@ where T: Deserialize<'de>
118129
mod tests {
119130
use super::*;
120131
use crate::qw_env_vars::{
121-
QW_CLUSTER_ID, QW_GOSSIP_LISTEN_PORT, QW_NODE_ID, QW_REST_LISTEN_PORT,
132+
QW_AVAILABILITY_ZONE, QW_CLUSTER_ID, QW_GOSSIP_LISTEN_PORT, QW_NODE_ID, QW_REST_LISTEN_PORT,
122133
};
123134

124135
#[test]
@@ -191,6 +202,14 @@ mod tests {
191202
rest_listen_port.resolve(&env_vars).unwrap_err();
192203
}
193204

205+
#[test]
206+
fn test_config_value_resolve_optional_empty_string() {
207+
let mut env_vars = HashMap::new();
208+
env_vars.insert("QW_AVAILABILITY_ZONE".to_string(), "".to_string());
209+
let az = ConfigValue::<usize, QW_AVAILABILITY_ZONE>::none();
210+
assert!(az.resolve_optional(&env_vars).unwrap().is_none());
211+
}
212+
194213
#[test]
195214
fn test_config_value_deserialize() {
196215
fn default_cluster_id() -> ConfigValue<String, QW_CLUSTER_ID> {

0 commit comments

Comments
 (0)