[ https://issues.apache.org/jira/browse/FLINK-36242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
dalongliu resolved FLINK-36242. ------------------------------- Assignee: Feng Jin Resolution: Fixed > Fix unstable test in MaterializedTableITCase > -------------------------------------------- > > Key: FLINK-36242 > URL: https://issues.apache.org/jira/browse/FLINK-36242 > Project: Flink > Issue Type: Bug > Components: Table SQL / Gateway > Reporter: Feng Jin > Assignee: Feng Jin > Priority: Major > Labels: pull-request-available > > h3. Error message: > {code:java} > Aug 21 09:32:20 09:32:20.322 [ERROR] Tests run: 18, Failures: 0, Errors: 1, > Skipped: 0, Time elapsed: 69.61 s <<< FAILURE! – in > org.apache.flink.table.gateway.service.MaterializedTableStatementITCase > Aug 21 09:32:20 09:32:20.322 [ERROR] > org.apache.flink.table.gateway.service.MaterializedTableStatementITCase.testDropMaterializedTableWithDeletedRefreshWorkflowInFullMode > – Time elapsed: 0.415 s <<< ERROR! > Aug 21 09:32:20 org.apache.flink.table.gateway.api.utils.SqlGatewayException: > Failed to getTable. > Aug 21 09:32:20 at > org.apache.flink.table.gateway.service.SqlGatewayServiceImpl.getTable(SqlGatewayServiceImpl.java:300) > Aug 21 09:32:20 at > org.apache.flink.table.gateway.AbstractMaterializedTableStatementITCase.after(AbstractMaterializedTableStatementITCase.java:196) > Aug 21 09:32:20 at java.lang.reflect.Method.invoke(Method.java:498) > Aug 21 09:32:20 at > java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189) > Aug 21 09:32:20 at > java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) > Aug 21 09:32:20 at > java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) > Aug 21 09:32:20 at > java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) > Aug 21 09:32:20 at > java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175) > Aug 21 09:32:20 Caused by: org.apache.flink.table.api.TableException: Cannot > find table '`test_catalog12`.`test_db`.`users_shops`' in any of the catalogs > [test_catalog6, test_catalog7, test_catalog4, test_catalog5, test_catalog8, > test_catalog9, test_catalog12, test_catalog11, test_catalog2, test_catalog10, > test_catalog3, test_catalog1, default_catalog], nor as a temporary table. > Aug 21 09:32:20 at > org.apache.flink.table.catalog.CatalogManager.lambda$getTableOrError$4(CatalogManager.java:673) > Aug 21 09:32:20 at java.util.Optional.orElseThrow(Optional.java:290) > Aug 21 09:32:20 at > org.apache.flink.table.catalog.CatalogManager.getTableOrError(CatalogManager.java:670) > Aug 21 09:32:20 at > org.apache.flink.table.gateway.service.operation.OperationExecutor.getTable(OperationExecutor.java:297) > Aug 21 09:32:20 at > org.apache.flink.table.gateway.service.SqlGatewayServiceImpl.getTable(SqlGatewayServiceImpl.java:297) > Aug 21 09:32:20 ... 7 more > {code} > > {color:#000000}Corresponding test link{color} > [https://dev.azure.com/apache-flink/apache-flink/_build/results?buildId=61530&view=logs&j=0c940707-2659-5648-cbe6-a1ad63045f0a&t=075c2716-8010-5565-fe08-3c4bb45824a4&s=ae4f8708-9994-57d3-c2d7-b892156e7812] > h3. Problem: > > {color:#000000}As shown in the error message above, in the test method > afterEach, we will list all materialized tables and then drop them to prevent > any remaining refresh tasks.{color} > {color:#000000}However, since the Drop Materialized Table has already been > deleted, it causes the error mentioned above.{color} > {color:#000000}* Why does listing tables show they exist when dropping tables > results in an error stating they do not exist?{color} > {color:#000000}1. In the test > dropMaterializedTableWithDeletedRefreshWorkflowInFullMode, we manually > dropped the Materialized Table.{color} > {color:#000000}2. Despite manual deletion, background refresh tasks are still > being submitted. This leads to data continuing to be written into the > corresponding table data directory.{color} > {color:#000000}3. TestFileSystemCatalog lists all directories for existing > tables during listTable. If a directory exists, it returns true. However, > during dropTable it checks if both table and schema files exist > simultaneously. This inconsistency caused the mentioned issue.{color} > h3. {color:#000000}Solution:{color} > {color:#000000}1. Fix TestFileSystemCatalog logic for listTable by checking > not only directories but also schema file existence.{color} > {color:#000000}2. To further avoid this problem, change all tables in > MaterializedTableITCase to be manually dropped instead.{color} > > > -- This message was sent by Atlassian Jira (v8.20.10#820010)