changxin created IMPALA-10965:
---------------------------------
Summary: Show Crate Table XXX may throw an null pointer exception
Key: IMPALA-10965
URL: https://issues.apache.org/jira/browse/IMPALA-10965
Project: IMPALA
Issue Type: Bug
Components: Frontend
Reporter: changxin
Attachments: image-2021-10-12-17-12-48-035.png
!image-2021-10-12-17-12-48-035.png!
In my test environment, some SQL is running concurrently, but sometimes the
"show create table xxx" statement will report a null pointer error, and the
stack information is as shown in the figure above.
After I checked, I found that the "show create table xxx" statement would get
the metadata of the table before Analyze, and then it would run to
org.apache.impala.service.JniFrontend.showCreateTable. Between these two
operation, if the "invalidate metadata" statement is executed successfully, the
cache in ImpaladCatalog will be deleted, and the table obtained in the
showCreateTable function is the IncompleteTable type, then the above null
pointer error will be reported in ToSqlUtils.getCreateTableSql.
There are two ways to reproduce:
1. Frequently execute the "show create table xxx" and "invalidate metadata"
statements at the same time.
2. Modify the showCreateTable code to sleep for a period of time before getting
the table. Then executing the "show create table xxx" and "invalidate metadata"
statements at the same time, due to sleep for a period of time, the probability
of the problem will greatly increase.
I think we should add a judgment of "table instanceof IncompleteTable" in
showCreateTable, and report the error that the metadata may have been deleted
instead of reporting a null pointer.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)