This is an automated email from the ASF dual-hosted git repository.
masaori335 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push:
new e91ce44a5e Fix mismatched sINT/dINT log field types (#13223)
e91ce44a5e is described below
commit e91ce44a5ea336526b021970f4776c63db954b72
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.
---
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 d69f675034..27a1fb6b20 100644
--- a/include/proxy/logging/LogField.h
+++ b/include/proxy/logging/LogField.h
@@ -96,10 +96,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 e7fba83a04..646b9db07b 100644
--- a/src/proxy/logging/Log.cc
+++ b/src/proxy/logging/Log.cc
@@ -544,17 +544,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);
@@ -842,7 +842,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);
@@ -1023,17 +1023,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);
@@ -1048,7 +1048,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);