@@ -181,15 +181,29 @@ void execute() {
181181 logger .trace ("starting async refresh" );
182182
183183 try (var ignoredRefs = fetchRefs ) {
184+
185+ assert assertEmptySystemContext ();
184186 try (var ignored = threadPool .getThreadContext ().clearTraceContext ()) {
185187 fetchNodeStats ();
188+ assert assertEmptySystemContext ();
186189 }
187190 try (var ignored = threadPool .getThreadContext ().clearTraceContext ()) {
188191 fetchIndicesStats ();
192+ assert assertEmptySystemContext ();
189193 }
190194 }
191195 }
192196
197+ private boolean assertEmptySystemContext () {
198+ final var threadContext = threadPool .getThreadContext ();
199+ final var headers = threadContext .getHeaders ();
200+ assert headers .isEmpty () : headers ;
201+ final var transientHeaders = threadContext .getTransientHeaders ();
202+ assert transientHeaders .isEmpty () : transientHeaders ;
203+ assert threadContext .isSystemContext ();
204+ return true ;
205+ }
206+
193207 private void fetchIndicesStats () {
194208 final IndicesStatsRequest indicesStatsRequest = new IndicesStatsRequest ();
195209 indicesStatsRequest .clear ();
@@ -205,6 +219,7 @@ private void fetchIndicesStats() {
205219 ActionListener .releaseAfter (new ActionListener <>() {
206220 @ Override
207221 public void onResponse (IndicesStatsResponse indicesStatsResponse ) {
222+ assert assertEmptySystemContext ();
208223 logger .trace ("received indices stats response" );
209224
210225 if (indicesStatsResponse .getShardFailures ().length > 0 ) {
@@ -289,6 +304,7 @@ private void fetchNodeStats() {
289304 client .admin ().cluster ().nodesStats (nodesStatsRequest , ActionListener .releaseAfter (new ActionListener <>() {
290305 @ Override
291306 public void onResponse (NodesStatsResponse nodesStatsResponse ) {
307+ assert assertEmptySystemContext ();
292308 logger .trace ("received node stats response" );
293309
294310 for (final FailedNodeException failure : nodesStatsResponse .failures ()) {
@@ -321,6 +337,7 @@ public void onFailure(Exception e) {
321337
322338 private void callListeners () {
323339 try {
340+ assert assertEmptySystemContext ();
324341 logger .trace ("stats all received, computing cluster info and notifying listeners" );
325342 final ClusterInfo clusterInfo = getClusterInfo ();
326343 boolean anyListeners = false ;
@@ -339,6 +356,7 @@ private void callListeners() {
339356 listener .onResponse (clusterInfo );
340357 }
341358 } finally {
359+ assert assertEmptySystemContext ();
342360 onRefreshComplete (this );
343361 }
344362 }
0 commit comments