[jira] [Commented] (IGNITE-12761) Add ability to disable check crc sums of stored pages due to invalidate_indexes.

2020-03-11 Thread Ignite TC Bot (Jira)


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

Ignite TC Bot commented on IGNITE-12761:


{panel:title=Branch: [pull/7517/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
[TeamCity *-- Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=5119929buildTypeId=IgniteTests24Java8_RunAll]

> Add ability to disable check crc sums of stored pages due to 
> invalidate_indexes.
> 
>
> Key: IGNITE-12761
> URL: https://issues.apache.org/jira/browse/IGNITE-12761
> Project: Ignite
>  Issue Type: Bug
>Reporter: Philipp Masharov
>Assignee: Philipp Masharov
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Add additional param to validate_indexes command
> org.apache.ignite.internal.commandline.cache.CacheSubcommands#VALIDATE_INDEXES*like
>  here: 
> org.apache.ignite.internal.commandline.cache.argument.IdleVerifyCommandArg#CHECK_CRC
> now by default this check is always enabled, need to be configurable like the 
> same one in IdleVerifyCommandArg



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-12774) Transaction hangs after too many open files NIO exception

2020-03-11 Thread Sergey Antonov (Jira)


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

Sergey Antonov commented on IGNITE-12774:
-

[~akalashnikov] Could you review my changes please?

> Transaction hangs after too many open files NIO exception
> -
>
> Key: IGNITE-12774
> URL: https://issues.apache.org/jira/browse/IGNITE-12774
> Project: Ignite
>  Issue Type: Bug
>Reporter: Sergey Antonov
>Assignee: Sergey Antonov
>Priority: Major
> Fix For: 2.9
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Transaction hung after “Open too many files” error and never been finished.
> {code:java}
> import java.net.SocketException;
> import java.util.concurrent.atomic.AtomicBoolean;
> import org.apache.ignite.cluster.ClusterNode;
> import org.apache.ignite.configuration.CacheConfiguration;
> import org.apache.ignite.configuration.IgniteConfiguration;
> import org.apache.ignite.failure.StopNodeOrHaltFailureHandler;
> import org.apache.ignite.internal.IgniteEx;
> import org.apache.ignite.lang.IgniteInClosure;
> import org.apache.ignite.plugin.extensions.communication.Message;
> import org.apache.ignite.spi.IgniteSpiException;
> import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
> import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
> import org.apache.ignite.transactions.Transaction;
> import org.apache.ignite.transactions.TransactionConcurrency;
> import org.apache.ignite.transactions.TransactionIsolation;
> import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
> import static org.apache.ignite.cache.CacheMode.PARTITIONED;
> public class TooManyOpenFilesTest extends GridCommonAbstractTest {
> @Override protected IgniteConfiguration getConfiguration(String 
> igniteInstanceName) throws Exception {
> return super.getConfiguration(igniteInstanceName)
> .setFailureHandler(new StopNodeOrHaltFailureHandler())
> .setCommunicationSpi(new TooManyOpenFilesTcpCommunicationSpi())
> .setConsistentId(igniteInstanceName);
> }
> @Override protected void beforeTest() throws Exception {
> super.beforeTest();
> stopAllGrids();
> cleanPersistenceDir();
> }
> @Override protected void afterTest() throws Exception {
> stopAllGrids();
> cleanPersistenceDir();
> super.afterTest();
> }
> public void test() throws Exception {
> IgniteEx crd = startGrids(3);
> crd.cluster().active(true);
> crd.getOrCreateCache(new 
> CacheConfiguration<>().setName(DEFAULT_CACHE_NAME).setAtomicityMode(TRANSACTIONAL).setBackups(1).setCacheMode(PARTITIONED));
> TooManyOpenFilesTcpCommunicationSpi spi = 
> (TooManyOpenFilesTcpCommunicationSpi)grid(2).context().config().getCommunicationSpi();
> try (Transaction tx = 
> grid(1).transactions().txStart(TransactionConcurrency.PESSIMISTIC, 
> TransactionIsolation.REPEATABLE_READ)) {
> IgniteCache cache = 
> grid(1).cache(DEFAULT_CACHE_NAME);
> cache.put(1, 1);
> spi.throwException.set(true);
> cache.put(2, 2);
> cache.put(3, 2);
> cache.put(4, 2);
> // hungs here.
> tx.commit();
> }
> for (int i=0; i < 3 ; i++) {
> assertEquals(1, grid(i).cache(DEFAULT_CACHE_NAME).get(1));
> assertEquals(2, grid(i).cache(DEFAULT_CACHE_NAME).get(2));
> }
> }
> private static class TooManyOpenFilesTcpCommunicationSpi extends 
> TcpCommunicationSpi {
> private final AtomicBoolean throwException = new AtomicBoolean();
> /** {@inheritDoc} */
> @Override public void sendMessage(ClusterNode node, Message msg) 
> throws IgniteSpiException {
> if (throwException.get())
> throw getException(node);
> super.sendMessage(node, msg);
> }
> /** {@inheritDoc} */
> @Override public void sendMessage(
> ClusterNode node,
> Message msg,
> IgniteInClosure ackC
> ) throws IgniteSpiException {
> if (throwException.get())
> throw getException(node);
> super.sendMessage(node, msg, ackC);
> }
> private IgniteSpiException getException(ClusterNode node) {
> String checkedExceptionMsg =  "Failed to connect to node (is node 
> still alive?). " +
> "Make sure that each ComputeTask and cache Transaction has a 
> timeout set " +
> "in order to prevent parties from waiting forever in case of 
> network issues " +
> "[nodeId=" + node.id() + ", addrs=null]";
> return new 

[jira] [Commented] (IGNITE-12774) Transaction hangs after too many open files NIO exception

2020-03-11 Thread Ignite TC Bot (Jira)


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

Ignite TC Bot commented on IGNITE-12774:


{panel:title=Branch: [pull/7516/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
[TeamCity *-- Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=5119807buildTypeId=IgniteTests24Java8_RunAll]

> Transaction hangs after too many open files NIO exception
> -
>
> Key: IGNITE-12774
> URL: https://issues.apache.org/jira/browse/IGNITE-12774
> Project: Ignite
>  Issue Type: Bug
>Reporter: Sergey Antonov
>Assignee: Sergey Antonov
>Priority: Major
> Fix For: 2.9
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Transaction hung after “Open too many files” error and never been finished.
> {code:java}
> import java.net.SocketException;
> import java.util.concurrent.atomic.AtomicBoolean;
> import org.apache.ignite.cluster.ClusterNode;
> import org.apache.ignite.configuration.CacheConfiguration;
> import org.apache.ignite.configuration.IgniteConfiguration;
> import org.apache.ignite.failure.StopNodeOrHaltFailureHandler;
> import org.apache.ignite.internal.IgniteEx;
> import org.apache.ignite.lang.IgniteInClosure;
> import org.apache.ignite.plugin.extensions.communication.Message;
> import org.apache.ignite.spi.IgniteSpiException;
> import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
> import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
> import org.apache.ignite.transactions.Transaction;
> import org.apache.ignite.transactions.TransactionConcurrency;
> import org.apache.ignite.transactions.TransactionIsolation;
> import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
> import static org.apache.ignite.cache.CacheMode.PARTITIONED;
> public class TooManyOpenFilesTest extends GridCommonAbstractTest {
> @Override protected IgniteConfiguration getConfiguration(String 
> igniteInstanceName) throws Exception {
> return super.getConfiguration(igniteInstanceName)
> .setFailureHandler(new StopNodeOrHaltFailureHandler())
> .setCommunicationSpi(new TooManyOpenFilesTcpCommunicationSpi())
> .setConsistentId(igniteInstanceName);
> }
> @Override protected void beforeTest() throws Exception {
> super.beforeTest();
> stopAllGrids();
> cleanPersistenceDir();
> }
> @Override protected void afterTest() throws Exception {
> stopAllGrids();
> cleanPersistenceDir();
> super.afterTest();
> }
> public void test() throws Exception {
> IgniteEx crd = startGrids(3);
> crd.cluster().active(true);
> crd.getOrCreateCache(new 
> CacheConfiguration<>().setName(DEFAULT_CACHE_NAME).setAtomicityMode(TRANSACTIONAL).setBackups(1).setCacheMode(PARTITIONED));
> TooManyOpenFilesTcpCommunicationSpi spi = 
> (TooManyOpenFilesTcpCommunicationSpi)grid(2).context().config().getCommunicationSpi();
> try (Transaction tx = 
> grid(1).transactions().txStart(TransactionConcurrency.PESSIMISTIC, 
> TransactionIsolation.REPEATABLE_READ)) {
> IgniteCache cache = 
> grid(1).cache(DEFAULT_CACHE_NAME);
> cache.put(1, 1);
> spi.throwException.set(true);
> cache.put(2, 2);
> cache.put(3, 2);
> cache.put(4, 2);
> // hungs here.
> tx.commit();
> }
> for (int i=0; i < 3 ; i++) {
> assertEquals(1, grid(i).cache(DEFAULT_CACHE_NAME).get(1));
> assertEquals(2, grid(i).cache(DEFAULT_CACHE_NAME).get(2));
> }
> }
> private static class TooManyOpenFilesTcpCommunicationSpi extends 
> TcpCommunicationSpi {
> private final AtomicBoolean throwException = new AtomicBoolean();
> /** {@inheritDoc} */
> @Override public void sendMessage(ClusterNode node, Message msg) 
> throws IgniteSpiException {
> if (throwException.get())
> throw getException(node);
> super.sendMessage(node, msg);
> }
> /** {@inheritDoc} */
> @Override public void sendMessage(
> ClusterNode node,
> Message msg,
> IgniteInClosure ackC
> ) throws IgniteSpiException {
> if (throwException.get())
> throw getException(node);
> super.sendMessage(node, msg, ackC);
> }
> private IgniteSpiException getException(ClusterNode node) {
> String checkedExceptionMsg =  "Failed to connect to node (is node 
> still alive?). " +
> "Make sure that each ComputeTask and cache Transaction has a 
> 

[jira] [Created] (IGNITE-12775) Update URLs and other content on Ignite downloads page

2020-03-11 Thread Denis A. Magda (Jira)
Denis A. Magda created IGNITE-12775:
---

 Summary: Update URLs and other content on Ignite downloads page
 Key: IGNITE-12775
 URL: https://issues.apache.org/jira/browse/IGNITE-12775
 Project: Ignite
  Issue Type: Task
Reporter: Denis A. Magda
 Fix For: 2.8.1


As per ASF INFRA advise/request, the downloads page needs to be adjusted this 
way:
* PGP/SHA512 stuff should refer to downloads.apache.org instead of 
www.apache.org/dist/ 
* I could not find a link to the KEYS file.
* The page links to NIGHTLY builds; these must not be promoted to the
general public
* the page does not describe how to verify downloads, and only
mentions verification for binary downloads. Users should be urged to
verify all downloads.
* the 'pgp' link for apache-ignite-fabric-2.4.0-bin.zip points to the
zip file, likewise for apache-ignite-fabric-2.3.0-bin.zip
* apache-ignite-1.3.0-src.zip and earlier are incubating releases,
however the link text does not make this clear.
* the docker and cloud image links don't have sigs or hashes



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-12774) Transaction hangs after too many open files NIO exception

2020-03-11 Thread Sergey Antonov (Jira)


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

Sergey Antonov updated IGNITE-12774:

Fix Version/s: 2.9

> Transaction hangs after too many open files NIO exception
> -
>
> Key: IGNITE-12774
> URL: https://issues.apache.org/jira/browse/IGNITE-12774
> Project: Ignite
>  Issue Type: Bug
>Reporter: Sergey Antonov
>Assignee: Sergey Antonov
>Priority: Major
> Fix For: 2.9
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Transaction hung after “Open too many files” error and never been finished.
> {code:java}
> import java.net.SocketException;
> import java.util.concurrent.atomic.AtomicBoolean;
> import org.apache.ignite.cluster.ClusterNode;
> import org.apache.ignite.configuration.CacheConfiguration;
> import org.apache.ignite.configuration.IgniteConfiguration;
> import org.apache.ignite.failure.StopNodeOrHaltFailureHandler;
> import org.apache.ignite.internal.IgniteEx;
> import org.apache.ignite.lang.IgniteInClosure;
> import org.apache.ignite.plugin.extensions.communication.Message;
> import org.apache.ignite.spi.IgniteSpiException;
> import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
> import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
> import org.apache.ignite.transactions.Transaction;
> import org.apache.ignite.transactions.TransactionConcurrency;
> import org.apache.ignite.transactions.TransactionIsolation;
> import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
> import static org.apache.ignite.cache.CacheMode.PARTITIONED;
> public class TooManyOpenFilesTest extends GridCommonAbstractTest {
> @Override protected IgniteConfiguration getConfiguration(String 
> igniteInstanceName) throws Exception {
> return super.getConfiguration(igniteInstanceName)
> .setFailureHandler(new StopNodeOrHaltFailureHandler())
> .setCommunicationSpi(new TooManyOpenFilesTcpCommunicationSpi())
> .setConsistentId(igniteInstanceName);
> }
> @Override protected void beforeTest() throws Exception {
> super.beforeTest();
> stopAllGrids();
> cleanPersistenceDir();
> }
> @Override protected void afterTest() throws Exception {
> stopAllGrids();
> cleanPersistenceDir();
> super.afterTest();
> }
> public void test() throws Exception {
> IgniteEx crd = startGrids(3);
> crd.cluster().active(true);
> crd.getOrCreateCache(new 
> CacheConfiguration<>().setName(DEFAULT_CACHE_NAME).setAtomicityMode(TRANSACTIONAL).setBackups(1).setCacheMode(PARTITIONED));
> TooManyOpenFilesTcpCommunicationSpi spi = 
> (TooManyOpenFilesTcpCommunicationSpi)grid(2).context().config().getCommunicationSpi();
> try (Transaction tx = 
> grid(1).transactions().txStart(TransactionConcurrency.PESSIMISTIC, 
> TransactionIsolation.REPEATABLE_READ)) {
> IgniteCache cache = 
> grid(1).cache(DEFAULT_CACHE_NAME);
> cache.put(1, 1);
> spi.throwException.set(true);
> cache.put(2, 2);
> cache.put(3, 2);
> cache.put(4, 2);
> // hungs here.
> tx.commit();
> }
> for (int i=0; i < 3 ; i++) {
> assertEquals(1, grid(i).cache(DEFAULT_CACHE_NAME).get(1));
> assertEquals(2, grid(i).cache(DEFAULT_CACHE_NAME).get(2));
> }
> }
> private static class TooManyOpenFilesTcpCommunicationSpi extends 
> TcpCommunicationSpi {
> private final AtomicBoolean throwException = new AtomicBoolean();
> /** {@inheritDoc} */
> @Override public void sendMessage(ClusterNode node, Message msg) 
> throws IgniteSpiException {
> if (throwException.get())
> throw getException(node);
> super.sendMessage(node, msg);
> }
> /** {@inheritDoc} */
> @Override public void sendMessage(
> ClusterNode node,
> Message msg,
> IgniteInClosure ackC
> ) throws IgniteSpiException {
> if (throwException.get())
> throw getException(node);
> super.sendMessage(node, msg, ackC);
> }
> private IgniteSpiException getException(ClusterNode node) {
> String checkedExceptionMsg =  "Failed to connect to node (is node 
> still alive?). " +
> "Make sure that each ComputeTask and cache Transaction has a 
> timeout set " +
> "in order to prevent parties from waiting forever in case of 
> network issues " +
> "[nodeId=" + node.id() + ", addrs=null]";
> return new IgniteSpiException("Failed to send message to remote 
> node: " + node.id(), new 

[jira] [Updated] (IGNITE-12774) Transaction hangs after too many open files NIO exception

2020-03-11 Thread Sergey Antonov (Jira)


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

Sergey Antonov updated IGNITE-12774:

Ignite Flags: Release Notes Required  (was: Docs Required,Release Notes 
Required)

> Transaction hangs after too many open files NIO exception
> -
>
> Key: IGNITE-12774
> URL: https://issues.apache.org/jira/browse/IGNITE-12774
> Project: Ignite
>  Issue Type: Bug
>Reporter: Sergey Antonov
>Assignee: Sergey Antonov
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Transaction hung after “Open too many files” error and never been finished.
> {code:java}
> import java.net.SocketException;
> import java.util.concurrent.atomic.AtomicBoolean;
> import org.apache.ignite.cluster.ClusterNode;
> import org.apache.ignite.configuration.CacheConfiguration;
> import org.apache.ignite.configuration.IgniteConfiguration;
> import org.apache.ignite.failure.StopNodeOrHaltFailureHandler;
> import org.apache.ignite.internal.IgniteEx;
> import org.apache.ignite.lang.IgniteInClosure;
> import org.apache.ignite.plugin.extensions.communication.Message;
> import org.apache.ignite.spi.IgniteSpiException;
> import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
> import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
> import org.apache.ignite.transactions.Transaction;
> import org.apache.ignite.transactions.TransactionConcurrency;
> import org.apache.ignite.transactions.TransactionIsolation;
> import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
> import static org.apache.ignite.cache.CacheMode.PARTITIONED;
> public class TooManyOpenFilesTest extends GridCommonAbstractTest {
> @Override protected IgniteConfiguration getConfiguration(String 
> igniteInstanceName) throws Exception {
> return super.getConfiguration(igniteInstanceName)
> .setFailureHandler(new StopNodeOrHaltFailureHandler())
> .setCommunicationSpi(new TooManyOpenFilesTcpCommunicationSpi())
> .setConsistentId(igniteInstanceName);
> }
> @Override protected void beforeTest() throws Exception {
> super.beforeTest();
> stopAllGrids();
> cleanPersistenceDir();
> }
> @Override protected void afterTest() throws Exception {
> stopAllGrids();
> cleanPersistenceDir();
> super.afterTest();
> }
> public void test() throws Exception {
> IgniteEx crd = startGrids(3);
> crd.cluster().active(true);
> crd.getOrCreateCache(new 
> CacheConfiguration<>().setName(DEFAULT_CACHE_NAME).setAtomicityMode(TRANSACTIONAL).setBackups(1).setCacheMode(PARTITIONED));
> TooManyOpenFilesTcpCommunicationSpi spi = 
> (TooManyOpenFilesTcpCommunicationSpi)grid(2).context().config().getCommunicationSpi();
> try (Transaction tx = 
> grid(1).transactions().txStart(TransactionConcurrency.PESSIMISTIC, 
> TransactionIsolation.REPEATABLE_READ)) {
> IgniteCache cache = 
> grid(1).cache(DEFAULT_CACHE_NAME);
> cache.put(1, 1);
> spi.throwException.set(true);
> cache.put(2, 2);
> cache.put(3, 2);
> cache.put(4, 2);
> // hungs here.
> tx.commit();
> }
> for (int i=0; i < 3 ; i++) {
> assertEquals(1, grid(i).cache(DEFAULT_CACHE_NAME).get(1));
> assertEquals(2, grid(i).cache(DEFAULT_CACHE_NAME).get(2));
> }
> }
> private static class TooManyOpenFilesTcpCommunicationSpi extends 
> TcpCommunicationSpi {
> private final AtomicBoolean throwException = new AtomicBoolean();
> /** {@inheritDoc} */
> @Override public void sendMessage(ClusterNode node, Message msg) 
> throws IgniteSpiException {
> if (throwException.get())
> throw getException(node);
> super.sendMessage(node, msg);
> }
> /** {@inheritDoc} */
> @Override public void sendMessage(
> ClusterNode node,
> Message msg,
> IgniteInClosure ackC
> ) throws IgniteSpiException {
> if (throwException.get())
> throw getException(node);
> super.sendMessage(node, msg, ackC);
> }
> private IgniteSpiException getException(ClusterNode node) {
> String checkedExceptionMsg =  "Failed to connect to node (is node 
> still alive?). " +
> "Make sure that each ComputeTask and cache Transaction has a 
> timeout set " +
> "in order to prevent parties from waiting forever in case of 
> network issues " +
> "[nodeId=" + node.id() + ", addrs=null]";
> return new IgniteSpiException("Failed to send message to 

[jira] [Updated] (IGNITE-12774) Transaction hangs after too many open files NIO exception

2020-03-11 Thread Sergey Antonov (Jira)


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

Sergey Antonov updated IGNITE-12774:

Summary: Transaction hangs after too many open files NIO exception  (was: 
Transaction hungs after too many open files NIO exception)

> Transaction hangs after too many open files NIO exception
> -
>
> Key: IGNITE-12774
> URL: https://issues.apache.org/jira/browse/IGNITE-12774
> Project: Ignite
>  Issue Type: Bug
>Reporter: Sergey Antonov
>Assignee: Sergey Antonov
>Priority: Major
>
> Transaction hung after “Open too many files” error and never been finished.
> {code:java}
> import java.net.SocketException;
> import java.util.concurrent.atomic.AtomicBoolean;
> import org.apache.ignite.cluster.ClusterNode;
> import org.apache.ignite.configuration.CacheConfiguration;
> import org.apache.ignite.configuration.IgniteConfiguration;
> import org.apache.ignite.failure.StopNodeOrHaltFailureHandler;
> import org.apache.ignite.internal.IgniteEx;
> import org.apache.ignite.lang.IgniteInClosure;
> import org.apache.ignite.plugin.extensions.communication.Message;
> import org.apache.ignite.spi.IgniteSpiException;
> import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
> import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
> import org.apache.ignite.transactions.Transaction;
> import org.apache.ignite.transactions.TransactionConcurrency;
> import org.apache.ignite.transactions.TransactionIsolation;
> import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
> import static org.apache.ignite.cache.CacheMode.PARTITIONED;
> public class TooManyOpenFilesTest extends GridCommonAbstractTest {
> @Override protected IgniteConfiguration getConfiguration(String 
> igniteInstanceName) throws Exception {
> return super.getConfiguration(igniteInstanceName)
> .setFailureHandler(new StopNodeOrHaltFailureHandler())
> .setCommunicationSpi(new TooManyOpenFilesTcpCommunicationSpi())
> .setConsistentId(igniteInstanceName);
> }
> @Override protected void beforeTest() throws Exception {
> super.beforeTest();
> stopAllGrids();
> cleanPersistenceDir();
> }
> @Override protected void afterTest() throws Exception {
> stopAllGrids();
> cleanPersistenceDir();
> super.afterTest();
> }
> public void test() throws Exception {
> IgniteEx crd = startGrids(3);
> crd.cluster().active(true);
> crd.getOrCreateCache(new 
> CacheConfiguration<>().setName(DEFAULT_CACHE_NAME).setAtomicityMode(TRANSACTIONAL).setBackups(1).setCacheMode(PARTITIONED));
> TooManyOpenFilesTcpCommunicationSpi spi = 
> (TooManyOpenFilesTcpCommunicationSpi)grid(2).context().config().getCommunicationSpi();
> try (Transaction tx = 
> grid(1).transactions().txStart(TransactionConcurrency.PESSIMISTIC, 
> TransactionIsolation.REPEATABLE_READ)) {
> IgniteCache cache = 
> grid(1).cache(DEFAULT_CACHE_NAME);
> cache.put(1, 1);
> spi.throwException.set(true);
> cache.put(2, 2);
> cache.put(3, 2);
> cache.put(4, 2);
> // hungs here.
> tx.commit();
> }
> for (int i=0; i < 3 ; i++) {
> assertEquals(1, grid(i).cache(DEFAULT_CACHE_NAME).get(1));
> assertEquals(2, grid(i).cache(DEFAULT_CACHE_NAME).get(2));
> }
> }
> private static class TooManyOpenFilesTcpCommunicationSpi extends 
> TcpCommunicationSpi {
> private final AtomicBoolean throwException = new AtomicBoolean();
> /** {@inheritDoc} */
> @Override public void sendMessage(ClusterNode node, Message msg) 
> throws IgniteSpiException {
> if (throwException.get())
> throw getException(node);
> super.sendMessage(node, msg);
> }
> /** {@inheritDoc} */
> @Override public void sendMessage(
> ClusterNode node,
> Message msg,
> IgniteInClosure ackC
> ) throws IgniteSpiException {
> if (throwException.get())
> throw getException(node);
> super.sendMessage(node, msg, ackC);
> }
> private IgniteSpiException getException(ClusterNode node) {
> String checkedExceptionMsg =  "Failed to connect to node (is node 
> still alive?). " +
> "Make sure that each ComputeTask and cache Transaction has a 
> timeout set " +
> "in order to prevent parties from waiting forever in case of 
> network issues " +
> "[nodeId=" + node.id() + ", addrs=null]";
> return new IgniteSpiException("Failed to send message to 

[jira] [Created] (IGNITE-12774) Transaction hungs after too many open files NIO exception

2020-03-11 Thread Sergey Antonov (Jira)
Sergey Antonov created IGNITE-12774:
---

 Summary: Transaction hungs after too many open files NIO exception
 Key: IGNITE-12774
 URL: https://issues.apache.org/jira/browse/IGNITE-12774
 Project: Ignite
  Issue Type: Bug
Reporter: Sergey Antonov
Assignee: Sergey Antonov


Transaction hung after “Open too many files” error and never been finished.


{code:java}
import java.net.SocketException;
import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.ignite.cluster.ClusterNode;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.failure.StopNodeOrHaltFailureHandler;
import org.apache.ignite.internal.IgniteEx;
import org.apache.ignite.lang.IgniteInClosure;
import org.apache.ignite.plugin.extensions.communication.Message;
import org.apache.ignite.spi.IgniteSpiException;
import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import org.apache.ignite.transactions.Transaction;
import org.apache.ignite.transactions.TransactionConcurrency;
import org.apache.ignite.transactions.TransactionIsolation;

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

public class TooManyOpenFilesTest extends GridCommonAbstractTest {
@Override protected IgniteConfiguration getConfiguration(String 
igniteInstanceName) throws Exception {
return super.getConfiguration(igniteInstanceName)
.setFailureHandler(new StopNodeOrHaltFailureHandler())
.setCommunicationSpi(new TooManyOpenFilesTcpCommunicationSpi())
.setConsistentId(igniteInstanceName);
}

@Override protected void beforeTest() throws Exception {
super.beforeTest();

stopAllGrids();

cleanPersistenceDir();
}

@Override protected void afterTest() throws Exception {
stopAllGrids();

cleanPersistenceDir();

super.afterTest();
}

public void test() throws Exception {
IgniteEx crd = startGrids(3);

crd.cluster().active(true);

crd.getOrCreateCache(new 
CacheConfiguration<>().setName(DEFAULT_CACHE_NAME).setAtomicityMode(TRANSACTIONAL).setBackups(1).setCacheMode(PARTITIONED));

TooManyOpenFilesTcpCommunicationSpi spi = 
(TooManyOpenFilesTcpCommunicationSpi)grid(2).context().config().getCommunicationSpi();

try (Transaction tx = 
grid(1).transactions().txStart(TransactionConcurrency.PESSIMISTIC, 
TransactionIsolation.REPEATABLE_READ)) {
IgniteCache cache = 
grid(1).cache(DEFAULT_CACHE_NAME);

cache.put(1, 1);

spi.throwException.set(true);

cache.put(2, 2);
cache.put(3, 2);
cache.put(4, 2);

// hungs here.
tx.commit();
}

for (int i=0; i < 3 ; i++) {
assertEquals(1, grid(i).cache(DEFAULT_CACHE_NAME).get(1));
assertEquals(2, grid(i).cache(DEFAULT_CACHE_NAME).get(2));
}
}


private static class TooManyOpenFilesTcpCommunicationSpi extends 
TcpCommunicationSpi {
private final AtomicBoolean throwException = new AtomicBoolean();

/** {@inheritDoc} */
@Override public void sendMessage(ClusterNode node, Message msg) throws 
IgniteSpiException {
if (throwException.get())
throw getException(node);

super.sendMessage(node, msg);
}

/** {@inheritDoc} */
@Override public void sendMessage(
ClusterNode node,
Message msg,
IgniteInClosure ackC
) throws IgniteSpiException {
if (throwException.get())
throw getException(node);

super.sendMessage(node, msg, ackC);
}

private IgniteSpiException getException(ClusterNode node) {
String checkedExceptionMsg =  "Failed to connect to node (is node 
still alive?). " +
"Make sure that each ComputeTask and cache Transaction has a 
timeout set " +
"in order to prevent parties from waiting forever in case of 
network issues " +
"[nodeId=" + node.id() + ", addrs=null]";

return new IgniteSpiException("Failed to send message to remote 
node: " + node.id(), new IgniteCheckedException(checkedExceptionMsg, new 
SocketException("Too many open files")));
}
}
}
{code}




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-12728) The cache#putAllAsync method does not collect statistics

2020-03-11 Thread Andrey N. Gura (Jira)


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

Andrey N. Gura commented on IGNITE-12728:
-

[~alex_pl] No, I don't. Please proceed.

> The cache#putAllAsync method does not collect statistics
> 
>
> Key: IGNITE-12728
> URL: https://issues.apache.org/jira/browse/IGNITE-12728
> Project: Ignite
>  Issue Type: Bug
>Reporter: Amelchev Nikita
>Assignee: Amelchev Nikita
>Priority: Major
>  Labels: IEP-35
> Fix For: 2.9
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The cache#putAllAsync method does not collect statistics.
> The reproducer for {{GridCacheAbstractMetricsSelfTest}}:
> {noformat}
> @Test
> public void testPutAllAsyncAvgTime() throws Exception {
> IgniteCache cache = 
> grid(0).cache(DEFAULT_CACHE_NAME);
> assertEquals(0.0, cache.localMetrics().getAveragePutTime(), 0.0);
> assertEquals(0, cache.localMetrics().getCachePuts());
> Map values = new HashMap<>();
> values.put(1, 1);
> values.put(2, 2);
> values.put(3, 3);
> IgniteFuture fut = cache.putAllAsync(values);
> fut.get();
> assertTrue(waitForCondition(() -> 
> cache.localMetrics().getAveragePutTime() > 0, 30_000));
> assertEquals(values.size(), cache.localMetrics().getCachePuts());
> }
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-12773) Reduce number of cluster deactivation methods in internal API.

2020-03-11 Thread Vladimir Steshin (Jira)


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

Vladimir Steshin updated IGNITE-12773:
--
Description: 
To reduce number of cluster deactivation methods in internal API we might:

{code:java}
1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

8.  Add @Override to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

9.  Remove, combine with #8:
IGridClusterStateProcessor#changeGlobalState0(
ClusterState state,
BaselineTopology blt,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
) 
{code}


  was:
To reduce number of cluster deactivation methods in internal API we might:

{code:java}
1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 
/* here */ @Override /* here */
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

9.  Remove, combine with #8:
IGridClusterStateProcessor#changeGlobalState0(
ClusterState state,
BaselineTopology blt,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
) 
{code}



> Reduce number of cluster deactivation methods in internal API.
> --
>
> Key: IGNITE-12773
> URL: https://issues.apache.org/jira/browse/IGNITE-12773
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladimir Steshin
>Assignee: Vladimir Steshin
>Priority: Minor
>
> To reduce number of cluster deactivation methods in internal API we might:
> {code:java}
> 1.Remove
> GridClientClusterState#active()
> 2.Remove
> GridClientClusterState#active(boolean active)
> 3.Remove
> IGridClusterStateProcessor#changeGlobalState(
> boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 4.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
> boolean isAutoAdjust
> )
> 5.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 6.Remove 
> GridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 7.Add boolean isAutoAdjust to 
> IGridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
> boolean isAutoAdjust
> )
> 8.Add @Override to 
> IGridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> 

[jira] [Commented] (IGNITE-12773) Reduce number of cluster deactivation methods in internal API.

2020-03-11 Thread Vladimir Steshin (Jira)


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

Vladimir Steshin commented on IGNITE-12773:
---

Done all the chages.

> Reduce number of cluster deactivation methods in internal API.
> --
>
> Key: IGNITE-12773
> URL: https://issues.apache.org/jira/browse/IGNITE-12773
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladimir Steshin
>Assignee: Vladimir Steshin
>Priority: Minor
>
> To reduce number of cluster deactivation methods in internal API we might:
> {code:java}
> 1.Remove
> GridClientClusterState#active()
> 2.Remove
> GridClientClusterState#active(boolean active)
> 3.Remove
> IGridClusterStateProcessor#changeGlobalState(
> boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 4.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
> boolean isAutoAdjust
> )
> 5.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 6.Remove 
> GridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 7.Add boolean isAutoAdjust to 
> IGridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
>/* here */ boolean isAutoAdjust /* here */
> )
> 8.Add @Override to 
> /* here */ @Override /* here */
> IGridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
> boolean isAutoAdjust
> )
> 9.  Remove, combine with #8:
> IGridClusterStateProcessor#changeGlobalState0(
> ClusterState state,
> BaselineTopology blt,
> boolean forceChangeBaselineTopology,
> boolean isAutoAdjust
> ) 
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-12762) PHP: Thin client: Transactions

2020-03-11 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-12762:
-
Priority: Major  (was: Blocker)

> PHP: Thin client: Transactions
> --
>
> Key: IGNITE-12762
> URL: https://issues.apache.org/jira/browse/IGNITE-12762
> Project: Ignite
>  Issue Type: New Feature
>  Components: thin client
>Reporter: Alexander Kovalev
>Priority: Major
>  Labels: PHP, iep-34
>
> dear colleagues, could you explain when in 
> [https://apacheignite.readme.io/docs/php-thin-client]
>  transaction support will be enabled?
> I found an implementation for other languages, but support is needed 
> specifically for PHP
>  
> I'd like to have a link from this issue to 
> [https://cwiki.apache.org/confluence/display/IGNITE/IEP-34+Thin+client%3A+transactions+support]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-12773) Reduce number of cluster deactivation methods in internal API.

2020-03-11 Thread Vladimir Steshin (Jira)


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

Vladimir Steshin updated IGNITE-12773:
--
Description: 
To reduce number of cluster deactivation methods in internal API we might:

{code:java}
1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 
/* here */ @Override /* here */
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

9.  Remove, combine with #8:
IGridClusterStateProcessor#changeGlobalState0(
ClusterState state,
BaselineTopology blt,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
) 
{code}


  was:
To reduce number of cluster deactivation methods in internal API we might:

{code:java}
1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 
/* here */ @Override /* here */
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

9.  Remove, combine with #8:
private IgniteInternalFuture changeGlobalState0(
ClusterState state,
BaselineTopology blt,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
) 
{code}



> Reduce number of cluster deactivation methods in internal API.
> --
>
> Key: IGNITE-12773
> URL: https://issues.apache.org/jira/browse/IGNITE-12773
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladimir Steshin
>Assignee: Vladimir Steshin
>Priority: Minor
>
> To reduce number of cluster deactivation methods in internal API we might:
> {code:java}
> 1.Remove
> GridClientClusterState#active()
> 2.Remove
> GridClientClusterState#active(boolean active)
> 3.Remove
> IGridClusterStateProcessor#changeGlobalState(
> boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 4.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
> boolean isAutoAdjust
> )
> 5.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 6.Remove 
> GridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 7.Add boolean isAutoAdjust to 
> IGridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
>/* here */ boolean isAutoAdjust /* here */
> )
> 8.Add @Override to 
> /* here */ @Override /* here */
> 

[jira] [Updated] (IGNITE-12773) Reduce number of cluster deactivation methods in internal API.

2020-03-11 Thread Vladimir Steshin (Jira)


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

Vladimir Steshin updated IGNITE-12773:
--
Description: 
To reduce number of cluster deactivation methods in internal API we might:

{code:java}
1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 
/* here */ @Override /* here */
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

9.  Remove, combine with #8:
private IgniteInternalFuture changeGlobalState0(
ClusterState state,
BaselineTopology blt,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
) 
{code}


  was:
To reduce number of cluster deactivation methods in internal API we might:

{code:java}
1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 
/* here */ @Override /* here */
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
boolean forceDeactivation,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

9.  Remove, combine with #8:
private IgniteInternalFuture changeGlobalState0(
ClusterState state,
BaselineTopology blt,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
) 
{code}



> Reduce number of cluster deactivation methods in internal API.
> --
>
> Key: IGNITE-12773
> URL: https://issues.apache.org/jira/browse/IGNITE-12773
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladimir Steshin
>Assignee: Vladimir Steshin
>Priority: Minor
>
> To reduce number of cluster deactivation methods in internal API we might:
> {code:java}
> 1.Remove
> GridClientClusterState#active()
> 2.Remove
> GridClientClusterState#active(boolean active)
> 3.Remove
> IGridClusterStateProcessor#changeGlobalState(
> boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 4.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
> boolean isAutoAdjust
> )
> 5.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 6.Remove 
> GridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 7.Add boolean isAutoAdjust to 
> IGridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
>/* here */ boolean isAutoAdjust /* here */
> )
> 8.Add @Override to 
> /* here */ 

[jira] [Updated] (IGNITE-12773) Reduce number of cluster deactivation methods in internal API.

2020-03-11 Thread Vladimir Steshin (Jira)


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

Vladimir Steshin updated IGNITE-12773:
--
Description: 
To reduce number of cluster deactivation methods in internal API we might:

{code:java}
1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 
/* here */ @Override /* here */
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
boolean forceDeactivation,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

9.  Remove, combine with #8:
private IgniteInternalFuture changeGlobalState0(
ClusterState state,
BaselineTopology blt,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
) 
{code}


  was:
To reduce number of cluster deactivation methods in internal API we might:

{code:java}
1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 
/* here */ @Override /* here */
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
boolean forceDeactivation,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

9.  Remove, combine with #8:
private IgniteInternalFuture changeGlobalState0(
ClusterState state,
boolean forceDeactivation,
BaselineTopology blt,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
) 
{code}



> Reduce number of cluster deactivation methods in internal API.
> --
>
> Key: IGNITE-12773
> URL: https://issues.apache.org/jira/browse/IGNITE-12773
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladimir Steshin
>Assignee: Vladimir Steshin
>Priority: Minor
>
> To reduce number of cluster deactivation methods in internal API we might:
> {code:java}
> 1.Remove
> GridClientClusterState#active()
> 2.Remove
> GridClientClusterState#active(boolean active)
> 3.Remove
> IGridClusterStateProcessor#changeGlobalState(
> boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 4.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
> boolean isAutoAdjust
> )
> 5.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 6.Remove 
> GridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 7.Add boolean isAutoAdjust to 
> IGridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
>/* here */ boolean 

[jira] [Updated] (IGNITE-12773) Reduce number of cluster deactivation methods in internal API.

2020-03-11 Thread Vladimir Steshin (Jira)


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

Vladimir Steshin updated IGNITE-12773:
--
Description: 
To reduce number of cluster deactivation methods in internal API we might:

{code:java}
1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 
/* here */ @Override /* here */
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
boolean forceDeactivation,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

9.  Remove, combine with #8:
private IgniteInternalFuture changeGlobalState0(
ClusterState state,
boolean forceDeactivation,
BaselineTopology blt,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
) 
{code}


  was:
To reduce number of cluster deactivation methods in internal API we might:

{code:java}
1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 
/* here */ @Override /* here */
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

9.  Remove
private IgniteInternalFuture changeGlobalState0(
ClusterState state,
boolean forceDeactivation,
BaselineTopology blt,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
) 
{code}



> Reduce number of cluster deactivation methods in internal API.
> --
>
> Key: IGNITE-12773
> URL: https://issues.apache.org/jira/browse/IGNITE-12773
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladimir Steshin
>Assignee: Vladimir Steshin
>Priority: Minor
>
> To reduce number of cluster deactivation methods in internal API we might:
> {code:java}
> 1.Remove
> GridClientClusterState#active()
> 2.Remove
> GridClientClusterState#active(boolean active)
> 3.Remove
> IGridClusterStateProcessor#changeGlobalState(
> boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 4.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
> boolean isAutoAdjust
> )
> 5.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 6.Remove 
> GridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 7.Add boolean isAutoAdjust to 
> IGridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
>/* here */ boolean isAutoAdjust /* here */
> )
> 8.Add @Override to 
> /* here 

[jira] [Updated] (IGNITE-12773) Reduce number of cluster deactivation methods in internal API.

2020-03-11 Thread Vladimir Steshin (Jira)


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

Vladimir Steshin updated IGNITE-12773:
--
Description: 
To reduce number of cluster deactivation methods in internal API we might:

{code:java}
1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 
/* here */ @Override /* here */
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

9.  Remove
private IgniteInternalFuture changeGlobalState0(
ClusterState state,
boolean forceDeactivation,
BaselineTopology blt,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
) 
{code}


  was:
To reduce number of cluster deactivation methods in internal API we might:

{code:java}
1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 

IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 

/* here */ @Override /* here */
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

9.  Remove
private IgniteInternalFuture changeGlobalState0(
ClusterState state,
boolean forceDeactivation,
BaselineTopology blt,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
) 
{code}



> Reduce number of cluster deactivation methods in internal API.
> --
>
> Key: IGNITE-12773
> URL: https://issues.apache.org/jira/browse/IGNITE-12773
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladimir Steshin
>Assignee: Vladimir Steshin
>Priority: Minor
>
> To reduce number of cluster deactivation methods in internal API we might:
> {code:java}
> 1.Remove
> GridClientClusterState#active()
> 2.Remove
> GridClientClusterState#active(boolean active)
> 3.Remove
> IGridClusterStateProcessor#changeGlobalState(
> boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 4.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
> boolean isAutoAdjust
> )
> 5.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 6.Remove 
> GridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 7.Add boolean isAutoAdjust to 
> IGridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
>/* here */ boolean isAutoAdjust /* here */
> )
> 8.Add @Override to 
> /* here */ @Override /* here */
> GridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> 

[jira] [Updated] (IGNITE-12773) Reduce number of cluster deactivation methods in internal API.

2020-03-11 Thread Vladimir Steshin (Jira)


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

Vladimir Steshin updated IGNITE-12773:
--
Description: 
To reduce number of cluster deactivation methods in internal API we might:

{code:java}
1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 

IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 

/* here */ @Override /* here */
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

9.  Remove
private IgniteInternalFuture changeGlobalState0(
ClusterState state,
boolean forceDeactivation,
BaselineTopology blt,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
) 
{code}


  was:
To reduce number of cluster deactivation methods in internal API we might:

{code:java}
1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 
/* here */ @Override /* here */
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)
{code}



> Reduce number of cluster deactivation methods in internal API.
> --
>
> Key: IGNITE-12773
> URL: https://issues.apache.org/jira/browse/IGNITE-12773
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladimir Steshin
>Assignee: Vladimir Steshin
>Priority: Minor
>
> To reduce number of cluster deactivation methods in internal API we might:
> {code:java}
> 1.Remove
> GridClientClusterState#active()
> 2.Remove
> GridClientClusterState#active(boolean active)
> 3.Remove
> IGridClusterStateProcessor#changeGlobalState(
> boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 4.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
> boolean isAutoAdjust
> )
> 5.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 6.Remove 
> GridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 7.Add boolean isAutoAdjust to 
> IGridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
>/* here */ boolean isAutoAdjust /* here */
> )
> 8.Add @Override to 
> /* here */ @Override /* here */
> GridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 9.  Remove
> private IgniteInternalFuture changeGlobalState0(
> ClusterState state,
> boolean forceDeactivation,
> BaselineTopology 

[jira] [Updated] (IGNITE-12773) Reduce number of cluster deactivation methods in internal API.

2020-03-11 Thread Vladimir Steshin (Jira)


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

Vladimir Steshin updated IGNITE-12773:
--
Description: 
To reduce number of cluster deactivation methods in internal API we might:

{code:java}
1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 
/* here */ @Override /* here */
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)
{code}


  was:
To reduce number of cluster deactivation methods in internal API we might:

{code:java}
1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
boolean forceDeactivation,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
boolean forceDeactivation,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 
/* here */ @Override /* here */
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
boolean forceDeactivation,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)
{code}



> Reduce number of cluster deactivation methods in internal API.
> --
>
> Key: IGNITE-12773
> URL: https://issues.apache.org/jira/browse/IGNITE-12773
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladimir Steshin
>Assignee: Vladimir Steshin
>Priority: Minor
>
> To reduce number of cluster deactivation methods in internal API we might:
> {code:java}
> 1.Remove
> GridClientClusterState#active()
> 2.Remove
> GridClientClusterState#active(boolean active)
> 3.Remove
> IGridClusterStateProcessor#changeGlobalState(
> boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 4.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
> boolean isAutoAdjust
> )
> 5.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 6.Remove 
> GridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 7.Add boolean isAutoAdjust to 
> IGridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
>/* here */ boolean isAutoAdjust /* here */
> )
> 8.Add @Override to 
> /* here */ @Override /* here */
> GridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-12773) Reduce number of cluster deactivation methods in internal API.

2020-03-11 Thread Vladimir Steshin (Jira)


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

Vladimir Steshin updated IGNITE-12773:
--
Description: 
To reduce number of cluster deactivation methods in internal API we might:

{code:java}
1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
boolean forceDeactivation,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
boolean forceDeactivation,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 
/* here */ @Override /* here */
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
boolean forceDeactivation,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)
{code}


  was:
To reduce number of cluster deactivation methods in internal API we might:

1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
boolean forceDeactivation,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
boolean forceDeactivation,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 
/* here */ @Override /* here */
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
boolean forceDeactivation,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)


> Reduce number of cluster deactivation methods in internal API.
> --
>
> Key: IGNITE-12773
> URL: https://issues.apache.org/jira/browse/IGNITE-12773
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Vladimir Steshin
>Assignee: Vladimir Steshin
>Priority: Minor
>
> To reduce number of cluster deactivation methods in internal API we might:
> {code:java}
> 1.Remove
> GridClientClusterState#active()
> 2.Remove
> GridClientClusterState#active(boolean active)
> 3.Remove
> IGridClusterStateProcessor#changeGlobalState(
> boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 4.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
> boolean isAutoAdjust
> )
> 5.Remove
> GridClusterStateProcessor#changeGlobalState(
> final boolean activate,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 6.Remove 
> GridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> boolean forceDeactivation,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> 7.Add boolean isAutoAdjust to 
> IGridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> boolean forceDeactivation,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology,
>/* here */ boolean isAutoAdjust /* here */
> )
> 8.Add @Override to 
> /* here */ @Override /* here */
> GridClusterStateProcessor#changeGlobalState(
> ClusterState state,
> boolean forceDeactivation,
> Collection baselineNodes,
> boolean forceChangeBaselineTopology
> )
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-12773) Reduce number of cluster deactivation methods in internal API.

2020-03-11 Thread Vladimir Steshin (Jira)
Vladimir Steshin created IGNITE-12773:
-

 Summary: Reduce number of cluster deactivation methods in internal 
API.
 Key: IGNITE-12773
 URL: https://issues.apache.org/jira/browse/IGNITE-12773
 Project: Ignite
  Issue Type: Improvement
Reporter: Vladimir Steshin
Assignee: Vladimir Steshin


To reduce number of cluster deactivation methods in internal API we might:

1.  Remove
GridClientClusterState#active()

2.  Remove
GridClientClusterState#active(boolean active)

3.  Remove
IGridClusterStateProcessor#changeGlobalState(
boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

4.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
)

5.  Remove
GridClusterStateProcessor#changeGlobalState(
final boolean activate,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

6.  Remove 
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
boolean forceDeactivation,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)

7.  Add boolean isAutoAdjust to 
IGridClusterStateProcessor#changeGlobalState(
ClusterState state,
boolean forceDeactivation,
Collection baselineNodes,
boolean forceChangeBaselineTopology,
   /* here */ boolean isAutoAdjust /* here */
)

8.  Add @Override to 
/* here */ @Override /* here */
GridClusterStateProcessor#changeGlobalState(
ClusterState state,
boolean forceDeactivation,
Collection baselineNodes,
boolean forceChangeBaselineTopology
)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-12772) JmxMetricExporterSpi uses log method which must not be used in production code

2020-03-11 Thread Andrey N. Gura (Jira)
Andrey N. Gura created IGNITE-12772:
---

 Summary: JmxMetricExporterSpi uses log method which must not be 
used in production code
 Key: IGNITE-12772
 URL: https://issues.apache.org/jira/browse/IGNITE-12772
 Project: Ignite
  Issue Type: Bug
Reporter: Andrey N. Gura
 Fix For: 2.8.1


{{JmxMetricExporterSpi.register()}} method uses {{IgniteUtils.debug()}} method 
that log on {{INFO}} level instead of {{DEBUG}} because it needs only for debug 
purposes. Should be replaced by explicit {{log.debug()}} invocation.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-12771) Java Doc: Marshaller: behavior of "marshal" method if null parameter passed

2020-03-11 Thread Andrey Mashenkov (Jira)


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

Andrey Mashenkov commented on IGNITE-12771:
---

[~rkondakov], merged to master.

 

> Java Doc: Marshaller: behavior of "marshal" method if null parameter passed
> ---
>
> Key: IGNITE-12771
> URL: https://issues.apache.org/jira/browse/IGNITE-12771
> Project: Ignite
>  Issue Type: Bug
>Reporter: Roman Kondakov
>Priority: Trivial
> Fix For: 2.9
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> After fix for GG-19786 java docs looks like this:
> {code:java}
> marshal
> void marshal(@Nullable
>  @Nullable Object obj,
>  OutputStream out)
>   throws IgniteCheckedException
> Marshals object to the output stream. This method should not close given 
> output stream. Note: null obj will be marshaled to binary null representation.
> Parameters:
> obj - Object to marshal.
> out - Output stream to marshal into.
> Throws:
> IgniteCheckedException - If marshalling failed.
> marshal
> byte[] marshal(@Nullable
>@Nullable Object obj)
> throws IgniteCheckedException
> Marshals object to byte array. Note: null obj will be marshaled to binary 
> null representation.
> Parameters:
> obj - Object to marshal.
> Returns:
> Byte array.
> Throws:
> IgniteCheckedException - If marshalling failed.
> unmarshal
>  T unmarshal(InputStream in,
> @Nullable
> @Nullable ClassLoader clsLdr)
>  throws IgniteCheckedException
> Unmarshals object from the input stream using given class loader. This method 
> should not close given input stream.
> Type Parameters:
> T - Type of unmarshalled object.
> Parameters:
> in - Input stream.
> clsLdr - Class loader to use.
> Returns:
> Unmarshalled object.
> Throws:
> IgniteCheckedException - If unmarshalling failed.
> unmarshal
>  T unmarshal(byte[] arr,
> @Nullable
> @Nullable ClassLoader clsLdr)
>  throws IgniteCheckedException
> Unmarshals object from byte array using given class loader.
> Type Parameters:
> T - Type of unmarshalled object.
> Parameters:
> arr - Byte array.
> clsLdr - Class loader to use.
> Returns:
> Unmarshalled object.
> Throws:
> IgniteCheckedException - If unmarshalling failed.
> {code}
> 1. Doubles for @Nullable
> 2. question what's the point of allowing null value? is not addressed.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-12701) Disallow silent deactivation in CLI and REST.

2020-03-11 Thread Nikolay Izhikov (Jira)


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

Nikolay Izhikov commented on IGNITE-12701:
--

LGTM

> Disallow silent deactivation in CLI and REST.
> -
>
> Key: IGNITE-12701
> URL: https://issues.apache.org/jira/browse/IGNITE-12701
> Project: Ignite
>  Issue Type: Sub-task
>Affects Versions: 2.7.6
>Reporter: Vladimir Steshin
>Assignee: Vladimir Steshin
>Priority: Major
> Fix For: 2.9
>
>  Time Spent: 6h 20m
>  Remaining Estimate: 0h
>
> Disallow silent deactivation through the CLI and REST. 
> Skip JMX call 
> {code:java}
> void IgniteMXBean#active(boolean active)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-12771) Java Doc: Marshaller: behavior of "marshal" method if null parameter passed

2020-03-11 Thread Roman Kondakov (Jira)


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

Roman Kondakov commented on IGNITE-12771:
-

It looks like the  javadoc suite is OK on 
[TC|https://ci.ignite.apache.org/project/IgniteTests24Java8?branch=pull%2F7512%2Fhead=overview=builds#all-projects].

> Java Doc: Marshaller: behavior of "marshal" method if null parameter passed
> ---
>
> Key: IGNITE-12771
> URL: https://issues.apache.org/jira/browse/IGNITE-12771
> Project: Ignite
>  Issue Type: Bug
>Reporter: Roman Kondakov
>Priority: Trivial
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> After fix for GG-19786 java docs looks like this:
> {code:java}
> marshal
> void marshal(@Nullable
>  @Nullable Object obj,
>  OutputStream out)
>   throws IgniteCheckedException
> Marshals object to the output stream. This method should not close given 
> output stream. Note: null obj will be marshaled to binary null representation.
> Parameters:
> obj - Object to marshal.
> out - Output stream to marshal into.
> Throws:
> IgniteCheckedException - If marshalling failed.
> marshal
> byte[] marshal(@Nullable
>@Nullable Object obj)
> throws IgniteCheckedException
> Marshals object to byte array. Note: null obj will be marshaled to binary 
> null representation.
> Parameters:
> obj - Object to marshal.
> Returns:
> Byte array.
> Throws:
> IgniteCheckedException - If marshalling failed.
> unmarshal
>  T unmarshal(InputStream in,
> @Nullable
> @Nullable ClassLoader clsLdr)
>  throws IgniteCheckedException
> Unmarshals object from the input stream using given class loader. This method 
> should not close given input stream.
> Type Parameters:
> T - Type of unmarshalled object.
> Parameters:
> in - Input stream.
> clsLdr - Class loader to use.
> Returns:
> Unmarshalled object.
> Throws:
> IgniteCheckedException - If unmarshalling failed.
> unmarshal
>  T unmarshal(byte[] arr,
> @Nullable
> @Nullable ClassLoader clsLdr)
>  throws IgniteCheckedException
> Unmarshals object from byte array using given class loader.
> Type Parameters:
> T - Type of unmarshalled object.
> Parameters:
> arr - Byte array.
> clsLdr - Class loader to use.
> Returns:
> Unmarshalled object.
> Throws:
> IgniteCheckedException - If unmarshalling failed.
> {code}
> 1. Doubles for @Nullable
> 2. question what's the point of allowing null value? is not addressed.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-12771) Java Doc: Marshaller: behavior of "marshal" method if null parameter passed

2020-03-11 Thread Roman Kondakov (Jira)


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

Roman Kondakov commented on IGNITE-12771:
-

[~amashenkov], please take a look. This is a minor javadoc patch.

> Java Doc: Marshaller: behavior of "marshal" method if null parameter passed
> ---
>
> Key: IGNITE-12771
> URL: https://issues.apache.org/jira/browse/IGNITE-12771
> Project: Ignite
>  Issue Type: Bug
>Reporter: Roman Kondakov
>Priority: Trivial
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> After fix for GG-19786 java docs looks like this:
> {code:java}
> marshal
> void marshal(@Nullable
>  @Nullable Object obj,
>  OutputStream out)
>   throws IgniteCheckedException
> Marshals object to the output stream. This method should not close given 
> output stream. Note: null obj will be marshaled to binary null representation.
> Parameters:
> obj - Object to marshal.
> out - Output stream to marshal into.
> Throws:
> IgniteCheckedException - If marshalling failed.
> marshal
> byte[] marshal(@Nullable
>@Nullable Object obj)
> throws IgniteCheckedException
> Marshals object to byte array. Note: null obj will be marshaled to binary 
> null representation.
> Parameters:
> obj - Object to marshal.
> Returns:
> Byte array.
> Throws:
> IgniteCheckedException - If marshalling failed.
> unmarshal
>  T unmarshal(InputStream in,
> @Nullable
> @Nullable ClassLoader clsLdr)
>  throws IgniteCheckedException
> Unmarshals object from the input stream using given class loader. This method 
> should not close given input stream.
> Type Parameters:
> T - Type of unmarshalled object.
> Parameters:
> in - Input stream.
> clsLdr - Class loader to use.
> Returns:
> Unmarshalled object.
> Throws:
> IgniteCheckedException - If unmarshalling failed.
> unmarshal
>  T unmarshal(byte[] arr,
> @Nullable
> @Nullable ClassLoader clsLdr)
>  throws IgniteCheckedException
> Unmarshals object from byte array using given class loader.
> Type Parameters:
> T - Type of unmarshalled object.
> Parameters:
> arr - Byte array.
> clsLdr - Class loader to use.
> Returns:
> Unmarshalled object.
> Throws:
> IgniteCheckedException - If unmarshalling failed.
> {code}
> 1. Doubles for @Nullable
> 2. question what's the point of allowing null value? is not addressed.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-12771) Java Doc: Marshaller: behavior of "marshal" method if null parameter passed

2020-03-11 Thread Roman Kondakov (Jira)
Roman Kondakov created IGNITE-12771:
---

 Summary: Java Doc: Marshaller: behavior of "marshal" method if 
null parameter passed
 Key: IGNITE-12771
 URL: https://issues.apache.org/jira/browse/IGNITE-12771
 Project: Ignite
  Issue Type: Bug
Reporter: Roman Kondakov


After fix for GG-19786 java docs looks like this:

{code:java}
marshal
void marshal(@Nullable
 @Nullable Object obj,
 OutputStream out)
  throws IgniteCheckedException
Marshals object to the output stream. This method should not close given output 
stream. Note: null obj will be marshaled to binary null representation.
Parameters:
obj - Object to marshal.
out - Output stream to marshal into.
Throws:
IgniteCheckedException - If marshalling failed.
marshal
byte[] marshal(@Nullable
   @Nullable Object obj)
throws IgniteCheckedException
Marshals object to byte array. Note: null obj will be marshaled to binary null 
representation.
Parameters:
obj - Object to marshal.
Returns:
Byte array.
Throws:
IgniteCheckedException - If marshalling failed.
unmarshal
 T unmarshal(InputStream in,
@Nullable
@Nullable ClassLoader clsLdr)
 throws IgniteCheckedException
Unmarshals object from the input stream using given class loader. This method 
should not close given input stream.
Type Parameters:
T - Type of unmarshalled object.
Parameters:
in - Input stream.
clsLdr - Class loader to use.
Returns:
Unmarshalled object.
Throws:
IgniteCheckedException - If unmarshalling failed.
unmarshal
 T unmarshal(byte[] arr,
@Nullable
@Nullable ClassLoader clsLdr)
 throws IgniteCheckedException
Unmarshals object from byte array using given class loader.
Type Parameters:
T - Type of unmarshalled object.
Parameters:
arr - Byte array.
clsLdr - Class loader to use.
Returns:
Unmarshalled object.
Throws:
IgniteCheckedException - If unmarshalling failed.
{code}

1. Doubles for @Nullable
2. question what's the point of allowing null value? is not addressed.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-12759) Getting a SecurityContext from GridSecurityProcessor

2020-03-11 Thread Denis Garus (Jira)


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

Denis Garus updated IGNITE-12759:
-
Affects Version/s: (was: 2.8)

> Getting a SecurityContext from GridSecurityProcessor
> 
>
> Key: IGNITE-12759
> URL: https://issues.apache.org/jira/browse/IGNITE-12759
> Project: Ignite
>  Issue Type: Improvement
>  Components: security
>Reporter: Denis Garus
>Assignee: Denis Garus
>Priority: Major
>  Labels: iep-41
>
> Extend the _GridSecurityProcessor_ interface by adding _securityContext(UUID 
> subjId)_ method and use this method to get the actual security context.
> h4. Backward compatibility
> The logic of getting security context for Ignite:
>  # Get a security context through _GridSecurityProcessor_;
>  # If _GridSecurityProcessor_ returned null, try to get a security context 
> using _ClusterNode_ attributes (as it works now).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-12746) Regression in GridCacheColocatedDebugTest: putAll of sorted keys causes deadlock

2020-03-11 Thread Ilya Kasnacheev (Jira)


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

Ilya Kasnacheev commented on IGNITE-12746:
--

[~irakov] Unfortunately I do not have expertise to review this change. I think 
we should ask [~agoncharuk].

What is the scope of this problem?

> Regression in GridCacheColocatedDebugTest: putAll of sorted keys causes 
> deadlock
> 
>
> Key: IGNITE-12746
> URL: https://issues.apache.org/jira/browse/IGNITE-12746
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Reporter: Ilya Kasnacheev
>Assignee: Ivan Rakov
>Priority: Blocker
> Fix For: 2.8.1
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> After this commit:
> 7d4bb49264b IGNITE-12329 Invalid handling of remote entries causes partition 
> desync and transaction hanging in COMMITTING state.
> the following tests:
> org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheColocatedDebugTest#testPutsMultithreadedColocated
> org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheColocatedDebugTest#testPutsMultithreadedMixed
> started to be flaky because their ordered putAll operations started 
> deadlocking.
> This is a regression compared to 2.7 and should be fixed, since it may affect 
> production clusters.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-12752) Pass thin clients SSL certificates to security

2020-03-11 Thread Ilya Kasnacheev (Jira)


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

Ilya Kasnacheev updated IGNITE-12752:
-
Issue Type: New Feature  (was: Bug)

> Pass thin clients SSL certificates to security
> --
>
> Key: IGNITE-12752
> URL: https://issues.apache.org/jira/browse/IGNITE-12752
> Project: Ignite
>  Issue Type: New Feature
>  Components: security
>Reporter: Ilya Kasnacheev
>Assignee: Ilya Kasnacheev
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Add SSL certificates to AuthenticationContext, so, authenticators can make 
> additional checks based on SSL certificates.
> Please note that this is *Phase I* which only concerns all flavors of thin 
> clients, but not server/client nodes! It includes JDBC, old and new flavor of 
> Ignite thin client, control.sh and REST.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-12752) Pass thin clients SSL certificates to security

2020-03-11 Thread Ilya Kasnacheev (Jira)


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

Ilya Kasnacheev reassigned IGNITE-12752:


Assignee: Ilya Kasnacheev

> Pass thin clients SSL certificates to security
> --
>
> Key: IGNITE-12752
> URL: https://issues.apache.org/jira/browse/IGNITE-12752
> Project: Ignite
>  Issue Type: Bug
>  Components: security
>Reporter: Ilya Kasnacheev
>Assignee: Ilya Kasnacheev
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Add SSL certificates to AuthenticationContext, so, authenticators can make 
> additional checks based on SSL certificates.
> Please note that this is *Phase I* which only concerns all flavors of thin 
> clients, but not server/client nodes! It includes JDBC, old and new flavor of 
> Ignite thin client, control.sh and REST.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-12740) Supports feature flags on index meta page

2020-03-11 Thread Ignite TC Bot (Jira)


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

Ignite TC Bot commented on IGNITE-12740:


{panel:title=Branch: [pull/7493/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
[TeamCity *-- Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=5105064buildTypeId=IgniteTests24Java8_RunAll]

> Supports feature flags on index meta page
> -
>
> Key: IGNITE-12740
> URL: https://issues.apache.org/jira/browse/IGNITE-12740
> Project: Ignite
>  Issue Type: Task
>  Components: sql
>Reporter: Taras Ledkov
>Assignee: Taras Ledkov
>Priority: Major
> Fix For: 2.9
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Some changes on indexing e.g. inl;ine java objects, unwrap PK columns and 
> several planned features (change inline pojo format, inline DECIMAL fields 
> etc) break backward compatibility.
> We have to add metadata about index layout and format to index tree meta-page.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (IGNITE-10945) Document Baseline auto-adjust feature

2020-03-11 Thread Artem Budnikov (Jira)


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

Artem Budnikov resolved IGNITE-10945.
-
Resolution: Fixed

> Document Baseline auto-adjust feature
> -
>
> Key: IGNITE-10945
> URL: https://issues.apache.org/jira/browse/IGNITE-10945
> Project: Ignite
>  Issue Type: Task
>  Components: documentation
>Reporter: Ivan Bessonov
>Assignee: Artem Budnikov
>Priority: Critical
>  Labels: IEP-4, Phase-2
> Fix For: 2.8
>
>
> From IGNITE-8571:
> Now we have only one way to change BLAT - manually update it via console.sh 
> or API.
> We need to add the possibility to change it automatically. Adjust to current 
> topology.
> So, I propose 3 new parameters which would be responsible to tune this 
> feature.
>  1. Flag autoAdjustEnabled - true/false. Easy. Manual baseline control or 
> auto adjusting baseline.
> 2. autoAdjustTimeout - time which we would wait after the actual topology 
> change. But it would be reset if new discovery event happened. (node 
> join/exit).
> 3. autoAdjustMaxTimeout - time which we would wait from the first dicovery 
> event in the chain. If we achieved it than we would change BLAT right away 
> (no matter were another node join/exit happened or not).
> We need to change API next way:
>  1. org.apache.ignite.IgniteCluster
> *Add*
>  isBaselineAutoAdjustEnabled()
>  setBaselineAutoAdjustEnabled(boolean enabled);
>  setBaselineAutoAdjustTimeout(long timeoutInMs);
>  setBaselineAutoAdjustMaxTimeout(long timeoutInMs);
> 2. org.apache.ignite.configuration.IgniteConfiguration
> *Add*
>  IgniteConfiguration setBaselineAutoAdjustEnabled(boolean enabled);
>  IgniteConfiguration setBaselineAutoAdjustTimeout(long timeoutInMs);
>  IgniteConfiguration setBaselineAutoAdjustMaxTimeout(long timeoutInMs);
> Also, we need to ensure that all nodes would have the same parameters.
>  And we should be able to survive coordinator left during parameters changes.
> -
>  For IGNITE-8575:
> Proposed API format for control.sh:
> {{--baseline autoadjust disable}}
> {{--baseline autoadjust enable }}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-10945) Document Baseline auto-adjust feature

2020-03-11 Thread Artem Budnikov (Jira)


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

Artem Budnikov commented on IGNITE-10945:
-

Added 
https://apacheignite.readme.io/v2.8.0/docs/baseline-topology#section-baseline-topology-autoadjustment

> Document Baseline auto-adjust feature
> -
>
> Key: IGNITE-10945
> URL: https://issues.apache.org/jira/browse/IGNITE-10945
> Project: Ignite
>  Issue Type: Task
>  Components: documentation
>Reporter: Ivan Bessonov
>Assignee: Artem Budnikov
>Priority: Critical
>  Labels: IEP-4, Phase-2
> Fix For: 2.8
>
>
> From IGNITE-8571:
> Now we have only one way to change BLAT - manually update it via console.sh 
> or API.
> We need to add the possibility to change it automatically. Adjust to current 
> topology.
> So, I propose 3 new parameters which would be responsible to tune this 
> feature.
>  1. Flag autoAdjustEnabled - true/false. Easy. Manual baseline control or 
> auto adjusting baseline.
> 2. autoAdjustTimeout - time which we would wait after the actual topology 
> change. But it would be reset if new discovery event happened. (node 
> join/exit).
> 3. autoAdjustMaxTimeout - time which we would wait from the first dicovery 
> event in the chain. If we achieved it than we would change BLAT right away 
> (no matter were another node join/exit happened or not).
> We need to change API next way:
>  1. org.apache.ignite.IgniteCluster
> *Add*
>  isBaselineAutoAdjustEnabled()
>  setBaselineAutoAdjustEnabled(boolean enabled);
>  setBaselineAutoAdjustTimeout(long timeoutInMs);
>  setBaselineAutoAdjustMaxTimeout(long timeoutInMs);
> 2. org.apache.ignite.configuration.IgniteConfiguration
> *Add*
>  IgniteConfiguration setBaselineAutoAdjustEnabled(boolean enabled);
>  IgniteConfiguration setBaselineAutoAdjustTimeout(long timeoutInMs);
>  IgniteConfiguration setBaselineAutoAdjustMaxTimeout(long timeoutInMs);
> Also, we need to ensure that all nodes would have the same parameters.
>  And we should be able to survive coordinator left during parameters changes.
> -
>  For IGNITE-8575:
> Proposed API format for control.sh:
> {{--baseline autoadjust disable}}
> {{--baseline autoadjust enable }}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-12770) Add multiple hash index support.

2020-03-11 Thread Ivan Pavlukhin (Jira)


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

Ivan Pavlukhin commented on IGNITE-12770:
-

[~arsen], could you please provide more details in a ticket description? What 
hash indexes are assumed? What are benefits of supporting multiple of them?

> Add multiple hash index support.
> 
>
> Key: IGNITE-12770
> URL: https://issues.apache.org/jira/browse/IGNITE-12770
> Project: Ignite
>  Issue Type: Wish
>Reporter: Arsen Manucharyan
>Priority: Major
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (IGNITE-11370) Doc: remove SqlQuery documentation

2020-03-11 Thread Artem Budnikov (Jira)


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

Artem Budnikov resolved IGNITE-11370.
-
Resolution: Fixed

> Doc: remove SqlQuery documentation
> --
>
> Key: IGNITE-11370
> URL: https://issues.apache.org/jira/browse/IGNITE-11370
> Project: Ignite
>  Issue Type: Task
>  Components: documentation
>Affects Versions: 2.7
>Reporter: Taras Ledkov
>Assignee: Artem Budnikov
>Priority: Major
> Fix For: 2.8
>
>
> Need to remove all mentions about {{SqlQuery}} from the whole documentation, 
> as it is deprecated for now.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-12759) Getting a SecurityContext from GridSecurityProcessor

2020-03-11 Thread Denis Garus (Jira)


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

Denis Garus updated IGNITE-12759:
-
Description: 
Extend the _GridSecurityProcessor_ interface by adding _securityContext(UUID 
subjId)_ method and use this method to get the actual security context.
h4. Backward compatibility

The logic of getting security context for Ignite:
 # Get a security context through _GridSecurityProcessor_;
 # If _GridSecurityProcessor_ returned null, try to get a security context 
using _ClusterNode_ attributes (as it works now).

  was:
Extend the _GridSecurityProcessor_ interface by adding _securityContext(UUID 
subjId)_ method and use this method to get the actual security context.
h4. Backward compatibility

The logic of getting security context for Ignite:
 # Get a security context through _GridSecurityProcessor_;
 # If _GridSecurityProcessor_ returned null, try to get a security context 
using _ClusterNode_ attributes (as it works now);
 # If _ClusterNode_ attributes contain no security context, return _the unknown 
security context_.


> Getting a SecurityContext from GridSecurityProcessor
> 
>
> Key: IGNITE-12759
> URL: https://issues.apache.org/jira/browse/IGNITE-12759
> Project: Ignite
>  Issue Type: Improvement
>  Components: security
>Affects Versions: 2.8
>Reporter: Denis Garus
>Assignee: Denis Garus
>Priority: Major
>  Labels: iep-41
>
> Extend the _GridSecurityProcessor_ interface by adding _securityContext(UUID 
> subjId)_ method and use this method to get the actual security context.
> h4. Backward compatibility
> The logic of getting security context for Ignite:
>  # Get a security context through _GridSecurityProcessor_;
>  # If _GridSecurityProcessor_ returned null, try to get a security context 
> using _ClusterNode_ attributes (as it works now).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-12759) Getting a SecurityContext from GridSecurityProcessor

2020-03-11 Thread Denis Garus (Jira)


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

Denis Garus updated IGNITE-12759:
-
Description: 
Extend the _GridSecurityProcessor_ interface by adding _securityContext(UUID 
subjId)_ method and use this method to get the actual security context.
h4. Backward compatibility

The logic of getting security context for Ignite:
 # Get a security context through _GridSecurityProcessor_;
 # If _GridSecurityProcessor_ returned null, try to get a security context 
using _ClusterNode_ attributes (as it works now);
 # If _ClusterNode_ attributes contain no security context, return _the unknown 
security context_.

  was:Extend the _GridSecurityProcessor_ interface by adding 
_securityContext(UUID subjId)_ method and use this method to get the actual 
security context.


> Getting a SecurityContext from GridSecurityProcessor
> 
>
> Key: IGNITE-12759
> URL: https://issues.apache.org/jira/browse/IGNITE-12759
> Project: Ignite
>  Issue Type: Improvement
>  Components: security
>Affects Versions: 2.8
>Reporter: Denis Garus
>Assignee: Denis Garus
>Priority: Major
>  Labels: iep-41
>
> Extend the _GridSecurityProcessor_ interface by adding _securityContext(UUID 
> subjId)_ method and use this method to get the actual security context.
> h4. Backward compatibility
> The logic of getting security context for Ignite:
>  # Get a security context through _GridSecurityProcessor_;
>  # If _GridSecurityProcessor_ returned null, try to get a security context 
> using _ClusterNode_ attributes (as it works now);
>  # If _ClusterNode_ attributes contain no security context, return _the 
> unknown security context_.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-12770) Add multiple hash index support.

2020-03-11 Thread Arsen Manucharyan (Jira)
Arsen Manucharyan created IGNITE-12770:
--

 Summary: Add multiple hash index support.
 Key: IGNITE-12770
 URL: https://issues.apache.org/jira/browse/IGNITE-12770
 Project: Ignite
  Issue Type: Wish
Reporter: Arsen Manucharyan






--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-8152) Forbid empty sql schema name

2020-03-11 Thread Alexey (Jira)


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

Alexey reassigned IGNITE-8152:
--

Assignee: Alexey

> Forbid empty sql schema name
> 
>
> Key: IGNITE-8152
> URL: https://issues.apache.org/jira/browse/IGNITE-8152
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Pavel Kuznetsov
>Assignee: Alexey
>Priority: Major
>  Labels: newbie
>
> Currently we allow empty schema name (quoted) in cache configuration
> org.apache.ignite.configuration.CacheConfiguration#setSqlSchema :
> {noformat}
> When sqlSchema is not specified, quoted cacheName is used instead.
> sqlSchema could not be an empty string. Has to be "\"\"" instead.
> Params:
> sqlSchema - Schema name for current cache according to SQL ANSI-99. Should 
> not be null.
> {noformat}
> Specifying schema \"\" results in empty string schema name.
> No schema in sql query is treated as PUBLIC, but \"\" is regular schema name.
> It's better to disallow usage of \"\" schema



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-8152) Forbid empty sql schema name

2020-03-11 Thread Alexey (Jira)


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

Alexey commented on IGNITE-8152:


I am ready to take the IGNITE-8152 ticket to work

> Forbid empty sql schema name
> 
>
> Key: IGNITE-8152
> URL: https://issues.apache.org/jira/browse/IGNITE-8152
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Pavel Kuznetsov
>Priority: Major
>  Labels: newbie
>
> Currently we allow empty schema name (quoted) in cache configuration
> org.apache.ignite.configuration.CacheConfiguration#setSqlSchema :
> {noformat}
> When sqlSchema is not specified, quoted cacheName is used instead.
> sqlSchema could not be an empty string. Has to be "\"\"" instead.
> Params:
> sqlSchema - Schema name for current cache according to SQL ANSI-99. Should 
> not be null.
> {noformat}
> Specifying schema \"\" results in empty string schema name.
> No schema in sql query is treated as PUBLIC, but \"\" is regular schema name.
> It's better to disallow usage of \"\" schema



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Comment Edited] (IGNITE-12766) Node startup can be broken in case of using Local cache with persistence enabled.

2020-03-11 Thread Vyacheslav Koptilin (Jira)


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

Vyacheslav Koptilin edited comment on IGNITE-12766 at 3/11/20, 8:58 AM:


Hi [~Pavlukhin],

I think that a placeholder which delegates all method calls to a moved 
LocalAffinityFunction should work. I am going to try this approach.


was (Author: slava.koptilin):
Hi [~Pavlukhin],

 

I think that a placeholder which delegates all method calls to a moved 
LocalAffinityFunction should work. I am going to try this approach.

> Node startup can be broken in case of using Local cache with persistence 
> enabled.
> -
>
> Key: IGNITE-12766
> URL: https://issues.apache.org/jira/browse/IGNITE-12766
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
> Fix For: 2.9
>
>
> Trying to upgrade from the previous version of Apache Ignite (AI 2.7.6 for 
> example) may result in the following exception when Local cache is used and 
> persistence enabled.
> {code}
> [2020-03-05 16:47:39,222][ERROR][main][IgniteKernal] Exception during start 
> processors, node will be stopped and close connections[2020-03-05 
> 16:47:39,222][ERROR][main][IgniteKernal] Exception during start processors, 
> node will be stopped and close connectionsclass 
> org.apache.ignite.IgniteCheckedException: An error occurred during cache 
> configuration loading from file [file=...] at 
> org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.readCacheData(FilePageStoreManager.java:965)
>  at 
> org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.readCacheConfigurations(FilePageStoreManager.java:907)
>  at 
> org.apache.ignite.internal.processors.cache.GridLocalConfigManager.restoreCaches(GridLocalConfigManager.java:171)
>  at 
> org.apache.ignite.internal.processors.cache.GridLocalConfigManager.restoreCacheConfigurations(GridLocalConfigManager.java:124)
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor$CacheRecoveryLifecycle.onReadyForRead(GridCacheProcessor.java:5198)
>  at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.notifyMetastorageReadyForRead(GridCacheDatabaseSharedManager.java:488)
>  at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.readMetastore(GridCacheDatabaseSharedManager.java:824)
>  at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.notifyMetaStorageSubscribersOnReadyForRead(GridCacheDatabaseSharedManager.java:5378)
>  at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1286) at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2054)
>  at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1704)
>  at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1117) at 
> org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:1035)
>  at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:921) at 
> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:820) at 
> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:690) at 
> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:659) at 
> org.apache.ignite.Ignition.start(Ignition.java:346) at 
> org.apache.ignite.examples.ExampleNodeStartup.main(ExampleNodeStartup.java:38)Caused
>  by: class org.apache.ignite.IgniteCheckedException: Failed to find class 
> with given class loader for unmarshalling (make sure same versions of all 
> classes are available on all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2, 
> cls=org.apache.ignite.internal.processors.cache.GridCacheProcessor$LocalAffinityFunction]
>  at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:129)
>  at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:93)
>  at 
> org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.readCacheData(FilePageStoreManager.java:961)
>  ... 18 moreCaused by: java.lang.ClassNotFoundException: 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor$LocalAffinityFunction
>  at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:424) at 
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:357) at 
> java.lang.Class.forName0(Native Method) at 
> java.lang.Class.forName(Class.java:348) at 
> 

[jira] [Commented] (IGNITE-12766) Node startup can be broken in case of using Local cache with persistence enabled.

2020-03-11 Thread Vyacheslav Koptilin (Jira)


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

Vyacheslav Koptilin commented on IGNITE-12766:
--

Hi [~Pavlukhin],

 

I think that a placeholder which delegates all method calls to a moved 
LocalAffinityFunction should work. I am going to try this approach.

> Node startup can be broken in case of using Local cache with persistence 
> enabled.
> -
>
> Key: IGNITE-12766
> URL: https://issues.apache.org/jira/browse/IGNITE-12766
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
> Fix For: 2.9
>
>
> Trying to upgrade from the previous version of Apache Ignite (AI 2.7.6 for 
> example) may result in the following exception when Local cache is used and 
> persistence enabled.
> {code}
> [2020-03-05 16:47:39,222][ERROR][main][IgniteKernal] Exception during start 
> processors, node will be stopped and close connections[2020-03-05 
> 16:47:39,222][ERROR][main][IgniteKernal] Exception during start processors, 
> node will be stopped and close connectionsclass 
> org.apache.ignite.IgniteCheckedException: An error occurred during cache 
> configuration loading from file [file=...] at 
> org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.readCacheData(FilePageStoreManager.java:965)
>  at 
> org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.readCacheConfigurations(FilePageStoreManager.java:907)
>  at 
> org.apache.ignite.internal.processors.cache.GridLocalConfigManager.restoreCaches(GridLocalConfigManager.java:171)
>  at 
> org.apache.ignite.internal.processors.cache.GridLocalConfigManager.restoreCacheConfigurations(GridLocalConfigManager.java:124)
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor$CacheRecoveryLifecycle.onReadyForRead(GridCacheProcessor.java:5198)
>  at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.notifyMetastorageReadyForRead(GridCacheDatabaseSharedManager.java:488)
>  at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.readMetastore(GridCacheDatabaseSharedManager.java:824)
>  at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.notifyMetaStorageSubscribersOnReadyForRead(GridCacheDatabaseSharedManager.java:5378)
>  at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1286) at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2054)
>  at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1704)
>  at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1117) at 
> org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:1035)
>  at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:921) at 
> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:820) at 
> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:690) at 
> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:659) at 
> org.apache.ignite.Ignition.start(Ignition.java:346) at 
> org.apache.ignite.examples.ExampleNodeStartup.main(ExampleNodeStartup.java:38)Caused
>  by: class org.apache.ignite.IgniteCheckedException: Failed to find class 
> with given class loader for unmarshalling (make sure same versions of all 
> classes are available on all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2, 
> cls=org.apache.ignite.internal.processors.cache.GridCacheProcessor$LocalAffinityFunction]
>  at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:129)
>  at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:93)
>  at 
> org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.readCacheData(FilePageStoreManager.java:961)
>  ... 18 moreCaused by: java.lang.ClassNotFoundException: 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor$LocalAffinityFunction
>  at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:424) at 
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:357) at 
> java.lang.Class.forName0(Native Method) at 
> java.lang.Class.forName(Class.java:348) at 
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8870) at 
> org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:59)
>  at 

[jira] [Commented] (IGNITE-12766) Node startup can be broken in case of using Local cache with persistence enabled.

2020-03-11 Thread Ivan Pavlukhin (Jira)


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

Ivan Pavlukhin commented on IGNITE-12766:
-

[~slava.koptilin], do you have already an idea how the problem could be fixed? 
Will moving {{LocalAffinityFunction}} back just work?

> Node startup can be broken in case of using Local cache with persistence 
> enabled.
> -
>
> Key: IGNITE-12766
> URL: https://issues.apache.org/jira/browse/IGNITE-12766
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
> Fix For: 2.9
>
>
> Trying to upgrade from the previous version of Apache Ignite (AI 2.7.6 for 
> example) may result in the following exception when Local cache is used and 
> persistence enabled.
> {code}
> [2020-03-05 16:47:39,222][ERROR][main][IgniteKernal] Exception during start 
> processors, node will be stopped and close connections[2020-03-05 
> 16:47:39,222][ERROR][main][IgniteKernal] Exception during start processors, 
> node will be stopped and close connectionsclass 
> org.apache.ignite.IgniteCheckedException: An error occurred during cache 
> configuration loading from file [file=...] at 
> org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.readCacheData(FilePageStoreManager.java:965)
>  at 
> org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.readCacheConfigurations(FilePageStoreManager.java:907)
>  at 
> org.apache.ignite.internal.processors.cache.GridLocalConfigManager.restoreCaches(GridLocalConfigManager.java:171)
>  at 
> org.apache.ignite.internal.processors.cache.GridLocalConfigManager.restoreCacheConfigurations(GridLocalConfigManager.java:124)
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor$CacheRecoveryLifecycle.onReadyForRead(GridCacheProcessor.java:5198)
>  at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.notifyMetastorageReadyForRead(GridCacheDatabaseSharedManager.java:488)
>  at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.readMetastore(GridCacheDatabaseSharedManager.java:824)
>  at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.notifyMetaStorageSubscribersOnReadyForRead(GridCacheDatabaseSharedManager.java:5378)
>  at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1286) at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2054)
>  at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1704)
>  at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1117) at 
> org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:1035)
>  at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:921) at 
> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:820) at 
> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:690) at 
> org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:659) at 
> org.apache.ignite.Ignition.start(Ignition.java:346) at 
> org.apache.ignite.examples.ExampleNodeStartup.main(ExampleNodeStartup.java:38)Caused
>  by: class org.apache.ignite.IgniteCheckedException: Failed to find class 
> with given class loader for unmarshalling (make sure same versions of all 
> classes are available on all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2, 
> cls=org.apache.ignite.internal.processors.cache.GridCacheProcessor$LocalAffinityFunction]
>  at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:129)
>  at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:93)
>  at 
> org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.readCacheData(FilePageStoreManager.java:961)
>  ... 18 moreCaused by: java.lang.ClassNotFoundException: 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor$LocalAffinityFunction
>  at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:424) at 
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:357) at 
> java.lang.Class.forName0(Native Method) at 
> java.lang.Class.forName(Class.java:348) at 
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8870) at 
> org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:59)
>  at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1826) 
> at 

[jira] [Updated] (IGNITE-12749) Unsupported operation exception on node stop if collisionspi not null

2020-03-11 Thread Nikolay Izhikov (Jira)


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

Nikolay Izhikov updated IGNITE-12749:
-
Labels: newbie  (was: )

> Unsupported operation exception on node stop if collisionspi not null
> -
>
> Key: IGNITE-12749
> URL: https://issues.apache.org/jira/browse/IGNITE-12749
> Project: Ignite
>  Issue Type: Bug
>Reporter: Nikolay Izhikov
>Priority: Major
>  Labels: newbie
>
> If collision spi specified then on the node stop there are exception:
> {noformat}
> java.lang.UnsupportedOperationException
>   at 
> org.jsr166.ConcurrentLinkedHashMap.clear(ConcurrentLinkedHashMap.java:1542)
>   at 
> org.apache.ignite.internal.processors.job.GridJobProcessor.stop(GridJobProcessor.java:376)
>   at org.apache.ignite.internal.IgniteKernal.stop0(IgniteKernal.java:2697)
>   at org.apache.ignite.internal.IgniteKernal.stop(IgniteKernal.java:2569)
>   at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop0(IgnitionEx.java:2660)
>   at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop(IgnitionEx.java:2623)
>   at org.apache.ignite.internal.IgnitionEx.stop(IgnitionEx.java:339)
>   at org.apache.ignite.Ignition.stop(Ignition.java:223)
>   at 
> org.apache.ignite.testframework.junits.GridAbstractTest.stopGrid(GridAbstractTest.java:1316)
>   at 
> org.apache.ignite.testframework.junits.GridAbstractTest.stopAllGrids(GridAbstractTest.java:1361)
>  {noformat}
> The issue in the next line:
> {code:java}
> public GridJobProcessor(GridKernalContext ctx) {
> // Collision manager is already started and is fully functional.
> jobAlwaysActivate = !ctx.collision().enabled();
> activeJobs = jobAlwaysActivate ? new ConcurrentHashMap GridJobWorker>() :
> new JobsMap(1024, 0.75f, 256);
> {code}
> We need replace JobsMap with the correct implementation.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-12746) Regression in GridCacheColocatedDebugTest: putAll of sorted keys causes deadlock

2020-03-11 Thread Alexey Scherbakov (Jira)


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

Alexey Scherbakov updated IGNITE-12746:
---
Reviewer: Alexey Scherbakov

> Regression in GridCacheColocatedDebugTest: putAll of sorted keys causes 
> deadlock
> 
>
> Key: IGNITE-12746
> URL: https://issues.apache.org/jira/browse/IGNITE-12746
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Reporter: Ilya Kasnacheev
>Assignee: Ivan Rakov
>Priority: Blocker
> Fix For: 2.8.1
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> After this commit:
> 7d4bb49264b IGNITE-12329 Invalid handling of remote entries causes partition 
> desync and transaction hanging in COMMITTING state.
> the following tests:
> org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheColocatedDebugTest#testPutsMultithreadedColocated
> org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheColocatedDebugTest#testPutsMultithreadedMixed
> started to be flaky because their ordered putAll operations started 
> deadlocking.
> This is a regression compared to 2.7 and should be fixed, since it may affect 
> production clusters.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-12746) Regression in GridCacheColocatedDebugTest: putAll of sorted keys causes deadlock

2020-03-11 Thread Ivan Rakov (Jira)


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

Ivan Rakov commented on IGNITE-12746:
-

[~ilyak] [~ascherbakov] Folks, can you please take a look?

> Regression in GridCacheColocatedDebugTest: putAll of sorted keys causes 
> deadlock
> 
>
> Key: IGNITE-12746
> URL: https://issues.apache.org/jira/browse/IGNITE-12746
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Reporter: Ilya Kasnacheev
>Assignee: Ivan Rakov
>Priority: Blocker
> Fix For: 2.8.1
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> After this commit:
> 7d4bb49264b IGNITE-12329 Invalid handling of remote entries causes partition 
> desync and transaction hanging in COMMITTING state.
> the following tests:
> org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheColocatedDebugTest#testPutsMultithreadedColocated
> org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheColocatedDebugTest#testPutsMultithreadedMixed
> started to be flaky because their ordered putAll operations started 
> deadlocking.
> This is a regression compared to 2.7 and should be fixed, since it may affect 
> production clusters.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-12746) Regression in GridCacheColocatedDebugTest: putAll of sorted keys causes deadlock

2020-03-11 Thread Ignite TC Bot (Jira)


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

Ignite TC Bot commented on IGNITE-12746:


{panel:title=Branch: [pull/7507/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
[TeamCity *-- Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=5115514buildTypeId=IgniteTests24Java8_RunAll]

> Regression in GridCacheColocatedDebugTest: putAll of sorted keys causes 
> deadlock
> 
>
> Key: IGNITE-12746
> URL: https://issues.apache.org/jira/browse/IGNITE-12746
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Reporter: Ilya Kasnacheev
>Assignee: Ivan Rakov
>Priority: Blocker
> Fix For: 2.8.1
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> After this commit:
> 7d4bb49264b IGNITE-12329 Invalid handling of remote entries causes partition 
> desync and transaction hanging in COMMITTING state.
> the following tests:
> org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheColocatedDebugTest#testPutsMultithreadedColocated
> org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheColocatedDebugTest#testPutsMultithreadedMixed
> started to be flaky because their ordered putAll operations started 
> deadlocking.
> This is a regression compared to 2.7 and should be fixed, since it may affect 
> production clusters.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-12753) Cache SSL contexts in SslContextFactory

2020-03-11 Thread Denis Mekhanikov (Jira)


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

Denis Mekhanikov commented on IGNITE-12753:
---

[~ilyak] the tests are green. Could you help with a merge?

> Cache SSL contexts in SslContextFactory
> ---
>
> Key: IGNITE-12753
> URL: https://issues.apache.org/jira/browse/IGNITE-12753
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Denis Mekhanikov
>Assignee: Denis Mekhanikov
>Priority: Major
> Fix For: 2.9
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When SSL is enabled in a cluster, SslContextFactory#createSslContext is 
> created every time when connections between nodes are created. It involves 
> accessing key storage on disk. It may slow down creation of new communication 
> connections and block striped pool threads if disks are slow.
> SSL contexts are stateless and can be shared between threads, so it's safe to 
> create an SSL context once and use the same instance every time.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-12753) Cache SSL contexts in SslContextFactory

2020-03-11 Thread Ignite TC Bot (Jira)


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

Ignite TC Bot commented on IGNITE-12753:


{panel:title=Branch: [pull/7497/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
[TeamCity *-- Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=5102616buildTypeId=IgniteTests24Java8_RunAll]

> Cache SSL contexts in SslContextFactory
> ---
>
> Key: IGNITE-12753
> URL: https://issues.apache.org/jira/browse/IGNITE-12753
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Denis Mekhanikov
>Assignee: Denis Mekhanikov
>Priority: Major
> Fix For: 2.9
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When SSL is enabled in a cluster, SslContextFactory#createSslContext is 
> created every time when connections between nodes are created. It involves 
> accessing key storage on disk. It may slow down creation of new communication 
> connections and block striped pool threads if disks are slow.
> SSL contexts are stateless and can be shared between threads, so it's safe to 
> create an SSL context once and use the same instance every time.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)