trinodb / trino-gateway

https://trinodb.github.io/trino-gateway/
Apache License 2.0
147 stars 65 forks source link

Fix IndexOutOfBoundsException from TrinoQueryProperties #478

Closed JeongDaeKim closed 5 days ago

JeongDaeKim commented 5 days ago

IndexOutOfBoundsException occurs for some statements without catalogs defined explicitly, such as create schema {schema_name}, when request analyzer enabled.

2024-09-23T16:00:00.456+0900    ERROR   http-worker-101 io.trino.gateway.ha.router.RuleReloadingRoutingGroupSelector    Error opening rules configuration file, using routing group header as default.
java.lang.IndexOutOfBoundsException: index (1) must be less than size (1)
        at com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:1374)
        at com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:1356)
        at com.google.common.collect.SingletonImmutableList.get(SingletonImmutableList.java:46)
        at io.trino.gateway.ha.router.TrinoQueryProperties.setCatalogAndSchemaNameFromSchemaQualifiedName(TrinoQueryProperties.java:331)
        at io.trino.gateway.ha.router.TrinoQueryProperties.getNames(TrinoQueryProperties.java:297)
        at io.trino.gateway.ha.router.TrinoQueryProperties.processRequestBody(TrinoQueryProperties.java:163)
        at io.trino.gateway.ha.router.TrinoQueryProperties.<init>(TrinoQueryProperties.java:103)
        at io.trino.gateway.ha.router.RuleReloadingRoutingGroupSelector.findRoutingGroup(RuleReloadingRoutingGroupSelector.java:98)
        at io.trino.gateway.ha.handler.RoutingTargetHandler.getBackendFromRoutingGroup(RoutingTargetHandler.java:84)
        at io.trino.gateway.ha.handler.RoutingTargetHandler.lambda$getRoutingDestination$0(RoutingTargetHandler.java:64)
        at java.base/java.util.Optional.orElseGet(Optional.java:364)
        at io.trino.gateway.ha.handler.RoutingTargetHandler.getRoutingDestination(RoutingTargetHandler.java:64)
        at io.trino.gateway.proxyserver.RouteToBackendResource.postHandler(RouteToBackendResource.java:67)