Keep scroll contexts on transient search queue rejection - #155697
Conversation
|
Pinging @elastic/es-search-foundations (Team:Search Foundations) |
|
Hi @reugn, I've created a changelog YAML for you. |
🔍 Preview links for changed docs⏳ Building and deploying preview... View progress This comment will be updated with preview links when the build is complete. |
ℹ️ Important: Docs version tagging👋 Thanks for updating the docs! Just a friendly reminder that our docs are now cumulative. This means all 9.x versions are documented on the same page and published off of the main branch, instead of creating separate pages for each minor version. We use applies_to tags to mark version-specific features and changes. Expand for a quick overviewWhen to use applies_to tags:✅ At the page level to indicate which products/deployments the content applies to (mandatory) What NOT to do:❌ Don't remove or replace information that applies to an older version 🤔 Need help?
|
When a scroll continuation is rejected by a full search thread pool,
SearchService.processFailurefreed the scroll reader context. The rejection happens at submission before scroll state advances, so the client still has a usablescroll_idbut retries fail because the context is gone.The fix keeps the context on transient
EsRejectedExecutionException(not executor shutdown) forInternalScrollSearchRequestquery and fetch continuations only. If the initial scroll search is rejected before the client gets ascroll_id(including the DFS query phase), the context is still freed so it cannot leak until keep-alive expires. The legacy query-and-fetch scroll fetch path also retains on rejection; the new IT covers the usual scroll query path only.Fixes #90912