diff --git a/.changelog/11085.txt b/.changelog/11085.txt new file mode 100644 index 000000000..9e437265e --- /dev/null +++ b/.changelog/11085.txt @@ -0,0 +1,3 @@ +```release-note:bug +xds: ensure the active streams counters are 64 bit aligned on 32 bit systems +``` diff --git a/agent/xds/server.go b/agent/xds/server.go index a9b4c220b..1763448cd 100644 --- a/agent/xds/server.go +++ b/agent/xds/server.go @@ -152,11 +152,12 @@ type Server struct { DisableV2Protocol bool - activeStreams activeStreamCounters + activeStreams *activeStreamCounters } // activeStreamCounters simply encapsulates two counters accessed atomically to -// ensure alignment is correct. +// ensure alignment is correct. This further requires that activeStreamCounters +// be a pointer field. type activeStreamCounters struct { xDSv3 uint64 xDSv2 uint64 @@ -197,6 +198,7 @@ func NewServer( CheckFetcher: checkFetcher, CfgFetcher: cfgFetcher, AuthCheckFrequency: DefaultAuthCheckFrequency, + activeStreams: &activeStreamCounters{}, } }