Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
Impala 2.8.0
-
None
Description
The current implementation in the catalog (CatalogOpExecutor.java) allows a catalog operation to retrieve a reference to a table object using CatalogServiceCatalog.getOrLoadTable() that is not protected by a lock. Even though all catalog operations will eventually lock the table on which they operate, there is time window in which an INVALIDATE METADATA operation can modify the state of the table from loaded to unloaded, thereby causing an exception to be thrown and the metadata operation to be aborted. The error is not catastrophic but requires the user to repeat the operation. We should change the code so that references to catalog objects are always protected.