Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
New
Description
While looking into options for LUCENE-10151, I noticed that ExitableDirectoryReader doesn't actually do any timeout checking once you start iterating postings/impacts. It does create a ExitableTermsEnum wrapper when loading a TermsEnum, but that wrapper doesn't do anything to wrap postings or impacts. So timeouts will be enforced when moving to the "next" term, but not when iterating the postings/impacts associated with a term.
I think we ought to wrap the postings/impacts as well with some form of timeout checking so timeouts can be enforced on long-running queries. I'm not sure why this wasn't done originally (back in 2014), but it was questioned back in 2020 on the original Jira SOLR-5986. Does anyone know of a good reason why we shouldn't enforce timeouts in this way?
Related, we may also want to wrap things like seekExact and seekCeil given that only next is being wrapped currently.