[ 
https://issues.apache.org/jira/browse/IMPALA-12266?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17855090#comment-17855090
 ] 

ASF subversion and git services commented on IMPALA-12266:
----------------------------------------------------------

Commit f98da3315e1e4744ad0e49405a4d1c7f98be85ae in impala's branch 
refs/heads/master from Sai Hemanth Gantasala
[ https://gitbox.apache.org/repos/asf?p=impala.git;h=f98da3315 ]

IMPALA-12712: Invalidate metadata on table should set better
createEventId

"INVALIDATE METADATA <table>" can be used to bring up a table in
Impala's catalog cache if the table exists in HMS. Currently,
createEventId for such tables are always set as -1 which will lead to
always removing the table. Sequence of drop table + create table +
invalidate table can lead to flaky test failures like IMPALA-12266.

Solution:
When Invalidate metadata <table> is fired, fetch the latest eventId
from HMS and set it as createEventId for the table, so that drop table
event that happend before invalidate query will be ignored without
removing the table from cache.

Note: Also removed an unnecessary RPC call to HMS to get table object
since we alrady have required info in table metadata rpc call.

Testing:
- Added an end-to-end test to verify that drop table event happened
before time shouldn't remove the metadata object from cache.

Change-Id: Iff6ac18fe8d9e7b25cc41c7e41eecde251fbccdd
Reviewed-on: http://gerrit.cloudera.org:8080/21402
Reviewed-by: Csaba Ringhofer <[email protected]>
Tested-by: Impala Public Jenkins <[email protected]>


> Sporadic failure after migrating a table to Iceberg
> ---------------------------------------------------
>
>                 Key: IMPALA-12266
>                 URL: https://issues.apache.org/jira/browse/IMPALA-12266
>             Project: IMPALA
>          Issue Type: Bug
>          Components: fe
>    Affects Versions: Impala 4.2.0
>            Reporter: Tamas Mate
>            Assignee: Gabor Kaszab
>            Priority: Critical
>              Labels: impala-iceberg
>         Attachments: 
> catalogd.bd40020df22b.invalid-user.log.INFO.20230704-181939.1, 
> impalad.6c0f48d9ce66.invalid-user.log.INFO.20230704-181940.1
>
>
> TestIcebergTable.test_convert_table test failed in a recent verify job's 
> dockerised tests:
> https://jenkins.impala.io/job/ubuntu-16.04-dockerised-tests/7629
> {code:none}
> E   ImpalaBeeswaxException: ImpalaBeeswaxException:
> E    INNER EXCEPTION: <class 'beeswaxd.ttypes.BeeswaxException'>
> E    MESSAGE: AnalysisException: Failed to load metadata for table: 
> 'parquet_nopartitioned'
> E   CAUSED BY: TableLoadingException: Could not load table 
> test_convert_table_cdba7383.parquet_nopartitioned from catalog
> E   CAUSED BY: TException: 
> TGetPartialCatalogObjectResponse(status:TStatus(status_code:GENERAL, 
> error_msgs:[NullPointerException: null]), lookup_status:OK)
> {code}
> {code:none}
> E0704 19:09:22.980131   833 JniUtil.java:183] 
> 7145c21173f2c47b:2579db5500000000] Error in Getting partial catalog object of 
> TABLE:test_convert_table_cdba7383.parquet_nopartitioned. Time spent: 49ms
> I0704 19:09:22.980309   833 jni-util.cc:288] 
> 7145c21173f2c47b:2579db5500000000] java.lang.NullPointerException
>       at 
> org.apache.impala.catalog.CatalogServiceCatalog.replaceTableIfUnchanged(CatalogServiceCatalog.java:2357)
>       at 
> org.apache.impala.catalog.CatalogServiceCatalog.getOrLoadTable(CatalogServiceCatalog.java:2300)
>       at 
> org.apache.impala.catalog.CatalogServiceCatalog.doGetPartialCatalogObject(CatalogServiceCatalog.java:3587)
>       at 
> org.apache.impala.catalog.CatalogServiceCatalog.getPartialCatalogObject(CatalogServiceCatalog.java:3513)
>       at 
> org.apache.impala.catalog.CatalogServiceCatalog.getPartialCatalogObject(CatalogServiceCatalog.java:3480)
>       at 
> org.apache.impala.service.JniCatalog.lambda$getPartialCatalogObject$11(JniCatalog.java:397)
>       at 
> org.apache.impala.service.JniCatalogOp.lambda$execAndSerialize$1(JniCatalogOp.java:90)
>       at org.apache.impala.service.JniCatalogOp.execOp(JniCatalogOp.java:58)
>       at 
> org.apache.impala.service.JniCatalogOp.execAndSerialize(JniCatalogOp.java:89)
>       at 
> org.apache.impala.service.JniCatalogOp.execAndSerializeSilentStartAndFinish(JniCatalogOp.java:109)
>       at 
> org.apache.impala.service.JniCatalog.execAndSerializeSilentStartAndFinish(JniCatalog.java:238)
>       at 
> org.apache.impala.service.JniCatalog.getPartialCatalogObject(JniCatalog.java:396)
> I0704 19:09:22.980324   833 status.cc:129] 7145c21173f2c47b:2579db5500000000] 
> NullPointerException: null
>     @          0x1012f9f  impala::Status::Status()
>     @          0x187f964  impala::JniUtil::GetJniExceptionMsg()
>     @           0xfee920  impala::JniCall::Call<>()
>     @           0xfccd0f  impala::Catalog::GetPartialCatalogObject()
>     @           0xfb55a5  
> impala::CatalogServiceThriftIf::GetPartialCatalogObject()
>     @           0xf7a691  
> impala::CatalogServiceProcessorT<>::process_GetPartialCatalogObject()
>     @           0xf82151  impala::CatalogServiceProcessorT<>::dispatchCall()
>     @           0xee330f  apache::thrift::TDispatchProcessor::process()
>     @          0x1329246  
> apache::thrift::server::TAcceptQueueServer::Task::run()
>     @          0x1315a89  impala::ThriftThread::RunRunnable()
>     @          0x131773d  
> boost::detail::function::void_function_obj_invoker0<>::invoke()
>     @          0x195ba8c  impala::Thread::SuperviseThread()
>     @          0x195c895  boost::detail::thread_data<>::run()
>     @          0x23a03a7  thread_proxy
>     @     0x7faaad2a66ba  start_thread
>     @     0x7faaaa2c151d  clone
> E0704 19:09:23.006968   833 catalog-server.cc:278] 
> 7145c21173f2c47b:2579db5500000000] NullPointerException: 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]

Reply via email to