[ https://issues.apache.org/jira/browse/IGNITE-17976?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mirza Aliev updated IGNITE-17976: --------------------------------- Description: *Scenario*: Start two nodes, populate data, stop node, try to {{table.keyValueView().get}} value. *Expected behaviour*: Exception is thrown. We should throw TransactionException with error code, that we don't have an actor, who can handle that request. Also we need to add a root cause to the exception whether it was lost majority, or the reason is the replica unavailability etc. *Actual behaviour*: We can caught {{ReplicationTimeoutException}}, {{TransactionException}}, {{IgniteException}}. Sometimes we fail with {{NullPointerException}}, the reason is because we can stop leader of some partition, and for two nodes it is impossible to elect new leader, so we get null in {{InternalTableImpl#enlist}} when we try to get {{svc.refreshAndGetLeaderWithTerm();}} The problem can be reproduced in the test {{ItIgniteNodeRestartTest#testOneNodeRestartWithGap}}, which was muted using this ticket. was: *Scenario*: Start two nodes, populate data, stop node, try to {{table.keyValueView().get}} value. *Expected behaviour*: Exception is thrown. We should throw TransactionException with error code, that we don't have an actor, who can handle that request. Also we need to add root cause to the exception whether it was lost majority, or the reason is the replica unavailability etc. *Actual behaviour*: We can caught {{ReplicationTimeoutException}}, {{TransactionException}}, {{IgniteException}}. Sometimes we fail with {{NullPointerException}}, the reason is because we can stop leader of some partition, and for two nodes it is impossible to elect new leader, so we get null in {{InternalTableImpl#enlist}} when we try to get {{svc.refreshAndGetLeaderWithTerm();}} The problem can be reproduced in the test {{ItIgniteNodeRestartTest#testOneNodeRestartWithGap}}, which was muted using this ticket. > Throw correct exception on KeyValueView#get in case of lost majority > -------------------------------------------------------------------- > > Key: IGNITE-17976 > URL: https://issues.apache.org/jira/browse/IGNITE-17976 > Project: Ignite > Issue Type: Task > Reporter: Mirza Aliev > Priority: Major > Labels: ignite-3 > > *Scenario*: > Start two nodes, populate data, stop node, try to > {{table.keyValueView().get}} value. > *Expected behaviour*: > Exception is thrown. We should throw TransactionException with error code, > that we don't have an actor, who can handle that request. Also we need to add > a root cause to the exception whether it was lost majority, or the reason is > the replica unavailability etc. > *Actual behaviour*: > We can caught {{ReplicationTimeoutException}}, {{TransactionException}}, > {{IgniteException}}. Sometimes we fail with {{NullPointerException}}, the > reason is because we can stop leader of some partition, and for two nodes it > is impossible to elect new leader, so we get null in > {{InternalTableImpl#enlist}} when we try to get > {{svc.refreshAndGetLeaderWithTerm();}} > The problem can be reproduced in the test > {{ItIgniteNodeRestartTest#testOneNodeRestartWithGap}}, which was muted using > this ticket. -- This message was sent by Atlassian Jira (v8.20.10#820010)