Skip to content

Commit 2c6dd6c

Browse files
Remove assertExecuteOnStartThread from AbstractSearchAsyncAction (#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 efb890b commit 2c6dd6c

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
@@ -246,32 +246,6 @@ void skipShard(SearchShardIterator iterator) {
246246
successfulShardExecution();
247247
}
248248

249-
private static boolean assertExecuteOnStartThread() {
250-
// Ensure that the current code has the following stacktrace:
251-
// AbstractSearchAsyncAction#start -> AbstractSearchAsyncAction#executePhase -> AbstractSearchAsyncAction#performPhaseOnShard
252-
final StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
253-
assert stackTraceElements.length >= 6 : stackTraceElements;
254-
int index = 0;
255-
assert stackTraceElements[index++].getMethodName().equals("getStackTrace");
256-
assert stackTraceElements[index++].getMethodName().equals("assertExecuteOnStartThread");
257-
assert stackTraceElements[index++].getMethodName().equals("failOnUnavailable");
258-
if (stackTraceElements[index].getMethodName().equals("performPhaseOnShard")) {
259-
assert stackTraceElements[index].getClassName().endsWith("CanMatchPreFilterSearchPhase");
260-
index++;
261-
}
262-
assert stackTraceElements[index].getClassName().endsWith("AbstractSearchAsyncAction");
263-
assert stackTraceElements[index++].getMethodName().equals("run");
264-
265-
assert stackTraceElements[index].getClassName().endsWith("AbstractSearchAsyncAction");
266-
assert stackTraceElements[index++].getMethodName().equals("executePhase");
267-
268-
assert stackTraceElements[index].getClassName().endsWith("AbstractSearchAsyncAction");
269-
assert stackTraceElements[index++].getMethodName().equals("start");
270-
271-
assert stackTraceElements[index].getClassName().endsWith("AbstractSearchAsyncAction") == false;
272-
return true;
273-
}
274-
275249
private void performPhaseOnShard(final int shardIndex, final SearchShardIterator shardIt, final SearchShardTarget shard) {
276250
if (throttleConcurrentRequests) {
277251
var pendingExecutions = pendingExecutionsPerNode.computeIfAbsent(
@@ -313,7 +287,6 @@ public void onFailure(Exception e) {
313287
}
314288

315289
private void failOnUnavailable(int shardIndex, SearchShardIterator shardIt) {
316-
assert assertExecuteOnStartThread();
317290
SearchShardTarget unassignedShard = new SearchShardTarget(null, shardIt.shardId(), shardIt.getClusterAlias());
318291
onShardFailure(shardIndex, unassignedShard, shardIt, new NoShardAvailableActionException(shardIt.shardId()));
319292
}

0 commit comments

Comments
 (0)