Hi,
Wanted to raise a minor regression in Solr 9.x, the Http2SolrClient loses
MDC context information when running an async request.
The issue is the 'Request#send' [0] call is actually async itself and by
the time the response listener kicks in to push the response processing to
the executor the MDC context is already lost, so the executor will no
longer have access to the original MDC in order to push it forward onto the
thread that will process the response.

This is very difficult to capture on a running system, there are no logs
during this window. I only saw it because I was specifically looking at
thread names for a different reason.
This is how it is reflected in the thread names:
 - how it should be (Solr 8 style):
httpShardExecutor-5-thread-19-processing-gettingstarted_shard2_replica_n2
core_node5 localhost:8983_solr gettingstarted shard2 localhost-4
 - how it is in Solr 9 (due to no MDC context) httpShardExecutor-5-thread-10

I can't tell if there is anything breaking due to this.

[0]
https://github.com/apache/solr/blob/7eee7a8ad3c43db0dc26c663dd16764d1fb3dbf4/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java#L458


best,
alex

Reply via email to