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

Todd Lipcon updated IMPALA-8489:
--------------------------------
    Summary: TestRecoverPartitions.test_post_invalidate fails with 
IllegalStateException when HMS polling is enabled  (was: 
TestRecoverPartitions.test_post_invalidate fails with IllegalStateException 
with local catalog)

I can reproduce this by just enabling polling (and not LocalCatalog). Updated 
the title appropriately.

The issue seems to be in CatalogOpExecutor.updateCatalog handling of partitions 
that were touched by an insert. It comes up with a list of partition IDs that 
were modified by the insert, then calls loadTableMetadata() which refreshes 
those partitions. Because the partition was added by ALTER TABLE RECOVER 
PARTITIONS, it got marked as "dirty" which means that the refresh ends up 
dropping and reloading it with a new partition ID. Then, createInsertEvents 
looks for the partitions by ID, but they've since been assigned new IDs, so 
they aren't found.

Digging into this a bit more to see if I can see why this affects this code 
path but not others that also use the "dirty partition" hack

> TestRecoverPartitions.test_post_invalidate fails with IllegalStateException 
> when HMS polling is enabled
> -------------------------------------------------------------------------------------------------------
>
>                 Key: IMPALA-8489
>                 URL: https://issues.apache.org/jira/browse/IMPALA-8489
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Catalog
>    Affects Versions: Impala 3.3.0
>            Reporter: Tim Armstrong
>            Assignee: Todd Lipcon
>            Priority: Critical
>
> {noformat}
> metadata/test_recover_partitions.py:279: in test_post_invalidate
>     "INSERT INTO TABLE %s PARTITION(i=002, p='p2') VALUES(4)" % FQ_TBL_NAME)
> common/impala_test_suite.py:620: in wrapper
>     return function(*args, **kwargs)
> common/impala_test_suite.py:628: in execute_query_expect_success
>     result = cls.__execute_query(impalad_client, query, query_options, user)
> common/impala_test_suite.py:722: in __execute_query
>     return impalad_client.execute(query, user=user)
> common/impala_connection.py:180: in execute
>     return self.__beeswax_client.execute(sql_stmt, user=user)
> beeswax/impala_beeswax.py:187: in execute
>     handle = self.__execute_query(query_string.strip(), user=user)
> beeswax/impala_beeswax.py:364: in __execute_query
>     self.wait_for_finished(handle)
> beeswax/impala_beeswax.py:385: in wait_for_finished
>     raise ImpalaBeeswaxException("Query aborted:" + error_log, None)
> E   ImpalaBeeswaxException: ImpalaBeeswaxException:
> E    Query aborted:IllegalArgumentException: no such partition id 6244
> {noformat}
> The failure is reproducible for me locally with catalog v2.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to