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