Dale Lane created FLINK-40166:
---------------------------------
Summary: SQL query parsing fails if current catalog is unreachable
Key: FLINK-40166
URL: https://issues.apache.org/jira/browse/FLINK-40166
Project: Flink
Issue Type: Bug
Components: Table SQL / Planner
Reporter: Dale Lane
Attachments: flink-catalog-repro.zip
To recreate:
* consider two catalogs: "workingcatalog" which is reachable, and
"brokencatalog" which is not
* set the current catalog to “brokencatalog”
* parse a fully-qualified SQL statement which accesses a table in
workingcatalog, such as “SELECT * FROM
workingcatalog.workingdatabase.workingtable;”
This will fail with a CatalogException
The stack trace shows that this is because Flink is attempting to call
databaseExists for the database “workingdatabase” but in the current catalog
(“brokencatalog”).
{{Caused by: org.apache.flink.table.catalog.exceptions.CatalogException: Failed
to connect to Kafka cluster for database 'workingdatabase' of catalog
'brokencatalog'. }}
{{ at
org.apache.flink.table.catalog.CatalogManager.lambda$permanentDatabaseExists$14(CatalogManager.java:1064)}}
{{ at java.base/java.util.Optional.map(Optional.java:260)}}
{{ at
org.apache.flink.table.catalog.CatalogManager.permanentDatabaseExists(CatalogManager.java:1064)}}
{{ at
org.apache.flink.table.catalog.CatalogManager.schemaExists(CatalogManager.java:1052)}}
{{ at
org.apache.flink.table.planner.catalog.CatalogCalciteSchema.getSubSchema(CatalogCalciteSchema.java:61)}}
{{ at
org.apache.calcite.jdbc.SimpleCalciteSchema.getImplicitSubSchema(SimpleCalciteSchema.java:146)}}
{{ at
org.apache.calcite.jdbc.CalciteSchema.getSubSchema(CalciteSchema.java:260)}}
{{ at
org.apache.calcite.sql.validate.EmptyScope.resolve_(EmptyScope.java:135)}}
{{ at
org.apache.calcite.sql.validate.EmptyScope.resolveTable(EmptyScope.java:101)}}
{{ at
org.apache.calcite.sql.validate.DelegatingScope.resolveTable(DelegatingScope.java:230)}}
{{ at
org.apache.calcite.sql.validate.IdentifierNamespace.resolveImpl(IdentifierNamespace.java:116)}}
{{ at
org.apache.calcite.sql.validate.IdentifierNamespace.validateImpl(IdentifierNamespace.java:189)}}
{{ at
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:88)}}
{{ at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1133)}}
{{ at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1108)}}
{{ at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3486)}}
{{ at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3468)}}
{{ at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3823)}}
{{ at
org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:61)}}
{{ at
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:88)}}
{{ at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1133)}}
{{ at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1108)}}
{{ at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:282)}}
{{ at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:1075)}}
{{ at
org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:824)}}
{{ at
org.apache.flink.table.planner.calcite.FlinkPlannerImpl.org$apache$flink$table$planner$calcite$FlinkPlannerImpl$$validate(FlinkPlannerImpl.scala:201)}}
{{ ... 5 more}}
A standalone recreate is attached
--
This message was sent by Atlassian Jira
(v8.20.10#820010)