[jira] [Commented] (IGNITE-11620) GridDhtInvalidPartitionException stops the cluster

2019-03-24 Thread Roman Shtykh (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11620?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16800418#comment-16800418
 ] 

Roman Shtykh commented on IGNITE-11620:
---

{noformat}
[ERROR][ttl-cleanup-worker-#39][] Critical system error detected. Will be 
handled accordingly to configured handler [hnd=class 
o.a.i.failure.StopNodeOrHaltFailureHandler, failureCtx=FailureContext 
[type=SYSTEM_WORKER_TERMINATION, err=class 
o.a.i.i.processors.cache.distributed.dht.GridDhtInvalidPartitionException 
[part=814, msg=Adding entry to partition that is concurrently evicted 
[grp=OrderLog1, part=814, shouldBeMoving=, belongs=false, 
topVer=AffinityTopologyVersion [topVer=579, minorTopVer=0], 
curTopVer=AffinityTopologyVersion [topVer=579, minorTopVer=0]
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtInvalidPartitionException:
 Adding entry to partition that is concurrently evicted [grp=OrderLog1, 
part=814, shouldBeMoving=, belongs=false, topVer=AffinityTopologyVersion 
[topVer=579, minorTopVer=0], curTopVer=AffinityTopologyVersion [topVer=579, 
minorTopVer=0]]
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionTopologyImpl.localPartition0(GridDhtPartitionTopologyImpl.java:909)
 ~[ignite-core-2.6.0.jar:2.6.0]
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionTopologyImpl.localPartition(GridDhtPartitionTopologyImpl.java:784)
 ~[ignite-core-2.6.0.jar:2.6.0]
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridCachePartitionedConcurrentMap.localPartition(GridCachePartitionedConcurrentMap.java:69)
 ~[ignite-core-2.6.0.jar:2.6.0]
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridCachePartitionedConcurrentMap.putEntryIfObsoleteOrAbsent(GridCachePartitionedConcurrentMap.java:88)
 ~[ignite-core-2.6.0.jar:2.6.0]
at 
org.apache.ignite.internal.processors.cache.GridCacheAdapter.entryEx(GridCacheAdapter.java:955)
 ~[ignite-core-2.6.0.jar:2.6.0]
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter.entryEx(GridDhtCacheAdapter.java:525)
 ~[ignite-core-2.6.0.jar:2.6.0]
at 
org.apache.ignite.internal.processors.cache.GridCacheAdapter.entryEx(GridCacheAdapter.java:946)
 ~[ignite-core-2.6.0.jar:2.6.0]
at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.expire(IgniteCacheOffheapManagerImpl.java:1049)
 ~[ignite-core-2.6.0.jar:2.6.0]
at 
org.apache.ignite.internal.processors.cache.GridCacheTtlManager.expire(GridCacheTtlManager.java:197)
 ~[ignite-core-2.6.0.jar:2.6.0]
at 
org.apache.ignite.internal.processors.cache.GridCacheSharedTtlCleanupManager$CleanupWorker.body(GridCacheSharedTtlCleanupManager.java:137)
 [ignite-core-2.6.0.jar:2.6.0]
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) 
[ignite-core-2.6.0.jar:2.6.0]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
[ERROR][ttl-cleanup-worker-#39][] JVM will be halted immediately due to the 
failure: [failureCtx=FailureContext [type=SYSTEM_WORKER_TERMINATION, err=class 
o.a.i.i.processors.cache.distributed.dht.GridDhtInvalidPartitionException 
[part=814, msg=Adding entry to partition that is concurrently evicted 
[grp=OrderLog1, part=814, shouldBeMoving=, belongs=false, 
topVer=AffinityTopologyVersion [topVer=579, minorTopVer=0], 
curTopVer=AffinityTopologyVersion [topVer=579, minorTopVer=0]
{noformat}

> GridDhtInvalidPartitionException stops the cluster
> --
>
> Key: IGNITE-11620
> URL: https://issues.apache.org/jira/browse/IGNITE-11620
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.6, 2.7
>Reporter: Roman Shtykh
>Priority: Critical
>
> When injecting data and having it expired at the same time rebalancing occurs,
> *GridDhtInvalidPartitionException* triggers *SYSTEM_WORKER_TERMINATION*.
> This can cause cascading failures in the cluster and take the whole cluster 
> down.
> Simple test case:
> {noformat}
> import org.apache.ignite.IgniteCache;
> import org.apache.ignite.configuration.CacheConfiguration;
> import org.apache.ignite.configuration.IgniteConfiguration;
> import org.apache.ignite.failure.StopNodeOrHaltFailureHandler;
> import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
> import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
> import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
> import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
> import javax.cache.expiry.CreatedExpiryPolicy;
> import javax.cache.expiry.Duration;
> import java.util.concurrent.CountDownLatch;
> import java.util.concurrent.TimeUnit;
> import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
> import static 

[jira] [Created] (IGNITE-11620) GridDhtInvalidPartitionException stops the cluster

2019-03-24 Thread Roman Shtykh (JIRA)
Roman Shtykh created IGNITE-11620:
-

 Summary: GridDhtInvalidPartitionException stops the cluster
 Key: IGNITE-11620
 URL: https://issues.apache.org/jira/browse/IGNITE-11620
 Project: Ignite
  Issue Type: Bug
Affects Versions: 2.7, 2.6
Reporter: Roman Shtykh


When injecting data and having it expired at the same time rebalancing occurs,
*GridDhtInvalidPartitionException* triggers *SYSTEM_WORKER_TERMINATION*.

This can cause cascading failures in the cluster and take the whole cluster 
down.

Simple test case:
{noformat}
import org.apache.ignite.IgniteCache;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.failure.StopNodeOrHaltFailureHandler;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;

import javax.cache.expiry.CreatedExpiryPolicy;
import javax.cache.expiry.Duration;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;

import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
import static org.apache.ignite.cache.CacheMode.PARTITIONED;

/**
 *
 */
public class ExpireWhileRebalanceTest extends GridCommonAbstractTest {
private static final int ENTRIES = 50;

/**
 *
 */
protected static final TcpDiscoveryIpFinder IP_FINDER = new 
TcpDiscoveryVmIpFinder(true);

/**
 * {@inheritDoc}
 */
@Override
protected IgniteConfiguration getConfiguration(String gridName) throws 
Exception {
IgniteConfiguration cfg = super.getConfiguration(gridName);

((TcpDiscoverySpi) cfg.getDiscoverySpi()).setIpFinder(IP_FINDER);

cfg.setFailureHandler(new StopNodeOrHaltFailureHandler());

CacheConfiguration ccfg = new 
CacheConfiguration<>(DEFAULT_CACHE_NAME);

ccfg.setAtomicityMode(ATOMIC);
ccfg.setCacheMode(PARTITIONED);
ccfg.setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(new 
Duration(TimeUnit.SECONDS, 1)));

cfg.setCacheConfiguration(ccfg);

return cfg;
}

/**
 * @throws Exception If failed.
 */
public void testExpireWhileRebalancing() throws Exception {
startGridsMultiThreaded(4);

IgniteCache cache = ignite(0).cache(DEFAULT_CACHE_NAME);

CountDownLatch latch = new CountDownLatch(1);

new Thread(() -> {
for (int i = 1; i <= ENTRIES; i++) {
cache.put(i, i);

if (i % (ENTRIES / 10) == 0)
System.out.println(">>> Entries put: " + i);
}
latch.countDown();
}).start();

// stopping 0 has no effect
stopGrid(3);

awaitPartitionMapExchange();

startGrid(3);

latch.await(10, TimeUnit.SECONDS);
}

/**
 * {@inheritDoc}
 */
@Override
protected void afterTest() throws Exception {
stopAllGrids();
}
}
{noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-11535) AtomicLong cannot be found after creation

2019-03-24 Thread Ivan Rakov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16800178#comment-16800178
 ] 

Ivan Rakov commented on IGNITE-11535:
-

[~slava.koptilin], merged to master.

> AtomicLong cannot be found after creation
> -
>
> Key: IGNITE-11535
> URL: https://issues.apache.org/jira/browse/IGNITE-11535
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.7
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> For now, IgniteAtomics use {{PartitionLossPolicy.IGNORE}}, which is the 
> default value for all caches, (see 
> {{DataStructuresProcessor#cacheConfiguration}}). Therefore, partition loss 
> leads to the fact that information about IgniteAtomic may be lost as well. In 
> that case, any operation with IgniteAtomic results in the following exception:
> {code}
> javax.cache.processor.EntryProcessorException: Failed to find atomic long: 
> atomicLong
> {code}
> {code:java}
> Value: An error occurred while calling o2248.incrementAndGet.
> : class org.apache.ignite.IgniteException: Failed to find atomic long: 
> nodeIdFilter_7
> at 
> org.apache.ignite.internal.processors.datastructures.GridCacheAtomicLongImpl.incrementAndGet(GridCacheAtomicLongImpl.java:105)
> at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
> at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
> at py4j.Gateway.invoke(Gateway.java:282)
> at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
> at py4j.commands.CallCommand.execute(CallCommand.java:79)
> at py4j.GatewayConnection.run(GatewayConnection.java:238)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: javax.cache.processor.EntryProcessorException: Failed to find 
> atomic long: nodeIdFilter_7
> at 
> org.apache.ignite.internal.processors.datastructures.GridCacheAtomicLongImpl$IncrementAndGetProcessor.process(GridCacheAtomicLongImpl.java:525)
> at 
> org.apache.ignite.internal.processors.datastructures.GridCacheAtomicLongImpl$IncrementAndGetProcessor.process(GridCacheAtomicLongImpl.java:512)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.onEntriesLocked(GridDhtTxPrepareFuture.java:424)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.prepare0(GridDhtTxPrepareFuture.java:1237)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.mapIfLocked(GridDhtTxPrepareFuture.java:677)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.prepare(GridDhtTxPrepareFuture.java:1054)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.prepareAsync(GridDhtTxLocal.java:396)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.prepareNearTx(IgniteTxHandler.java:519)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processNearTxPrepareRequest0(IgniteTxHandler.java:150)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processNearTxPrepareRequest(IgniteTxHandler.java:135)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.access$000(IgniteTxHandler.java:97)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$1.apply(IgniteTxHandler.java:177)
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$1.apply(IgniteTxHandler.java:175)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1056)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:581)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:380)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:306)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:101)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:295)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1555)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1183)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:126)
> at 
> 

[jira] [Comment Edited] (IGNITE-11536) Add information about possible long GC pause to checkpoint started message.

2019-03-24 Thread Ivan Rakov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11536?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16800177#comment-16800177
 ] 

Ivan Rakov edited comment on IGNITE-11536 at 3/24/19 9:35 PM:
--

[~antonovsergey93], your PR has conflicts with master. Also a few comments:
1. GridCacheDatabaseSharedManager: new field lacks javadoc
{code:java}
private final LongJVMPauseDetector pauseDetector;
{code}
2. Do we really need to explicitly pass instance of LongJVMPauseDetector to 
every needed grid component? There's only one instance per node anyway - we can 
obtain it via getter from kernal context instead.



was (Author: ivan.glukos):
[~antonovsergey93], your PR has conflicts with master. Also a few comments:
1. GridCacheDatabaseSharedManager: new field 
{code:java}
private final LongJVMPauseDetector pauseDetector;
{code}
2. Do we really need to explicitly pass instance of LongJVMPauseDetector to 
every needed grid component? There's only one instance per node anyway - we can 
obtain it via getter from kernal context instead.


> Add information about possible long GC pause to checkpoint started message.
> ---
>
> Key: IGNITE-11536
> URL: https://issues.apache.org/jira/browse/IGNITE-11536
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Sergey Antonov
>Assignee: Sergey Antonov
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> One of possible reasons long hold of write lock on checkpoint is GC pause. 
> Now you must check logs around on {{Possible too long JVM pause}} message. We 
> should print possible long GC pause time in {{Checkpoint started}} message, 
> if threshold was passed.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-11536) Add information about possible long GC pause to checkpoint started message.

2019-03-24 Thread Ivan Rakov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11536?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16800177#comment-16800177
 ] 

Ivan Rakov commented on IGNITE-11536:
-

[~antonovsergey93], your PR has conflicts with master. Also a few comments:
1. GridCacheDatabaseSharedManager: new field 
{code:java}
private final LongJVMPauseDetector pauseDetector;
{code}
2. Do we really need to explicitly pass instance of LongJVMPauseDetector to 
every needed grid component? There's only one instance per node anyway - we can 
obtain it via getter from kernal context instead.


> Add information about possible long GC pause to checkpoint started message.
> ---
>
> Key: IGNITE-11536
> URL: https://issues.apache.org/jira/browse/IGNITE-11536
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Sergey Antonov
>Assignee: Sergey Antonov
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> One of possible reasons long hold of write lock on checkpoint is GC pause. 
> Now you must check logs around on {{Possible too long JVM pause}} message. We 
> should print possible long GC pause time in {{Checkpoint started}} message, 
> if threshold was passed.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-11617) New exchange coordinator skips client fast reply for previous exchange

2019-03-24 Thread Ivan Rakov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16800174#comment-16800174
 ] 

Ivan Rakov commented on IGNITE-11617:
-

TC looks good: 
https://ci.ignite.apache.org/viewLog.html?buildId=3402534=buildResultsDiv=IgniteTests24Java8_RunAll
Can't get TC bot visa, the fetaure is not working at the moment.
[~agoncharuk], please review.

> New exchange coordinator skips client fast reply for previous exchange
> --
>
> Key: IGNITE-11617
> URL: https://issues.apache.org/jira/browse/IGNITE-11617
> Project: Ignite
>  Issue Type: Bug
>Reporter: Alexey Goncharuk
>Assignee: Ivan Rakov
>Priority: Critical
> Fix For: 2.8
>
> Attachments: ClientFastReplyCoordinatorFailureTest.java
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The following scenario is broken:
> 1) A client joins topology, all server nodes complete client exchange, client 
> delays sending it's single message
> 2) A new node joins topology, next exchange is started
> 3) Coordinator of the new exchange fails
> 4) New coordinator attempts to restore exchange state from all nodes, 
> including client from step 1
> 5) Client send single message. The message should be processed by a 
> fast-reply path because the corresponding exchange is completed. However, 
> this does not happen because this exchange was completed with state {{SRV}} 
> on new coordinator. Fast-reply is omitted and exchange hangs.
> Attached is a test reproducing the problem.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Assigned] (IGNITE-11618) Assertion got removed exception on entry with dht local candidate on transaction timeout

2019-03-24 Thread Alexey Goncharuk (JIRA)


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

Alexey Goncharuk reassigned IGNITE-11618:
-

Assignee: Alexey Goncharuk

> Assertion got removed exception on entry with dht local candidate on 
> transaction timeout
> 
>
> Key: IGNITE-11618
> URL: https://issues.apache.org/jira/browse/IGNITE-11618
> Project: Ignite
>  Issue Type: Bug
>Reporter: Alexey Goncharuk
>Assignee: Alexey Goncharuk
>Priority: Critical
> Fix For: 2.8
>
> Attachments: TxOptimisticSerializableTest.java
>
>
> IGNITE-11171 Did not fix the issue completely. The {{checkReadConflict}} 
> method is called right before {{onEntriesLocked}} and contains the same 
> assertion which may cause node failure.
> Attached test reproduces the problem if the following code is added to the 
> very beginning of the {{checkReadConflict}} method:
> {code}
> U.sleep(ThreadLocalRandom.current().nextInt(200) + 1);
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-11484) Get rid of ForkJoinPool#commonPool usage for system critical tasks

2019-03-24 Thread Ivan Rakov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11484?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16800099#comment-16800099
 ] 

Ivan Rakov commented on IGNITE-11484:
-

Merged to master.

> Get rid of ForkJoinPool#commonPool usage for system critical tasks
> --
>
> Key: IGNITE-11484
> URL: https://issues.apache.org/jira/browse/IGNITE-11484
> Project: Ignite
>  Issue Type: Bug
>Reporter: Ivan Rakov
>Assignee: Ivan Rakov
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> We use ForkJoinPool#commonPool for sorting checkpoint pages.
> This may backfire if common pool is already utilized in current JVM: 
> checkpoint may wait for sorting for a long time, which in turn will cause 
> user load dropdown.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Comment Edited] (IGNITE-11411) Remove tearDown, setUp from JUnit3TestLegacySupport

2019-03-24 Thread Ivan Fedotov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11411?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16800072#comment-16800072
 ] 

Ivan Fedotov edited comment on IGNITE-11411 at 3/24/19 1:53 PM:


[~Pavlukhin] , Thank you for your attention.

I fixed merge conflicts and re-run TC nightly[1]. According to this, there are 
no blockers related to this ticket.
I guess that now ticket is ready for the review again.

By the way, I noticed that your changes in the ticket [2] have an influence on 
beforeTestsStarted(), afterTestsStarted() methods. 
I guess that now when we decided to leave the support of such methods in the 
context of JUnit rules, my ticket about removing of them [3] becomes not 
actual. If you do not mind, I will comment it with a link on your ticket and 
close as "Not a problem".

[1] 
[https://mtcga.gridgain.com/pr.html?serverId=apache=IgniteTests24Java8_RunAllNightly=pull/6227/head=Latest]

[2] https://issues.apache.org/jira/browse/IGNITE-11356 

[3] https://issues.apache.org/jira/browse/IGNITE-11413

 


was (Author: ivanan.fed):
[~Pavlukhin] , Thank you for your attention.

I fixed merge conflicts and re-run TC nightly[1]. According to this, there are 
no blockers related to this ticket.
I guess that now ticket is ready for the review again.

By the way, I noticed that your changes in the ticket [2] have an influence on 
beforeTestsStarted(), afterTestsStarted() methods. 
I guess that now when we decided to leave the support of such methods in the 
context of JUnit rules, my ticket about removing of them [3] becomes not 
actual. If you do not mind, I will comment it with a link on your ticket and 
close as "Not a problem".

[1] 
[https://mtcga.gridgain.com/pr.html?serverId=apache=IgniteTests24Java8_RunAllNightly=pull/6227/head=Latest]

[2]https://issues.apache.org/jira/browse/IGNITE-11356

[3] https://issues.apache.org/jira/browse/IGNITE-11413

 

> Remove tearDown, setUp from JUnit3TestLegacySupport
> ---
>
> Key: IGNITE-11411
> URL: https://issues.apache.org/jira/browse/IGNITE-11411
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Ivan Fedotov
>Assignee: Ivan Fedotov
>Priority: Major
>  Labels: iep-30
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> TearDown and setUp methods are deprecated for JUnit 4+ version. It is 
> necessary to replace them with appropriate methods, marked by @Before and 
> @After annotations.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Comment Edited] (IGNITE-11411) Remove tearDown, setUp from JUnit3TestLegacySupport

2019-03-24 Thread Ivan Fedotov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11411?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16800072#comment-16800072
 ] 

Ivan Fedotov edited comment on IGNITE-11411 at 3/24/19 1:53 PM:


[~Pavlukhin] , Thank you for your attention.

I fixed merge conflicts and re-run TC nightly[1]. According to this, there are 
no blockers related to this ticket.
I guess that now ticket is ready for the review again.

By the way, I noticed that your changes in the ticket [2] have an influence on 
beforeTestsStarted(), afterTestsStarted() methods. 
I guess that now when we decided to leave the support of such methods in the 
context of JUnit rules, my ticket about removing of them [3] becomes not 
actual. If you do not mind, I will comment it with a link on your ticket and 
close as "Not a problem".

[1] 
[https://mtcga.gridgain.com/pr.html?serverId=apache=IgniteTests24Java8_RunAllNightly=pull/6227/head=Latest]

[2]https://issues.apache.org/jira/browse/IGNITE-11356

[3] https://issues.apache.org/jira/browse/IGNITE-11413

 


was (Author: ivanan.fed):
[~Pavlukhin] , Thank you for your attention.

I fixed merge conflicts and re-run TC nightly[1]. According to this, there are 
no blockers related to this ticket.
I guess that now ticket is ready for the review again.

By the way, I noticed that your changes in the ticket [2] have an influence on 
beforeTestsStarted(), afterTestsStarted() methods. 
I guess that now when we decided to leave the support of such methods in the 
context of JUnit rules, my ticket about removing of them [3] becomes not 
actual. If you do not mind, I will comment it with a link on your ticket and 
close as "Not a problem".

[1] 
[https://mtcga.gridgain.com/pr.html?serverId=apache=IgniteTests24Java8_RunAllNightly=pull/6227/head=Latest]

[2]https://issues.apache.org/jira/browse/IGNITE-11356


 [3] https://issues.apache.org/jira/browse/IGNITE-11413

 

> Remove tearDown, setUp from JUnit3TestLegacySupport
> ---
>
> Key: IGNITE-11411
> URL: https://issues.apache.org/jira/browse/IGNITE-11411
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Ivan Fedotov
>Assignee: Ivan Fedotov
>Priority: Major
>  Labels: iep-30
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> TearDown and setUp methods are deprecated for JUnit 4+ version. It is 
> necessary to replace them with appropriate methods, marked by @Before and 
> @After annotations.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Comment Edited] (IGNITE-11411) Remove tearDown, setUp from JUnit3TestLegacySupport

2019-03-24 Thread Ivan Fedotov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11411?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16800072#comment-16800072
 ] 

Ivan Fedotov edited comment on IGNITE-11411 at 3/24/19 1:52 PM:


[~Pavlukhin] , Thank you for your attention.

I fixed merge conflicts and re-run TC nightly[1]. According to this, there are 
no blockers related to this ticket.
I guess that now ticket is ready for the review again.

By the way, I noticed that your changes in the ticket [2] have an influence on 
beforeTestsStarted(), afterTestsStarted() methods. 
I guess that now when we decided to leave the support of such methods in the 
context of JUnit rules, my ticket about removing of them [3] becomes not 
actual. If you do not mind, I will comment it with a link on your ticket and 
close as "Not a problem".

[1] 
[https://mtcga.gridgain.com/pr.html?serverId=apache=IgniteTests24Java8_RunAllNightly=pull/6227/head=Latest]

[2]https://issues.apache.org/jira/browse/IGNITE-11356


 [3] https://issues.apache.org/jira/browse/IGNITE-11413

 


was (Author: ivanan.fed):
[~Pavlukhin] , Thank you for your attention.

I fixed merge conflicts and re-run TC nightly[1]. According to this, there are 
no blockers related to this ticket.
I guess that now ticket is ready for the review again.

By the way, I noticed that your changes in the ticket [2] have an influence on 
beforeTestsStarted(), afterTestsStarted() methods. 
I guess that now when we decided to leave the support of such methods in the 
context of JUnit rules, my ticket about removing of them [3] becomes not 
actual. If you do not mind, I will comment it with a link on your ticket and 
close as "Not a problem".

[1] 
[https://mtcga.gridgain.com/pr.html?serverId=apache=IgniteTests24Java8_RunAllNightly=pull/6227/head=Latest]

[2]https://issues.apache.org/jira/browse/IGNITE-11356
[3] https://issues.apache.org/jira/browse/IGNITE-11413

 

> Remove tearDown, setUp from JUnit3TestLegacySupport
> ---
>
> Key: IGNITE-11411
> URL: https://issues.apache.org/jira/browse/IGNITE-11411
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Ivan Fedotov
>Assignee: Ivan Fedotov
>Priority: Major
>  Labels: iep-30
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> TearDown and setUp methods are deprecated for JUnit 4+ version. It is 
> necessary to replace them with appropriate methods, marked by @Before and 
> @After annotations.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-11411) Remove tearDown, setUp from JUnit3TestLegacySupport

2019-03-24 Thread Ivan Fedotov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11411?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16800072#comment-16800072
 ] 

Ivan Fedotov commented on IGNITE-11411:
---

[~Pavlukhin] , Thank you for your attention.

I fixed merge conflicts and re-run TC nightly[1]. According to this, there are 
no blockers related to this ticket.
I guess that now ticket is ready for the review again.

By the way, I noticed that your changes in the ticket [2] have an influence on 
beforeTestsStarted(), afterTestsStarted() methods. 
I guess that now when we decided to leave the support of such methods in the 
context of JUnit rules, my ticket about removing of them [3] becomes not 
actual. If you do not mind, I will comment it with a link on your ticket and 
close as "Not a problem".

[1] 
[https://mtcga.gridgain.com/pr.html?serverId=apache=IgniteTests24Java8_RunAllNightly=pull/6227/head=Latest]

[2]https://issues.apache.org/jira/browse/IGNITE-11356
[3] https://issues.apache.org/jira/browse/IGNITE-11413

 

> Remove tearDown, setUp from JUnit3TestLegacySupport
> ---
>
> Key: IGNITE-11411
> URL: https://issues.apache.org/jira/browse/IGNITE-11411
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Ivan Fedotov
>Assignee: Ivan Fedotov
>Priority: Major
>  Labels: iep-30
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> TearDown and setUp methods are deprecated for JUnit 4+ version. It is 
> necessary to replace them with appropriate methods, marked by @Before and 
> @After annotations.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-11471) JDBC: Thin driver should start with a random server to connect

2019-03-24 Thread Ivan Pavlukhin (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16800030#comment-16800030
 ] 

Ivan Pavlukhin commented on IGNITE-11471:
-

[~ibelyakov], [~vozerov], please pay attention that line (from patch) in method 
{{JdbcThinTcpIo#nextServerIndex}}
{code}
return (int)(abs(nextIdx) % len);
{code}
can still return negative number because {{Math.abs}} returns 
{{Long.MIN_VALUE}} if {{Long.MIN_VALUE}} is passed as argument and {{%}} 
operators preserves a sign of a _dividend_ ({{-1 % 2 == -1}}).

> JDBC: Thin driver should start with a random server to connect
> --
>
> Key: IGNITE-11471
> URL: https://issues.apache.org/jira/browse/IGNITE-11471
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc
>Reporter: Stanislav Lukyanov
>Assignee: Igor Belyakov
>Priority: Major
>  Labels: newbie
> Fix For: 2.8
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Thin JDBC driver uses a list of server addresses to connect to. Connections 
> created in a single JVM will use round-robin to choose the server to connect, 
> yielding a uniform distribution. However, the round-robin always starts from 
> the first server in the list. It means that multiple JVMs with the same JDBC 
> connection URL and one connection each will all connect to the same server.
> Need to choose the first server randomly to have a better distribution.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (IGNITE-11619) Misleading Javadoc for IgniteConfiguration.setMetricsExpireTime

2019-03-24 Thread Moti Nisenson-Ken (JIRA)
Moti Nisenson-Ken created IGNITE-11619:
--

 Summary: Misleading Javadoc for 
IgniteConfiguration.setMetricsExpireTime
 Key: IGNITE-11619
 URL: https://issues.apache.org/jira/browse/IGNITE-11619
 Project: Ignite
  Issue Type: Bug
Affects Versions: 2.7, 2.4
Reporter: Moti Nisenson-Ken


The javadoc reads:

  * Sets time in milliseconds after which a certain metric value is considered 
expired.

     * If not set explicitly, then default value is \{@code 600,000} 
milliseconds (10 minutes).

     *

     * @param metricsExpTime The metricsExpTime to set.

     * @see #DFLT_METRICS_EXPIRE_TIME

     * @return \{@code this} for chaining.

 

Note that DFLT_METRICS_EXPIRE_TIME is:

  /**

     * Default metrics expire time. The value is {@link Long#MAX_VALUE} which

     * means that metrics never expire.

     */



I haven't verified which versions are impacted - it has likely been present for 
a very long time (at least since 2.4, perhaps much longer)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Assigned] (IGNITE-11617) New exchange coordinator skips client fast reply for previous exchange

2019-03-24 Thread Ivan Rakov (JIRA)


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

Ivan Rakov reassigned IGNITE-11617:
---

Assignee: Ivan Rakov

> New exchange coordinator skips client fast reply for previous exchange
> --
>
> Key: IGNITE-11617
> URL: https://issues.apache.org/jira/browse/IGNITE-11617
> Project: Ignite
>  Issue Type: Bug
>Reporter: Alexey Goncharuk
>Assignee: Ivan Rakov
>Priority: Critical
> Fix For: 2.8
>
> Attachments: ClientFastReplyCoordinatorFailureTest.java
>
>
> The following scenario is broken:
> 1) A client joins topology, all server nodes complete client exchange, client 
> delays sending it's single message
> 2) A new node joins topology, next exchange is started
> 3) Coordinator of the new exchange fails
> 4) New coordinator attempts to restore exchange state from all nodes, 
> including client from step 1
> 5) Client send single message. The message should be processed by a 
> fast-reply path because the corresponding exchange is completed. However, 
> this does not happen because this exchange was completed with state {{SRV}} 
> on new coordinator. Fast-reply is omitted and exchange hangs.
> Attached is a test reproducing the problem.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-11568) Change afterTest() annotation in TcpDiscoveryFailedJoinTest

2019-03-24 Thread Eduard Shangareev (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11568?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16799979#comment-16799979
 ] 

Eduard Shangareev commented on IGNITE-11568:


 Looks good. Thank you for contribution.

> Change afterTest() annotation in TcpDiscoveryFailedJoinTest
> ---
>
> Key: IGNITE-11568
> URL: https://issues.apache.org/jira/browse/IGNITE-11568
> Project: Ignite
>  Issue Type: Bug
>Reporter: Ivan Fedotov
>Assignee: Ivan Fedotov
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> afterTest() method in TcpDiscoveryFailedJoinTest is overridden and annotated 
> by after. Meanwhile, it is under prohibition because afterTest will be 
> executed after test anyway (see JUnit3TestLegacySupport and 
> beforeTest/afterTest usage in GridAbstractTest for more details).
>  
> So, it is necessary to change after annotation on override.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)