You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Sergey Uttsel (Jira)" <ji...@apache.org> on 2022/04/05 08:08:00 UTC

[jira] [Updated] (IGNITE-16763) TableManager doesn't throw exception on table create, if something goes wrong in configuration listener for updateAssignments

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

Sergey Uttsel updated IGNITE-16763:
-----------------------------------
    Description: 
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.

Expected behavior:

There is no operational instance of the newly created table on the node that initiated creation of the table, because updateAssignments had failed. "Create table" operation should fail with exception.

Actual:

"Create table" operation succeeds, as onTableCreate listener in TableManager had  succeeded.

Suggested fix:

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

  was:
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#updateAssignments configuration listener, which is triggered after the completion of onTableCreate listener.

Expected behavior:

There is no operational instance of the newly created table on the node that initiated creation of the table, because updateAssignments had failed. "Create table" operation should fail with exception.

Actual:

"Create table" operation succeeds, as onTableCreate listener in TableManager had  succeeded.

Suggested fix:

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


> 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.
> Expected behavior:
> There is no operational instance of the newly created table on the node that initiated creation of the table, because updateAssignments had failed. "Create table" operation should fail with exception.
> Actual:
> "Create table" operation succeeds, as onTableCreate listener in TableManager had  succeeded.
> Suggested fix:
> updateAssignments 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)