This is an automated email from the ASF dual-hosted git repository. cmcfarlen pushed a commit to branch 10.2.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git
commit a1c640161ad627ac70505366c87827de68f9c915 Author: Masaori Koshiba <[email protected]> AuthorDate: Tue Jun 9 08:03:31 2026 +0900 Fix mismatched sINT/dINT log field types (#13223) Seven boolean/counter fields were declared dINT, but their marshal functions write a single int, and proxy_protocol_version (ppv) was declared dINT while it actually marshals a string. The dINT type wrongly excludes these fields from log filters and aggregates, and the ppv mislabeling misrepresents variable-length string bytes as two fixed ints to any type-driven consumer. Retype the single-int fields as sINT and ppv as STRING so the declared type matches what each marshal function emits. (cherry picked from commit e91ce44a5ea336526b021970f4776c63db954b72) --- include/proxy/logging/LogField.h | 8 ++++---- src/proxy/logging/Log.cc | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/include/proxy/logging/LogField.h b/include/proxy/logging/LogField.h index b2da447b61..43cad97111 100644 --- a/include/proxy/logging/LogField.h +++ b/include/proxy/logging/LogField.h @@ -92,10 +92,10 @@ public: using VarUnmarshalFunc = std::variant<decltype(nullptr), UnmarshalFunc, UnmarshalFuncWithSlice, UnmarshalFuncWithMap>; enum Type { - sINT = 0, - dINT, - STRING, - IP, ///< IP Address. + sINT = 0, ///< Single INT + dINT, ///< Double INT + STRING, ///< String + IP, ///< IP Address N_TYPES }; diff --git a/src/proxy/logging/Log.cc b/src/proxy/logging/Log.cc index f6aeed1599..eee4a8dafd 100644 --- a/src/proxy/logging/Log.cc +++ b/src/proxy/logging/Log.cc @@ -538,17 +538,17 @@ Log::init_fields() global_field_list.add(field, false); field_symbol_hash.emplace("cqcl", field); - field = new LogField("client_req_tcp_reused", "cqtr", LogField::dINT, &LogAccess::marshal_client_req_tcp_reused, + field = new LogField("client_req_tcp_reused", "cqtr", LogField::sINT, &LogAccess::marshal_client_req_tcp_reused, &LogAccess::unmarshal_int_to_str); global_field_list.add(field, false); field_symbol_hash.emplace("cqtr", field); - field = new LogField("client_req_is_ssl", "cqssl", LogField::dINT, &LogAccess::marshal_client_req_is_ssl, + field = new LogField("client_req_is_ssl", "cqssl", LogField::sINT, &LogAccess::marshal_client_req_is_ssl, &LogAccess::unmarshal_int_to_str); global_field_list.add(field, false); field_symbol_hash.emplace("cqssl", field); - field = new LogField("client_req_ssl_reused", "cqssr", LogField::dINT, &LogAccess::marshal_client_req_ssl_reused, + field = new LogField("client_req_ssl_reused", "cqssr", LogField::sINT, &LogAccess::marshal_client_req_ssl_reused, &LogAccess::unmarshal_int_to_str); global_field_list.add(field, false); field_symbol_hash.emplace("cqssr", field); @@ -817,7 +817,7 @@ Log::init_fields() global_field_list.add(field, false); field_symbol_hash.emplace("pqssl", field); - field = new LogField("proxy_req_ssl_reused", "pqssr", LogField::dINT, &LogAccess::marshal_proxy_req_ssl_reused, + field = new LogField("proxy_req_ssl_reused", "pqssr", LogField::sINT, &LogAccess::marshal_proxy_req_ssl_reused, &LogAccess::unmarshal_int_to_str); global_field_list.add(field, false); field_symbol_hash.emplace("pqssr", field); @@ -998,17 +998,17 @@ Log::init_fields() global_field_list.add(field, false); field_symbol_hash.emplace("ctid", field); - field = new LogField("cache_read_retry_attempts", "crra", LogField::dINT, &LogAccess::marshal_cache_read_retries, + field = new LogField("cache_read_retry_attempts", "crra", LogField::sINT, &LogAccess::marshal_cache_read_retries, &LogAccess::unmarshal_int_to_str); global_field_list.add(field, false); field_symbol_hash.emplace("crra", field); - field = new LogField("cache_write_retry_attempts", "cwra", LogField::dINT, &LogAccess::marshal_cache_write_retries, + field = new LogField("cache_write_retry_attempts", "cwra", LogField::sINT, &LogAccess::marshal_cache_write_retries, &LogAccess::unmarshal_int_to_str); global_field_list.add(field, false); field_symbol_hash.emplace("cwra", field); - field = new LogField("cache_collapsed_connection_success", "cccs", LogField::dINT, + field = new LogField("cache_collapsed_connection_success", "cccs", LogField::sINT, &LogAccess::marshal_cache_collapsed_connection_success, &LogAccess::unmarshal_int_to_str); global_field_list.add(field, false); field_symbol_hash.emplace("cccs", field); @@ -1023,7 +1023,7 @@ Log::init_fields() global_field_list.add(field, false); field_symbol_hash.emplace("ctpd", field); - field = new LogField("proxy_protocol_version", "ppv", LogField::dINT, &LogAccess::marshal_proxy_protocol_version, + field = new LogField("proxy_protocol_version", "ppv", LogField::STRING, &LogAccess::marshal_proxy_protocol_version, &LogAccess::unmarshal_str); global_field_list.add(field, false); field_symbol_hash.emplace("ppv", field);
