Skip to content

Commit d7a7825

Browse files
Remove assertExecuteOnStartThread from AbstractSearchAsyncAction (elastic#121922)
This is a really strange assertion. I get that it tries to make sure we skip unavailable without forking but this makes extending the AbstractSearchAsyncAction cleanly for batched execution needlessly hard and some of the assertion is dead code already because can-match isn't going through this codepath anymore. -> lets remove it, the code is simple enough now to follow that there's no forking here IMO
1 parent 8e8156c commit d7a7825

File tree

1 file changed

+0
-27
lines changed

1 file changed

+0
-27
lines changed

server/src/main/java/org/elasticsearch/action/search/AbstractSearchAsyncAction.java

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -256,32 +256,6 @@ void skipShard(SearchShardIterator iterator) {
256256
successfulShardExecution(iterator);
257257
}
258258

259-
private static boolean assertExecuteOnStartThread() {
260-
// Ensure that the current code has the following stacktrace:
261-
// AbstractSearchAsyncAction#start -> AbstractSearchAsyncAction#executePhase -> AbstractSearchAsyncAction#performPhaseOnShard
262-
final StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
263-
assert stackTraceElements.length >= 6 : stackTraceElements;
264-
int index = 0;
265-
assert stackTraceElements[index++].getMethodName().equals("getStackTrace");
266-
assert stackTraceElements[index++].getMethodName().equals("assertExecuteOnStartThread");
267-
assert stackTraceElements[index++].getMethodName().equals("failOnUnavailable");
268-
if (stackTraceElements[index].getMethodName().equals("performPhaseOnShard")) {
269-
assert stackTraceElements[index].getClassName().endsWith("CanMatchPreFilterSearchPhase");
270-
index++;
271-
}
272-
assert stackTraceElements[index].getClassName().endsWith("AbstractSearchAsyncAction");
273-
assert stackTraceElements[index++].getMethodName().equals("run");
274-
275-
assert stackTraceElements[index].getClassName().endsWith("AbstractSearchAsyncAction");
276-
assert stackTraceElements[index++].getMethodName().equals("executePhase");
277-
278-
assert stackTraceElements[index].getClassName().endsWith("AbstractSearchAsyncAction");
279-
assert stackTraceElements[index++].getMethodName().equals("start");
280-
281-
assert stackTraceElements[index].getClassName().endsWith("AbstractSearchAsyncAction") == false;
282-
return true;
283-
}
284-
285259
private void performPhaseOnShard(final int shardIndex, final SearchShardIterator shardIt, final SearchShardTarget shard) {
286260
if (throttleConcurrentRequests) {
287261
var pendingExecutions = pendingExecutionsPerNode.computeIfAbsent(
@@ -323,7 +297,6 @@ public void onFailure(Exception e) {
323297
}
324298

325299
private void failOnUnavailable(int shardIndex, SearchShardIterator shardIt) {
326-
assert assertExecuteOnStartThread();
327300
SearchShardTarget unassignedShard = new SearchShardTarget(null, shardIt.shardId(), shardIt.getClusterAlias());
328301
onShardFailure(shardIndex, unassignedShard, shardIt, new NoShardAvailableActionException(shardIt.shardId()));
329302
}

0 commit comments

Comments
 (0)