You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by cm...@apache.org on 2026/06/16 02:17:30 UTC
(trafficserver) 10/34: Fix mismatched sINT/dINT log field types (#13223)
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 <ma...@apache.org>
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);