[
https://issues.apache.org/jira/browse/IGNITE-4491?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vladislav Pyatkov updated IGNITE-4491:
--------------------------------------
Description:
Reproduction steps:
1) Start nodes:
{noformat}
DC1 DC2
1 (10.116.172.1) 8 (10.116.64.11)
2 (10.116.172.2) 7 (10.116.64.12)
3 (10.116.172.3) 6 (10.116.64.13)
4 (10.116.172.4) 5 (10.116.64.14)
{noformat}
Only at one node have a client 10.116.172.3. Attachments:
2) Drop connection
Between 2-8,
{noformat}
2 (10.116.172.2) 8 (10.116.64.11)
{noformat}
Drop all input and output traffic
Invoke from 10.116.172.2
{code}
iptables -A INPUT -s 10.116.64.11 -j DROP
iptables -A OUTPUT -d 10.116.64.11 -j DROP
{code}
Between 4-6
{noformat}
4 (10.116.172.4) 6 (10.116.64.13)
{noformat}
Invoke from 10.116.172.4
{code}
iptables -A INPUT -s 10.116.64.13 -j DROP
iptables -A OUTPUT -d 10.116.64.13 -j DROP
{code}
3) All client transaction have stopped due to lock on several keys.
At a client log I saw a message about long running operation (by some reason
timeout did not work there):
{noformat}
2017-01-24 13:51:52 WARN GridCachePartitionExchangeManager:480 - Found long
running cache future [startTime=13:50:26.076, curTime=13:51:52.589,
fut=GridNearTxFinishFuture
[futId=05d4910d951-40022b05-4d4c-4d5d-a05e-e20bcd4ba0bf, tx=GridNearTxLocal...
{noformat}
At a server log I saw some exception at "prepare" phase:
{noformat}
2017-01-24 13:50:36 ERROR IgniteTxHandler:495 - Failed to prepare DHT
transaction: GridDhtTxLocal...
at
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture$PrepareTimeoutObject.onTimeout(GridDhtTxPrepareFuture.java:1806)
at
org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor$TimeoutWorker.body(GridTimeoutProcessor.java:159)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
at java.lang.Thread.run(Thread.java:745)
{noformat}
was:
Reproduction steps:
1) Start nodes:
{noformat}
DC1 DC2
1 (10.116.172.1) 8 (10.116.64.11)
2 (10.116.172.2) 7 (10.116.64.12)
3 (10.116.172.3) 6 (10.116.64.13)
4 (10.116.172.4) 5 (10.116.64.14)
{noformat}
each node have client which run in same host with server (look source in
attachment).
2) Drop connection
Between 1-8,
{noformat}
1 (10.116.172.1) 8 (10.116.64.11)
{noformat}
Drop all input and output traffic
Invoke from 10.116.172.1
{code}
iptables -A INPUT -s 10.116.64.11 -j DROP
iptables -A OUTPUT -d 10.116.64.11 -j DROP
{code}
Between 4-5
{noformat}
4 (10.116.172.4) 5 (10.116.64.14)
{noformat}
Invoke from 10.116.172.4
{code}
iptables -A INPUT -s 10.116.64.14 -j DROP
iptables -A OUTPUT -d 10.116.64.14 -j DROP
{code}
3) Stop the grid, after several seconds
If you are looking into logs, you can find which nodes 1(10.116.172.1) and
5(10.116.64.14) were segmented and stopped according to policy (pay attention,
which clients did not segmented), after drop traffic:
{noformat}
[12:04:33,914][INFO][disco-event-worker-#211%null%][GridDiscoveryManager]
Topology snapshot [ver=18, servers=6, clients=8, CPUs=456, heap=68.0GB]
{noformat}
And all operations stopped at the same time.
> Commutation loss between two nodes leads to hang whole cluster
> --------------------------------------------------------------
>
> Key: IGNITE-4491
> URL: https://issues.apache.org/jira/browse/IGNITE-4491
> Project: Ignite
> Issue Type: Bug
> Affects Versions: 1.8
> Reporter: Vladislav Pyatkov
> Priority: Critical
> Attachments: Segmentation.7z
>
>
> Reproduction steps:
> 1) Start nodes:
> {noformat}
> DC1 DC2
> 1 (10.116.172.1) 8 (10.116.64.11)
> 2 (10.116.172.2) 7 (10.116.64.12)
> 3 (10.116.172.3) 6 (10.116.64.13)
> 4 (10.116.172.4) 5 (10.116.64.14)
> {noformat}
> Only at one node have a client 10.116.172.3. Attachments:
> 2) Drop connection
> Between 2-8,
> {noformat}
> 2 (10.116.172.2) 8 (10.116.64.11)
> {noformat}
> Drop all input and output traffic
> Invoke from 10.116.172.2
> {code}
> iptables -A INPUT -s 10.116.64.11 -j DROP
> iptables -A OUTPUT -d 10.116.64.11 -j DROP
> {code}
> Between 4-6
> {noformat}
> 4 (10.116.172.4) 6 (10.116.64.13)
> {noformat}
> Invoke from 10.116.172.4
> {code}
> iptables -A INPUT -s 10.116.64.13 -j DROP
> iptables -A OUTPUT -d 10.116.64.13 -j DROP
> {code}
> 3) All client transaction have stopped due to lock on several keys.
> At a client log I saw a message about long running operation (by some reason
> timeout did not work there):
> {noformat}
> 2017-01-24 13:51:52 WARN GridCachePartitionExchangeManager:480 - Found long
> running cache future [startTime=13:50:26.076, curTime=13:51:52.589,
> fut=GridNearTxFinishFuture
> [futId=05d4910d951-40022b05-4d4c-4d5d-a05e-e20bcd4ba0bf, tx=GridNearTxLocal...
> {noformat}
> At a server log I saw some exception at "prepare" phase:
> {noformat}
> 2017-01-24 13:50:36 ERROR IgniteTxHandler:495 - Failed to prepare DHT
> transaction: GridDhtTxLocal...
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture$PrepareTimeoutObject.onTimeout(GridDhtTxPrepareFuture.java:1806)
> at
> org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor$TimeoutWorker.body(GridTimeoutProcessor.java:159)
> at
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
> at java.lang.Thread.run(Thread.java:745)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)