[
https://issues.apache.org/jira/browse/IGNITE-7648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16742056#comment-16742056
]
Alexei Scherbakov commented on IGNITE-7648:
-------------------------------------------
[~voropava],
I have concerns about your recent changes in the branch.
# Removing waiting logic in handling socket exception seems wrong because it
detracts main idea of the fix - try to establish connection with exact respect
to user defined reconnect and timeout properties. If failure detection is set
equal to 10 seconds TCP client have to try no less than 10 seconds. Consider
the case when connection cannot be established due to short network issue and
connect fails immediately and reconnect count is small. In such case defined
failure detection will not be respected and destination node will be failed
false positively. This is why the IGNITE_ENABLE_FORCIBLE_NODE_KILL was
introduced in the first time, see IGNITE-5718. I suggest to return waiting
logic and undo wrong test condition in TcpCommunicationSpiFaultyClientTest and
make sure it works in all cases in the described way.
# handshakeTimeoutException should contain suppressed IOException if it's
happened after timeout in *safeTcpHandshake*.
# Please remove all explicit timeout overrides from tests, on example from
o.a.i.i.processors.cache.index.SchemaExchangeSelfTest#startNoCache(int,
boolean) and make sure everything works without them.
# We should somehow address the scenario described early by [~ilyak]. What if
node stays isolated by the communication but fully accessible by discovery ? In
such case all other nodes will be failed, but this is wrong. Only minority of
nodes must be failed. I think it's necessary to extend
org.apache.ignite.spi.IgniteSpiContext#resolveCommunicationFailure for TCP
discovery. Probably this should be done as separate ticket.
> Fix IGNITE_ENABLE_FORCIBLE_NODE_KILL system property.
> -----------------------------------------------------
>
> Key: IGNITE-7648
> URL: https://issues.apache.org/jira/browse/IGNITE-7648
> Project: Ignite
> Issue Type: Improvement
> Affects Versions: 2.3
> Reporter: Alexei Scherbakov
> Assignee: Alexei Scherbakov
> Priority: Major
> Fix For: 2.8
>
>
> IGNITE_ENABLE_FORCIBLE_NODE_KILL system property was introduced in
> IGNITE-5718 as a way to prevent unnecessary node drops in case of short
> network problems.
> I suppose it's wrong decision to fix it in such way.
> We had faced some issues in our production due to lack of automatic kicking
> of ill-behaving nodes (on example, hanging due to long GC pauses) until we
> realised the necessity of changing default behavior via property.
> Right solution is to kick nodes only if failure threshold is reached. Such
> behavior should be always enabled.
> UPDATE: During a discussion it was decided what the property will remain
> disabled by default.
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)