-
Notifications
You must be signed in to change notification settings - Fork 25.3k
Open
Labels
:Core/Infra/REST APIREST infrastructure and utilitiesREST infrastructure and utilities>bugTeam:Core/InfraMeta label for core/infra teamMeta label for core/infra team
Description
Elasticsearch Version
8.14
Installed Plugins
No response
Java Version
bundled
OS Version
Linux
Problem Description
A user has a huge amount of aliases for their indices (could be > 1000 aliases per index), defined like this:
"cf_index": {
"aliases": {
"cf_0001": {
"filter": {
"term": {
"cf": "0001"
}
}
},
"cf_0002": {
"filter": {
"term": {
"cf": 0002"
}
}
},
"cf_0003": {
"filter": {
"term": {
"cf": "003"
}
}
},
when GET _alias API is requested (through monitoring or user based? ), there is a lot CPU spent on processing Regex expressions:
100.4% [cpu=100.4%, other=0.0%] (502.2ms out of 500ms) cpu usage by thread 'elasticsearch[instance-0000000047][management][T#2]'
10/10 snapshots sharing following 16 elements
app/org.elasticsearch.server@8.14.1/org.elasticsearch.common.regex.Regex.simpleMatchWithNormalizedStrings(Regex.java:170)
app/org.elasticsearch.server@8.14.1/org.elasticsearch.common.regex.Regex.simpleMatch(Regex.java:164)
app/org.elasticsearch.server@8.14.1/org.elasticsearch.common.regex.Regex.simpleMatch(Regex.java:143)
app/org.elasticsearch.server@8.14.1/org.elasticsearch.cluster.metadata.Metadata.findAliasInfo(Metadata.java:896)
app/org.elasticsearch.server@8.14.1/org.elasticsearch.cluster.metadata.Metadata.findAliases(Metadata.java:823)
app/org.elasticsearch.server@8.14.1/org.elasticsearch.action.admin.indices.alias.get.TransportGetAliasesAction.localClusterStateOperation(TransportGetAliasesAction.java:98)
app/org.elasticsearch.server@8.14.1/org.elasticsearch.action.admin.indices.alias.get.TransportGetAliasesAction.localClusterStateOperation(TransportGetAliasesAction.java:47)
app/org.elasticsearch.server@8.14.1/org.elasticsearch.action.support.TransportLocalClusterStateAction.lambda$doExecute$0(TransportLocalClusterStateAction.java:60)
app/org.elasticsearch.server@8.14.1/org.elasticsearch.action.support.TransportLocalClusterStateAction$$Lambda/0x00007f1f2ce2bcc8.accept(Unknown Source)
app/org.elasticsearch.server@8.14.1/org.elasticsearch.action.ActionRunnable$4.doRun(ActionRunnable.java:100)
app/org.elasticsearch.server@8.14.1/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:984)
app/org.elasticsearch.server@8.14.1/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)
java.base@22.0.1/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
java.base@22.0.1/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
java.base@22.0.1/java.lang.Thread.runWith(Thread.java:1583)
java.base@22.0.1/java.lang.Thread.run(Thread.java:1570)
Steps to Reproduce
Steps (I have not reproduced myself):
- Create an index with > 1000 filter aliases
- Request GET _alias API or GET /_alias/prefix API
Logs (if relevant)
No response
Metadata
Metadata
Assignees
Labels
:Core/Infra/REST APIREST infrastructure and utilitiesREST infrastructure and utilities>bugTeam:Core/InfraMeta label for core/infra teamMeta label for core/infra team