Skip to content

Commit 70b4cee

Browse files
Remove assertExecuteOnStartThread from AbstractSearchAsyncAction (#121922) (#121998)
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 Co-authored-by: Dimitris Rempapis <[email protected]>
1 parent 2bd6dc1 commit 70b4cee

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)