[
https://issues.apache.org/jira/browse/IMPALA-12526?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17783697#comment-17783697
]
Michael Smith edited comment on IMPALA-12526 at 11/7/23 4:51 PM:
-----------------------------------------------------------------
This depends on test ordering, right?
I wonder if we could compare tests that use BackendConfig.INSTANCE and those
that ensure it's initialized, and fail if they don't match. Current state is
{code:java}
$ git grep -l 'BackendConfig\.INSTANCE'
java/org/apache/impala/analysis/AnalyzeDDLTest.java
java/org/apache/impala/analysis/AnalyzeStmtsTest.java
java/org/apache/impala/analysis/StmtMetadataLoaderTest.java
java/org/apache/impala/authorization/AuthorizationStmtTest.java
java/org/apache/impala/catalog/PartialCatalogInfoTest.java
java/org/apache/impala/catalog/events/MetastoreEventsProcessorTest.java
java/org/apache/impala/catalog/local/CatalogdMetaProviderTest.java
java/org/apache/impala/catalog/local/LocalCatalogTest.java
java/org/apache/impala/catalog/metastore/CatalogHmsSyncToLatestEventIdTest.java
java/org/apache/impala/catalog/metastore/EnableCatalogdHmsCacheFlagTest.java
java/org/apache/impala/hooks/QueryEventHookManagerTest.java
java/org/apache/impala/planner/StatsExtrapolationTest.java
java/org/apache/impala/service/JniFrontendTest.java
java/org/apache/impala/util/AuthorizationUtilTest.java
java/org/apache/impala/util/KuduUtilTest.java
$ git grep -l 'BackendConfig\.create'
java/org/apache/impala/catalog/events/MetastoreEventsProcessorTest.java
java/org/apache/impala/hooks/QueryEventHookManagerTest.java
java/org/apache/impala/service/JniFrontendTest.java
java/org/apache/impala/util/AuthorizationUtilTest.java
java/org/apache/impala/util/KuduUtilTest.java {code}
Ah, but some of these work because they use a test class that sets up
JniFrontend, so we'd also need to consider all the tests that extend
FrontendTestBase
{code:java}
$ git grep -lo 'FrontendTestBase'
java/org/apache/impala/analysis/AnalyzeAuthStmtsTest.java
java/org/apache/impala/analysis/AnalyzeDDLTest.java
java/org/apache/impala/analysis/AnalyzeKuduDDLTest.java
java/org/apache/impala/analysis/AnalyzerTest.java
java/org/apache/impala/analysis/AuditingKuduTest.java
java/org/apache/impala/analysis/AuditingTest.java
java/org/apache/impala/analysis/ExprNdvTest.java
java/org/apache/impala/analysis/ExprRewriteRulesTest.java
java/org/apache/impala/analysis/ExprSelectivityTest.java
java/org/apache/impala/analysis/LiteralExprTest.java
java/org/apache/impala/analysis/ParserTest.java
java/org/apache/impala/analysis/ToSqlTest.java
java/org/apache/impala/analysis/ToSqlUtilsTest.java
java/org/apache/impala/authorization/AuthorizationTestBase.java
java/org/apache/impala/common/AbstractFrontendTest.java
java/org/apache/impala/common/FrontendFixture.java
java/org/apache/impala/common/FrontendTestBase.java
java/org/apache/impala/planner/ClusterSizeTest.java
java/org/apache/impala/planner/ExplainTest.java
java/org/apache/impala/planner/PlannerTestBase.java
java/org/apache/impala/planner/StatsExtrapolationTest.java
java/org/apache/impala/service/FrontendTest.java
java/org/apache/impala/service/JniCatalogOpTest.java {code}
which, with multiple levels of inheritance, gets pretty messy to automatically
detect.
was (Author: JIRAUSER288956):
This depends on test ordering, right?
I wonder if we could compare tests that use BackendConfig.INSTANCE and those
that ensure it's initialized, and fail if they don't match. Current state is
{code:java}
$ git grep -l 'BackendConfig\.INSTANCE'
java/org/apache/impala/analysis/AnalyzeDDLTest.java
java/org/apache/impala/analysis/AnalyzeStmtsTest.java
java/org/apache/impala/analysis/StmtMetadataLoaderTest.java
java/org/apache/impala/authorization/AuthorizationStmtTest.java
java/org/apache/impala/catalog/PartialCatalogInfoTest.java
java/org/apache/impala/catalog/events/MetastoreEventsProcessorTest.java
java/org/apache/impala/catalog/local/CatalogdMetaProviderTest.java
java/org/apache/impala/catalog/local/LocalCatalogTest.java
java/org/apache/impala/catalog/metastore/CatalogHmsSyncToLatestEventIdTest.java
java/org/apache/impala/catalog/metastore/EnableCatalogdHmsCacheFlagTest.java
java/org/apache/impala/hooks/QueryEventHookManagerTest.java
java/org/apache/impala/planner/StatsExtrapolationTest.java
java/org/apache/impala/service/JniFrontendTest.java
java/org/apache/impala/util/AuthorizationUtilTest.java
java/org/apache/impala/util/KuduUtilTest.java
$ git grep -l 'BackendConfig\.create'
java/org/apache/impala/catalog/events/MetastoreEventsProcessorTest.java
java/org/apache/impala/hooks/QueryEventHookManagerTest.java
java/org/apache/impala/service/JniFrontendTest.java
java/org/apache/impala/util/AuthorizationUtilTest.java
java/org/apache/impala/util/KuduUtilTest.java {code}
Ah, but some of these work because they use a test class that sets up
JniFrontend, so we'd also need to consider all the tests that extend
FrontendTestBase
{code:java}
$ git grep -lo 'FrontendTestBase'
java/org/apache/impala/analysis/AnalyzeAuthStmtsTest.java
java/org/apache/impala/analysis/AnalyzeDDLTest.java
java/org/apache/impala/analysis/AnalyzeKuduDDLTest.java
java/org/apache/impala/analysis/AnalyzerTest.java
java/org/apache/impala/analysis/AuditingKuduTest.java
java/org/apache/impala/analysis/AuditingTest.java
java/org/apache/impala/analysis/ExprNdvTest.java
java/org/apache/impala/analysis/ExprRewriteRulesTest.java
java/org/apache/impala/analysis/ExprSelectivityTest.java
java/org/apache/impala/analysis/LiteralExprTest.java
java/org/apache/impala/analysis/ParserTest.java
java/org/apache/impala/analysis/ToSqlTest.java
java/org/apache/impala/analysis/ToSqlUtilsTest.java
java/org/apache/impala/authorization/AuthorizationTestBase.java
java/org/apache/impala/common/AbstractFrontendTest.java
java/org/apache/impala/common/FrontendFixture.java
java/org/apache/impala/common/FrontendTestBase.java
java/org/apache/impala/planner/ClusterSizeTest.java
java/org/apache/impala/planner/ExplainTest.java
java/org/apache/impala/planner/PlannerTestBase.java
java/org/apache/impala/planner/StatsExtrapolationTest.java
java/org/apache/impala/service/FrontendTest.java
java/org/apache/impala/service/JniCatalogOpTest.java {code}
> BackendConfig.INSTANCE could be null in the frontend test
> testResetMetadataDesc
> -------------------------------------------------------------------------------
>
> Key: IMPALA-12526
> URL: https://issues.apache.org/jira/browse/IMPALA-12526
> Project: IMPALA
> Issue Type: Bug
> Reporter: Fang-Yu Rao
> Assignee: Quanlong Huang
> Priority: Major
> Labels: broken-build, flaky-test
>
> We found that
> [BackendConfig.INSTANCE|https://github.com/apache/impala/blob/master/fe/src/main/java/org/apache/impala/analysis/ResetMetadataStmt.java#L265]
> could be null in the frontend test
> [testResetMetadataDesc()|https://github.com/apache/impala/blob/master/fe/src/test/java/org/apache/impala/util/CatalogOpUtilTest.java#L65]
> and thus
> [ResetMetadataStmt#toThrift()|https://github.com/apache/impala/blob/master/fe/src/main/java/org/apache/impala/analysis/ResetMetadataStmt.java#L265]
> could fail with the following error.
> {code}
> Cannot invoke "org.apache.impala.service.BackendConfig.getHostname()" because
> "org.apache.impala.service.BackendConfig.INSTANCE" is null
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]