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

Sergey Uttsel commented on IGNITE-16763:
----------------------------------------

The test ItIgniteNodeRestartTest#nodeWithDataTest in 
https://github.com/gridgain/apache-ignite-3/tree/ignite-16763 reproduces the 
issue.

On create table if TableManager#onUpdateAssignments throws an exception, then 
tblFut.completeExceptionally(ex) is invoked in 
TableManager#createTableAsyncInternal. But at this time tblFut is completed so 
a completeExceptionally does not affect anything.

> TableManager doesn't throw exception on table create, if something goes wrong 
> in configuration listener for updateAssignments
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-16763
>                 URL: https://issues.apache.org/jira/browse/IGNITE-16763
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Denis Chudov
>            Priority: Major
>              Labels: ignite-3
>
> Scenario:
> Start a node, try to create a table. Inside of TableManager the listener 
> onTableCreate is successfully executed. Then, an exception happens inside of 
> TableManager#onUpdateAssignments
> configuration listener, which is triggered after the completion of 
> onTableCreate listener. To reproduce the issue need to add an exception 
> throwing in TableManager#onUpdateAssignments and create a table.
> Expected behavior:
> There is no operational instance of the newly created table on the node that 
> initiated creation of the table, because onUpdateAssignments had failed. 
> "Create table" operation should fail with exception.
> Actual:
> "Create table" operation succeeds, as onTableCreate listener in TableManager 
> had  succeeded.
> Suggested fix:
> onUpdateAssignments should save exception to versioned values in 
> TableManager, as it updates these versioned values. Thus, the following 
> VersionedValue#get will throw an exception, and table creation future will be 
> completed exceptionally (see TableManager#completeApiCreateFuture ). However, 
> we should think about how further updates of these versioned values will 
> happen.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to