[ 
https://issues.apache.org/jira/browse/IMPALA-8479?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Ho reassigned IMPALA-8479:
----------------------------------

    Assignee: Vihang Karajgaonkar

> REFRESH may fail if table metadata mutates during load
> ------------------------------------------------------
>
>                 Key: IMPALA-8479
>                 URL: https://issues.apache.org/jira/browse/IMPALA-8479
>             Project: IMPALA
>          Issue Type: Improvement
>          Components: Catalog
>    Affects Versions: Impala 3.3.0
>            Reporter: Vincent Tran
>            Assignee: Vihang Karajgaonkar
>            Priority: Major
>
> Reproduction:
>  1) Create a partitioned table
> {noformat}
> create table t1 (c1 int) partitioned by (part int);{noformat}
> 2) Generate a decent number of partitions
> {noformat}
> for i in {1..5000}; do impala-shell.sh -q "insert into t1 partition(part=$i) 
> values ($i)"; done
> {noformat}
> 3) Start an IM;REFRESH; loop
> {noformat}
> while :; do impala-shell.sh -q "invalidate metadata; refresh t1;"; 
> done{noformat}
>  4) Start dropping partitions in Hive.
> {noformat}
> for i in {1..5000}; do hive -e "alter table t1 drop partition (part=$i)"; 
> done{noformat}
> Eventually, when the "REFRESH" and "ALTER TABLE ... DROP ..." coincides in 
> HMS, catalogd will encounter this TableLoadingException (as appeared on trunk)
> {noformat}
> I0501 14:06:14.552676 38522 TableLoadingMgr.java:70] Loading metadata for 
> table: vt.t1
> I0501 14:06:14.552776 38927 TableLoader.java:61] Loading metadata for: vt.t1
> I0501 14:06:14.552850 38522 TableLoadingMgr.java:72] Remaining items in 
> queue: 0. Loads in progress: 1
> I0501 14:06:14.566756 38927 HdfsTable.java:941] Fetching partition metadata 
> from the Metastore: vt.t1
> I0501 14:06:16.305446 38927 HdfsTable.java:945] Fetched partition metadata 
> from the Metastore: vt.t1
> I0501 14:06:16.367607 38927 TableLoader.java:101] Loaded metadata for: vt.t1 
> (1814ms)
> I0501 14:06:16.368847 38522 jni-util.cc:256] 
> org.apache.impala.catalog.TableLoadingException: Failed to load metadata for 
> table: vt.t1
>         at org.apache.impala.catalog.HdfsTable.load(HdfsTable.java:956)
>         at org.apache.impala.catalog.HdfsTable.load(HdfsTable.java:877)
>         at org.apache.impala.catalog.TableLoader.load(TableLoader.java:84)
>         at 
> org.apache.impala.catalog.TableLoadingMgr$2.call(TableLoadingMgr.java:241)
>         at 
> org.apache.impala.catalog.TableLoadingMgr$2.call(TableLoadingMgr.java:238)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>         at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.IllegalArgumentException: Cannot parse partition values 
> '[]' for table vt.t1: expected %d values but got %d [1, 0]
>         at 
> com.google.common.base.Preconditions.checkArgument(Preconditions.java:119)
>         at 
> org.apache.impala.catalog.FeCatalogUtils.parsePartitionKeyValues(FeCatalogUtils.java:224)
>         at 
> org.apache.impala.catalog.HdfsTable.createPartition(HdfsTable.java:698)
>         at 
> org.apache.impala.catalog.HdfsTable.loadAllPartitions(HdfsTable.java:532)
>         at org.apache.impala.catalog.HdfsTable.load(HdfsTable.java:946)
>         ... 8 more
> I0501 14:06:16.440848 38522 status.cc:124] TableLoadingException: Failed to 
> load metadata for table: vt.t1
> CAUSED BY: IllegalArgumentException: Cannot parse partition values '[]' for 
> table vt.t1: expected %d values but got %d [1, 0]
>     @          0x1a91ff0  impala::Status::Status()
>     @          0x221518c  impala::JniUtil::GetJniExceptionMsg()
>     @          0x1a7a369  impala::JniCall::Call<>()
>     @          0x1a78475  impala::JniUtil::CallJniMethod<>()
>     @          0x1a7663c  impala::Catalog::ResetMetadata()
>     @          0x1a4e5df  CatalogServiceThriftIf::ResetMetadata()
>     @          0x1aea49d  
> impala::CatalogServiceProcessor::process_ResetMetadata()
>     @          0x1ae8b9b  impala::CatalogServiceProcessor::dispatchCall()
>     @          0x1a36feb  apache::thrift::TDispatchProcessor::process()
>     @          0x1e8e8a0  
> apache::thrift::server::TAcceptQueueServer::Task::run()
>     @          0x1e8509e  impala::ThriftThread::RunRunnable()
>     @          0x1e867c4  boost::_mfi::mf2<>::operator()()
>     @          0x1e8665a  boost::_bi::list3<>::operator()<>()
>     @          0x1e863a6  boost::_bi::bind_t<>::operator()()
>     @          0x1e862b9  
> boost::detail::function::void_function_obj_invoker0<>::invoke()
>     @          0x1daa4eb  boost::function0<>::operator()()
>     @          0x2286cd0  impala::Thread::SuperviseThread()
>     @          0x228f054  boost::_bi::list5<>::operator()<>()
>     @          0x228ef78  boost::_bi::bind_t<>::operator()()
>     @          0x228ef3b  boost::detail::thread_data<>::run()
>     @          0x37967b9  thread_proxy
>     @     0x7f1dc6fef6b9  start_thread
>     @     0x7f1dc6d2541c  clone
> E0501 14:06:16.440897 38522 catalog-server.cc:122] TableLoadingException: 
> Failed to load metadata for table: vt.t1
> CAUSED BY: IllegalArgumentException: Cannot parse partition values '[]' for 
> table vt.t1: expected %d values but got %d [1, 0]
> {noformat}
> In earlier versions, this may manifest as a similar in context but distinct 
> message.
> In Impala 2.10, for example:
> {noformat}
> I0501 09:51:20.349366 21296 CatalogServiceCatalog.java:996] Refreshing table 
> metadata: default.pt1
> I0501 09:51:20.359350 21296 HdfsTable.java:1067] Incrementally loading table 
> metadata for: default.pt1
> I0501 09:51:20.393787 21296 jni-util.cc:211] 
> org.apache.impala.catalog.TableLoadingException: Failed to load metadata for 
> table: pt1
>         at org.apache.impala.catalog.HdfsTable.load(HdfsTable.java:1092)
>         at org.apache.impala.catalog.HdfsTable.load(HdfsTable.java:1020)
>         at 
> org.apache.impala.catalog.CatalogServiceCatalog.reloadTable(CatalogServiceCatalog.java:1016)
>         at 
> org.apache.impala.service.CatalogOpExecutor.execResetMetadata(CatalogOpExecutor.java:3067)
>         at 
> org.apache.impala.service.JniCatalog.resetMetadata(JniCatalog.java:156)
> Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
>         at java.util.ArrayList.rangeCheck(ArrayList.java:653)
>         at java.util.ArrayList.get(ArrayList.java:429)
>         at 
> org.apache.hadoop.hive.common.FileUtils.makePartName(FileUtils.java:155)
>         at 
> org.apache.hadoop.hive.common.FileUtils.makePartName(FileUtils.java:135)
>         at 
> org.apache.impala.catalog.HdfsPartition.getPartitionName(HdfsPartition.java:491)
>         at 
> org.apache.impala.catalog.HdfsTable.updatePartitionsFromHms(HdfsTable.java:1171)
>         at org.apache.impala.catalog.HdfsTable.load(HdfsTable.java:1073)
>         ... 4 more
> I0501 09:51:20.402027 21296 status.cc:122] TableLoadingException: Failed to 
> load metadata for table: pt1
> CAUSED BY: IndexOutOfBoundsException: Index: 0, Size: 0
>     @           0x83efc9  impala::Status::Status()
>     @           0xb747d2  impala::JniUtil::GetJniExceptionMsg()
>     @           0x8317cb  impala::Catalog::ResetMetadata()
>     @           0x8244db  CatalogServiceThriftIf::ResetMetadata()
>     @           0x8cb329  
> impala::CatalogServiceProcessor::process_ResetMetadata()
>     @           0x8c8f39  impala::CatalogServiceProcessor::dispatchCall()
>     @           0x80ecec  apache::thrift::TDispatchProcessor::process()
>     @           0x9db65f  
> apache::thrift::server::TAcceptQueueServer::Task::run()
>     @           0x9d5c79  impala::ThriftThread::RunRunnable()
>     @           0x9d6a52  
> boost::detail::function::void_function_obj_invoker0<>::invoke()
>     @           0xbd6ff2  impala::Thread::SuperviseThread()
>     @           0xbd7754  boost::detail::thread_data<>::run()
>     @           0xe6418a  (unknown)
>     @     0x7f0faf4a4dd5  start_thread
>     @     0x7f0faf1cdead  __clone
> E0501 09:51:20.402400 21296 catalog-server.cc:82] TableLoadingException: 
> Failed to load metadata for table: pt1
> CAUSED BY: IndexOutOfBoundsException: Index: 0, Size: 0
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscr...@impala.apache.org
For additional commands, e-mail: issues-all-h...@impala.apache.org

Reply via email to