You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "Quanlong Huang (JIRA)" <ji...@apache.org> on 2019/08/17 14:18:00 UTC

[jira] [Updated] (IMPALA-7245) test_kudu.py::test_kudu_insert() fails with "Error adding columns to Kudu table tbl_with_defaults"

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

Quanlong Huang updated IMPALA-7245:
-----------------------------------
    Target Version: Impala 3.4.0  (was: Impala 3.3.0)

> test_kudu.py::test_kudu_insert() fails with "Error adding columns to Kudu table tbl_with_defaults"
> --------------------------------------------------------------------------------------------------
>
>                 Key: IMPALA-7245
>                 URL: https://issues.apache.org/jira/browse/IMPALA-7245
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Catalog
>    Affects Versions: Impala 3.1.0
>            Reporter: Joe McDonnell
>            Assignee: Tianyi Wang
>            Priority: Critical
>              Labels: broken-build, flaky
>
> query_test.test_kudu.TestKuduOperations.test_kudu_insert hit the following error:
> {noformat}
> query_test/test_kudu.py:93: in test_kudu_insert
>     self.run_test_case('QueryTest/kudu_insert', vector, use_db=unique_database)
> common/impala_test_suite.py:405: in run_test_case
>     result = self.__execute_query(target_impalad_client, query, user=user)
> common/impala_test_suite.py:620: in __execute_query
>     return impalad_client.execute(query, user=user)
> common/impala_connection.py:160: in execute
>     return self.__beeswax_client.execute(sql_stmt, user=user)
> beeswax/impala_beeswax.py:173: in execute
>     handle = self.__execute_query(query_string.strip(), user=user)
> beeswax/impala_beeswax.py:343: in __execute_query
>     handle = self.execute_query_async(query_string, user=user)
> beeswax/impala_beeswax.py:339: in execute_query_async
>     return self.__do_rpc(lambda: self.imp_service.query(query,))
> beeswax/impala_beeswax.py:483: in __do_rpc
>     raise ImpalaBeeswaxException(self.__build_error_message(b), b)
> E   ImpalaBeeswaxException: ImpalaBeeswaxException:
> E    INNER EXCEPTION: <class 'beeswaxd.ttypes.BeeswaxException'>
> E    MESSAGE: ImpalaRuntimeException: Error adding columns to Kudu table tbl_with_defaults
> E   CAUSED BY: NonRecoverableException: The column already exists: j{noformat}
> This is very similar to what we saw in IMPALA-6107, which we couldn't reproduce.
> It seems to be related to our interaction with the Kudu client. The statement starts executing at 23:05:11.17. From impalad.INFO:
> {noformat}
> I0629 23:05:11.170009 20602 impala-beeswax-server.cc:54] query(): query=alter table tbl_with_defaults add columns (j int null, k int not null default 10000){noformat}
> This results in actions in catalogd, but catalogd encounters a timeout in the AsyncKuduClient while processing this and then immediately hits the error:
> {noformat}
> I0629 23:05:11.212054 28109 AsyncKuduClient.java:1756] Invalidating location master-127.0.0.1:7051(127.0.0.1:7051) for tablet Kudu Master: [peer master-127.0.0.1:7051(127.0.0.1:7051)] encountered a read timeout; closing the channel
> I0629 23:05:11.288261 11518 jni-util.cc:230] org.apache.impala.common.ImpalaRuntimeException: Error adding columns to Kudu table tbl_with_defaults
> at org.apache.impala.service.KuduCatalogOpExecutor.alterKuduTable(KuduCatalogOpExecutor.java:499)
> at org.apache.impala.service.KuduCatalogOpExecutor.addColumn(KuduCatalogOpExecutor.java:412)
> at org.apache.impala.service.CatalogOpExecutor.alterKuduTable(CatalogOpExecutor.java:600)
> at org.apache.impala.service.CatalogOpExecutor.alterTable(CatalogOpExecutor.java:420)
> at org.apache.impala.service.CatalogOpExecutor.execDdlRequest(CatalogOpExecutor.java:270)
> at org.apache.impala.service.JniCatalog.execDdl(JniCatalog.java:146)
> Caused by: org.apache.kudu.client.NonRecoverableException: The column already exists: j
> at org.apache.kudu.client.KuduException.transformException(KuduException.java:110)
> at org.apache.kudu.client.KuduClient.joinAndHandleException(KuduClient.java:351)
> at org.apache.kudu.client.KuduClient.alterTable(KuduClient.java:141)
> at org.apache.impala.service.KuduCatalogOpExecutor.alterKuduTable(KuduCatalogOpExecutor.java:494)
> ... 5 more
> {noformat}
> The Kudu master sees the alter table request, then the connection is torn down, then a duplicate alter table request:
> {noformat}
> I0629 23:05:11.197782 16157 catalog_manager.cc:2086] Servicing AlterTable request from {username='jenkins'} at 127.0.0.1:34332:
> table { table_name: "impala::test_kudu_insert_ca9324f5.tbl_with_defaults" } alter_schema_steps { type: ADD_COLUMN add_column { schema { name: "j" type: INT32 is_key: false is_nullable: true cfile_block_size: 0 } } } alter_schema_steps { type: ADD_COLUMN add_column { schema { name: "k" type: INT32 is_key: false is_nullable: false read_default_value: "\020\'\000\000" cfile_block_size: 0 } } }
> W0629 23:05:11.218549 15925 connection.cc:420] Connection torn down before Call kudu.master.MasterService.AlterTable from 127.0.0.1:34332 (request call id 24) could send its response
> I0629 23:05:11.239550 16157 catalog_manager.cc:4132] T 00000000000000000000000000000000 P 32ff35a1134b48fbb17f9b6cdefd6b7b: impala::test_kudu_insert_ca9324f5.tbl_with_defaults [id=9f784287d5274dd9a56c434c977a3b4f] alter complete (version 1)
> I0629 23:05:11.283748 16157 catalog_manager.cc:2086] Servicing AlterTable request from {username='jenkins'} at 127.0.0.1:34380:
> table { table_name: "impala::test_kudu_insert_ca9324f5.tbl_with_defaults" } alter_schema_steps { type: ADD_COLUMN add_column { schema { name: "j" type: INT32 is_key: false is_nullable: true cfile_block_size: 0 } } } alter_schema_steps { type: ADD_COLUMN add_column { schema { name: "k" type: INT32 is_key: false is_nullable: false read_default_value: "\020\'\000\000" cfile_block_size: 0 } } }{noformat}
> This indicates some problem where the column is added, but then there is a communication problem and we retry anyway. 



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

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