[ https://issues.apache.org/jira/browse/SOLR-14413?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17261473#comment-17261473 ]
Chris M. Hostetter commented on SOLR-14413: ------------------------------------------- {quote}I don't believe we need to switch the handler name, because it should not affect other tests unless they pass the sleep parameter explicitly. {quote} My reason for suggesting that you change the name and refer to it explicitly in the test was so the handler name would intrinsicly be self documenting and the test would fail if anyone ever removed it. imagine someone comes along in N years and refactors this test or changes it's config in some way that results in effectively the same problem as we have on master: {{/select}} doesn't have the delay component anymore, ergo the test starts to _sometimes_ fail. If however you explicitly use a new name like {{/delayingHandleToTestTimeAllowed}} then it will be less likely that someone removes that declaration or modifies it (because it says right in the name why it's there) and if anyone _does_ inadvertently remove it (hypotheitcally: someone refactors the test to be cloud based and uses the {{_default}} config set w/o realising it has a custom config) then you will get a *HARD* failure that will draw their attention to the mistake) ---- Writing good tests isn't just about testing for the change you are making today, it's about protecting your tests assumptions against the changes that might be made tomorrow. > allow timeAllowed and cursorMark parameters > ------------------------------------------- > > Key: SOLR-14413 > URL: https://issues.apache.org/jira/browse/SOLR-14413 > Project: Solr > Issue Type: Improvement > Components: search > Reporter: John Gallagher > Assignee: Mike Drob > Priority: Minor > Fix For: 8.8, master (9.0) > > Attachments: SOLR-14413-bram.patch, SOLR-14413-jg-update1.patch, > SOLR-14413-jg-update2.patch, SOLR-14413-jg-update3.patch, SOLR-14413.patch, > SOLR-14413.testfix.patch, Screen Shot 2020-10-23 at 10.08.26 PM.png, Screen > Shot 2020-10-23 at 10.09.11 PM.png, image-2020-08-18-16-56-41-736.png, > image-2020-08-18-16-56-59-178.png, image-2020-08-21-14-18-36-229.png, > timeallowed_cursormarks_results.txt > > Time Spent: 2h > Remaining Estimate: 0h > > Ever since cursorMarks were introduced in SOLR-5463 in 2014, cursorMark and > timeAllowed parameters were not allowed in combination ("Can not search using > both cursorMark and timeAllowed") > , from [QueryComponent.java|#L359]]: > > {code:java} > > if (null != rb.getCursorMark() && 0 < timeAllowed) { > // fundamentally incompatible > throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Can not > search using both " + CursorMarkParams.CURSOR_MARK_PARAM + " and " + > CommonParams.TIME_ALLOWED); > } {code} > While theoretically impure to use them in combination, it is often desirable > to support cursormarks-style deep paging and attempt to protect Solr nodes > from runaway queries using timeAllowed, in the hopes that most of the time, > the query completes in the allotted time, and there is no conflict. > > However if the query takes too long, it may be preferable to end the query > and protect the Solr node and provide the user with a somewhat inaccurate > sorted list. As noted in SOLR-6930, SOLR-5986 and others, timeAllowed is > frequently used to prevent runaway load. In fact, cursorMark and > shards.tolerant are allowed in combination, so any argument in favor of > purity would be a bit muddied in my opinion. > > This was discussed once in the mailing list that I can find: > [https://mail-archives.apache.org/mod_mbox/lucene-solr-user/201506.mbox/%3c5591740b.4080...@elyograg.org%3E] > It did not look like there was strong support for preventing the combination. > > I have tested cursorMark and timeAllowed combination together, and even when > partial results are returned because the timeAllowed is exceeded, the > cursorMark response value is still valid and reasonable. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org