Busily assert in testCreateSearchContextFailure (#64243)

If a background refresh is running, then the refCount assertion will 
fail as Engine#refreshIsNeeded can increase the refCount by 2.

Closes #64052
This commit is contained in:
Nhat Nguyen 2020-10-28 08:53:41 -04:00
parent 9546d0d532
commit 207e4b00f9
1 changed files with 4 additions and 2 deletions

View File

@ -880,7 +880,7 @@ public class SearchServiceTests extends ESSingleNodeTestCase {
* While we have no NPE in DefaultContext constructor anymore, we still want to guard against it (or other failures) in the future to
* avoid leaking searchers.
*/
public void testCreateSearchContextFailure() throws IOException {
public void testCreateSearchContextFailure() throws Exception {
final String index = randomAlphaOfLengthBetween(5, 10).toLowerCase(Locale.ROOT);
final IndexService indexService = createIndex(index);
final SearchService service = getInstanceFromNode(SearchService.class);
@ -897,7 +897,9 @@ public class SearchServiceTests extends ESSingleNodeTestCase {
() -> service.createContext(reader, request, null, randomBoolean()));
assertEquals("expected", e.getMessage());
}
assertEquals("should have 2 store refs (IndexService + InternalEngine)", 2, indexService.getShard(0).store().refCount());
// Needs to busily assert because Engine#refreshNeeded can increase the refCount.
assertBusy(() ->
assertEquals("should have 2 store refs (IndexService + InternalEngine)", 2, indexService.getShard(0).store().refCount()));
}
public void testMatchNoDocsEmptyResponse() throws InterruptedException {