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

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

Commit 1a90388b19500289fbb8c3765aee9a8882ae3c04 in impala's branch 
refs/heads/branch-4.4.0 from Michael Smith
[ https://gitbox.apache.org/repos/asf?p=impala.git;h=1a90388b1 ]

IMPALA-13003: Handle Iceberg AlreadyExistsException

When multiple coordinators attempt to create the same table concurrently
with "if not exists", we still see

  AlreadyExistsException: Table was created concurrently: my_iceberg_tbl

Iceberg throws its own version of AlreadyExistsException, but we avoid
most code paths that would throw it because we first check HMS to see if
the table exists before trying to create it.

Updates createIcebergTable to handle Iceberg's AlreadyExistsException
identically to the HMS AlreadyExistsException.

Adds a test using DebugAction to simulate concurrent table creation.

Change-Id: I847eea9297c9ee0d8e821fe1c87ea03d22f1d96e
Reviewed-on: http://gerrit.cloudera.org:8080/21312
Reviewed-by: Impala Public Jenkins <impala-public-jenk...@cloudera.com>
Tested-by: Impala Public Jenkins <impala-public-jenk...@cloudera.com>


> Server exits early failing to create impala_query_log with 
> AlreadyExistsException
> ---------------------------------------------------------------------------------
>
>                 Key: IMPALA-13003
>                 URL: https://issues.apache.org/jira/browse/IMPALA-13003
>             Project: IMPALA
>          Issue Type: Bug
>          Components: be
>    Affects Versions: Impala 4.4.0
>            Reporter: Andrew Sherman
>            Assignee: Michael Smith
>            Priority: Critical
>              Labels: iceberg, workload-management
>             Fix For: Impala 4.4.0
>
>
> At startup workload management tries to create the query log table here:
> {code:java}
>   // The initialization code only works when run in a separate thread for 
> reasons unknown.
>   ABORT_IF_ERROR(SetupDbTable(internal_server_.get(), table_name));
> {code}
> This code is exiting:
> {code:java}
> I0413 23:40:05.183876 21006 client-request-state.cc:1348] 
> 1d4878dbc9214c81:6dc8cc2e00000000] ImpalaRuntimeException: Error making 
> 'createTable' RPC to Hive Metastore:
> CAUSED BY: AlreadyExistsException: Table was created concurrently: 
> sys.impala_query_log
> I0413 23:40:05.184055 20955 impala-server.cc:2582] Connection 
> 27432606d99dcdae:218860164eb206bb from client in-memory.localhost:0 to server 
> internal-server closed. The connection had 1 associated session(s).
> I0413 23:40:05.184067 20955 impala-server.cc:1780] Closing session: 
> 27432606d99dcdae:218860164eb206bb
> I0413 23:40:05.184083 20955 impala-server.cc:1836] Closed session: 
> 27432606d99dcdae:218860164eb206bb, client address: <in-memory.localhost:0>.
> F0413 23:40:05.184111 20955 workload-management.cc:304] query timed out 
> waiting for results
> . Impalad exiting.
> I0413 23:40:05.184728 20883 impala-server.cc:1564] Query successfully 
> unregistered: query_id=1d4878dbc9214c81:6dc8cc2e00000000
> Minidump in thread [20955]completed-queries running query 
> 0000000000000000:0000000000000000, fragment instance 
> 0000000000000000:0000000000000000
> Wrote minidump to 
> /data/jenkins/workspace/impala-cdw-master-core-ubsan/repos/Impala/logs/custom_cluster_tests/minidumps/impalad/402f37cc-4663-4c78-086ca295-a9e5943c.dmp
> {code}
> with stack
> {code:java}
> F0413 23:40:05.184111 20955 workload-management.cc:304] query timed out 
> waiting for results
> . Impalad exiting.
> *** Check failure stack trace: ***
>     @          0x8e96a4d  google::LogMessage::Fail()
>     @          0x8e98984  google::LogMessage::SendToLog()
>     @          0x8e9642c  google::LogMessage::Flush()
>     @          0x8e98ea9  google::LogMessageFatal::~LogMessageFatal()
>     @          0x3da3a9a  impala::ImpalaServer::CompletedQueriesThread()
>     @          0x3a8df93  boost::_mfi::mf0<>::operator()()
>     @          0x3a8de97  boost::_bi::list1<>::operator()<>()
>     @          0x3a8dd77  boost::_bi::bind_t<>::operator()()
>     @          0x3a8d672  
> boost::detail::function::void_function_obj_invoker0<>::invoke()
>     @          0x301e7d0  boost::function0<>::operator()()
>     @          0x43ce415  impala::Thread::SuperviseThread()
>     @          0x43e2dc7  boost::_bi::list5<>::operator()<>()
>     @          0x43e29e7  boost::_bi::bind_t<>::operator()()
>     @          0x43e21c5  boost::detail::thread_data<>::run()
>     @          0x7984c37  thread_proxy
>     @     0x7f75b6982ea5  start_thread
>     @     0x7f75b36a7b0d  __clone
> Picked up JAVA_TOOL_OPTIONS: 
> -agentlib:jdwp=transport=dt_socket,address=30000,server=y,suspend=n   
> -Dsun.java.command=impalad
> Minidump in thread [20955]completed-queries running query 
> 0000000000000000:0000000000000000, fragment instance 
> 0000000000000000:0000000000000000
> {code}
> I think the key error is 
> {code}
> CAUSED BY: AlreadyExistsException: Table was created concurrently: 
> sys.impala_query_log
> {code}
> which suggests that creating the table with "if not exists" is not sufficient 
> to protect against concurrent creations.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
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