[
https://issues.apache.org/jira/browse/IGNITE-16763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Denis Chudov 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#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.
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#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.
>
--
This message was sent by Atlassian Jira
(v8.20.1#820001)