Skip to content

Commit 5b1a757

Browse files
committed
Fix mismatched sINT/dINT log field types
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.
1 parent e78ed66 commit 5b1a757

2 files changed

Lines changed: 12 additions & 12 deletions

File tree

include/proxy/logging/LogField.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,10 @@ class LogField
9696
using VarUnmarshalFunc = std::variant<decltype(nullptr), UnmarshalFunc, UnmarshalFuncWithSlice, UnmarshalFuncWithMap>;
9797

9898
enum Type {
99-
sINT = 0,
100-
dINT,
101-
STRING,
102-
IP, ///< IP Address.
99+
sINT = 0, ///< Single INT
100+
dINT, ///< Double INT
101+
STRING, ///< String
102+
IP, ///< IP Address
103103
N_TYPES
104104
};
105105

src/proxy/logging/Log.cc

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -538,17 +538,17 @@ Log::init_fields()
538538
global_field_list.add(field, false);
539539
field_symbol_hash.emplace("cqcl", field);
540540

541-
field = new LogField("client_req_tcp_reused", "cqtr", LogField::dINT, &LogAccess::marshal_client_req_tcp_reused,
541+
field = new LogField("client_req_tcp_reused", "cqtr", LogField::sINT, &LogAccess::marshal_client_req_tcp_reused,
542542
&LogAccess::unmarshal_int_to_str);
543543
global_field_list.add(field, false);
544544
field_symbol_hash.emplace("cqtr", field);
545545

546-
field = new LogField("client_req_is_ssl", "cqssl", LogField::dINT, &LogAccess::marshal_client_req_is_ssl,
546+
field = new LogField("client_req_is_ssl", "cqssl", LogField::sINT, &LogAccess::marshal_client_req_is_ssl,
547547
&LogAccess::unmarshal_int_to_str);
548548
global_field_list.add(field, false);
549549
field_symbol_hash.emplace("cqssl", field);
550550

551-
field = new LogField("client_req_ssl_reused", "cqssr", LogField::dINT, &LogAccess::marshal_client_req_ssl_reused,
551+
field = new LogField("client_req_ssl_reused", "cqssr", LogField::sINT, &LogAccess::marshal_client_req_ssl_reused,
552552
&LogAccess::unmarshal_int_to_str);
553553
global_field_list.add(field, false);
554554
field_symbol_hash.emplace("cqssr", field);
@@ -812,7 +812,7 @@ Log::init_fields()
812812
global_field_list.add(field, false);
813813
field_symbol_hash.emplace("pqssl", field);
814814

815-
field = new LogField("proxy_req_ssl_reused", "pqssr", LogField::dINT, &LogAccess::marshal_proxy_req_ssl_reused,
815+
field = new LogField("proxy_req_ssl_reused", "pqssr", LogField::sINT, &LogAccess::marshal_proxy_req_ssl_reused,
816816
&LogAccess::unmarshal_int_to_str);
817817
global_field_list.add(field, false);
818818
field_symbol_hash.emplace("pqssr", field);
@@ -993,17 +993,17 @@ Log::init_fields()
993993
global_field_list.add(field, false);
994994
field_symbol_hash.emplace("ctid", field);
995995

996-
field = new LogField("cache_read_retry_attempts", "crra", LogField::dINT, &LogAccess::marshal_cache_read_retries,
996+
field = new LogField("cache_read_retry_attempts", "crra", LogField::sINT, &LogAccess::marshal_cache_read_retries,
997997
&LogAccess::unmarshal_int_to_str);
998998
global_field_list.add(field, false);
999999
field_symbol_hash.emplace("crra", field);
10001000

1001-
field = new LogField("cache_write_retry_attempts", "cwra", LogField::dINT, &LogAccess::marshal_cache_write_retries,
1001+
field = new LogField("cache_write_retry_attempts", "cwra", LogField::sINT, &LogAccess::marshal_cache_write_retries,
10021002
&LogAccess::unmarshal_int_to_str);
10031003
global_field_list.add(field, false);
10041004
field_symbol_hash.emplace("cwra", field);
10051005

1006-
field = new LogField("cache_collapsed_connection_success", "cccs", LogField::dINT,
1006+
field = new LogField("cache_collapsed_connection_success", "cccs", LogField::sINT,
10071007
&LogAccess::marshal_cache_collapsed_connection_success, &LogAccess::unmarshal_int_to_str);
10081008
global_field_list.add(field, false);
10091009
field_symbol_hash.emplace("cccs", field);
@@ -1018,7 +1018,7 @@ Log::init_fields()
10181018
global_field_list.add(field, false);
10191019
field_symbol_hash.emplace("ctpd", field);
10201020

1021-
field = new LogField("proxy_protocol_version", "ppv", LogField::dINT, &LogAccess::marshal_proxy_protocol_version,
1021+
field = new LogField("proxy_protocol_version", "ppv", LogField::STRING, &LogAccess::marshal_proxy_protocol_version,
10221022
&LogAccess::unmarshal_str);
10231023
global_field_list.add(field, false);
10241024
field_symbol_hash.emplace("ppv", field);

0 commit comments

Comments
 (0)