[jira] [Commented] (IGNITE-18302) ignite-spring-sessions: IgniteSession serialization drags its parent class

2023-09-07 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-18302:
---

[~anovikov] LGTM in general, please fix a couple of minor things in PR before 
merging. 

> ignite-spring-sessions: IgniteSession serialization drags its parent class
> --
>
> Key: IGNITE-18302
> URL: https://issues.apache.org/jira/browse/IGNITE-18302
> Project: Ignite
>  Issue Type: Bug
>  Components: extensions
>Affects Versions: 2.15
>Reporter: Alexandr Shapkin
>Assignee: Andrey Novikov
>Priority: Major
> Fix For: 2.16
>
>
> In short, there is a bug in ignite-spring-session-ext implementation.
> We store IgniteIndexedSessionRepository${{{}IgniteSession{}}} in the cache, 
> but it’s an internal non-static class, having a reference to the parent 
> [\{{{}IgniteIndexedSessionRepository{}}}] indirectly.
> Hence, during the serialization Ignite also writes {{{}name=this$0, 
> type=Object, fieldId=0xCBDD23AA (-874699862){}}}, which is the reference to 
> {{{}IgniteIndexedSessionRepository{}}}. That leads to the following issues:
>  * we are serializing and saving internal utility data, like}} Ignite 
> ignite{}}}, {{private IndexResolver indexResolver}} etc
>  * one of the IgniteIndexedSessionRepository’s fields is IgniteCache itself - 
> {{IgniteCache sessions}} that basically keeps every 
> session so far leading to a StackOverflow error after some time. 
>  
> {code:java}
> [2022-11-25T17:27:29,268][ERROR][sys-stripe-0-#1%USERS_IGNITE%][GridCacheIoManager]
>  Failed processing message [senderId=0f0ca915-d6cd-4580-92a3-1fbc3d2a5722, 
> msg=GridNearSingleGetResponse [futId=1669397231378, res=-547701325, 
> topVer=null, err=null, flags=0]] 2java.lang.StackOverflowError: null 3 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedMarshallerUtils.descriptorFromCache(OptimizedMarshallerUtils.java:328)
>  ~[ignite-core-8.8.22.jar:8.8.22] 4 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedMarshallerUtils.classDescriptor(OptimizedMarshallerUtils.java:273)
>  ~[ignite-core-8.8.22.jar:8.8.22] 5 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readObject0(OptimizedObjectInputStream.java:354)
>  ~[ignite-core-8.8.22.jar:8.8.22] 6 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readObjectOverride(OptimizedObjectInputStream.java:211)
>  ~[ignite-core-8.8.22.jar:8.8.22] 7 at 
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:480) ~[?:?] 8 at 
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:447) ~[?:?] 9 at 
> org.apache.ignite.internal.processors.cache.GridCacheProxyImpl.readExternal(GridCacheProxyImpl.java:1662)
>  ~[ignite-core-8.8.22.jar:8.8.22] 10 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readExternalizable(OptimizedObjectInputStream.java:569)
>  ~[ignite-core-8.8.22.jar:8.8.22] 11 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedClassDescriptor.read(OptimizedClassDescriptor.java:979)
>  ~[ignite-core-8.8.22.jar:8.8.22] 12 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readObject0(OptimizedObjectInputStream.java:359)
>  ~[ignite-core-8.8.22.jar:8.8.22] 13 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readObjectOverride(OptimizedObjectInputStream.java:211)
>  ~[ignite-core-8.8.22.jar:8.8.22] 14 at 
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:480) ~[?:?] 15 at 
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:447) ~[?:?] 16... 
> 17[2022-11-25T17:27:29,276][ERROR][sys-stripe-0-#1%USERS_IGNITE%][] Critical 
> system error detected. Will be handled accordingly to configured handler 
> [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, 
> super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=CRITICAL_ERROR, 
> err=java.lang.StackOverflowError]]{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (IGNITE-18302) ignite-spring-sessions: IgniteSession serialization drags its parent class

2023-09-01 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin reassigned IGNITE-18302:
-

Assignee: Andrey Novikov  (was: Alexandr Shapkin)

> ignite-spring-sessions: IgniteSession serialization drags its parent class
> --
>
> Key: IGNITE-18302
> URL: https://issues.apache.org/jira/browse/IGNITE-18302
> Project: Ignite
>  Issue Type: Bug
>  Components: extensions
>Reporter: Alexandr Shapkin
>Assignee: Andrey Novikov
>Priority: Major
>
> In short, there is a bug in ignite-spring-session-ext implementation.
> We store IgniteIndexedSessionRepository${{{}IgniteSession{}}} in the cache, 
> but it’s an internal non-static class, having a reference to the parent 
> [\{{{}IgniteIndexedSessionRepository{}}}] indirectly.
> Hence, during the serialization Ignite also writes {{{}name=this$0, 
> type=Object, fieldId=0xCBDD23AA (-874699862){}}}, which is the reference to 
> {{{}IgniteIndexedSessionRepository{}}}. That leads to the following issues:
>  * we are serializing and saving internal utility data, like}} Ignite 
> ignite{}}}, {{private IndexResolver indexResolver}} etc
>  * one of the IgniteIndexedSessionRepository’s fields is IgniteCache itself - 
> {{IgniteCache sessions}} that basically keeps every 
> session so far leading to a StackOverflow error after some time. 
>  
> {code:java}
> [2022-11-25T17:27:29,268][ERROR][sys-stripe-0-#1%USERS_IGNITE%][GridCacheIoManager]
>  Failed processing message [senderId=0f0ca915-d6cd-4580-92a3-1fbc3d2a5722, 
> msg=GridNearSingleGetResponse [futId=1669397231378, res=-547701325, 
> topVer=null, err=null, flags=0]] 2java.lang.StackOverflowError: null 3 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedMarshallerUtils.descriptorFromCache(OptimizedMarshallerUtils.java:328)
>  ~[ignite-core-8.8.22.jar:8.8.22] 4 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedMarshallerUtils.classDescriptor(OptimizedMarshallerUtils.java:273)
>  ~[ignite-core-8.8.22.jar:8.8.22] 5 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readObject0(OptimizedObjectInputStream.java:354)
>  ~[ignite-core-8.8.22.jar:8.8.22] 6 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readObjectOverride(OptimizedObjectInputStream.java:211)
>  ~[ignite-core-8.8.22.jar:8.8.22] 7 at 
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:480) ~[?:?] 8 at 
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:447) ~[?:?] 9 at 
> org.apache.ignite.internal.processors.cache.GridCacheProxyImpl.readExternal(GridCacheProxyImpl.java:1662)
>  ~[ignite-core-8.8.22.jar:8.8.22] 10 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readExternalizable(OptimizedObjectInputStream.java:569)
>  ~[ignite-core-8.8.22.jar:8.8.22] 11 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedClassDescriptor.read(OptimizedClassDescriptor.java:979)
>  ~[ignite-core-8.8.22.jar:8.8.22] 12 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readObject0(OptimizedObjectInputStream.java:359)
>  ~[ignite-core-8.8.22.jar:8.8.22] 13 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readObjectOverride(OptimizedObjectInputStream.java:211)
>  ~[ignite-core-8.8.22.jar:8.8.22] 14 at 
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:480) ~[?:?] 15 at 
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:447) ~[?:?] 16... 
> 17[2022-11-25T17:27:29,276][ERROR][sys-stripe-0-#1%USERS_IGNITE%][] Critical 
> system error detected. Will be handled accordingly to configured handler 
> [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, 
> super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=CRITICAL_ERROR, 
> err=java.lang.StackOverflowError]]{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-20139) RandomForestClassifierTrainer accuracy issue

2023-08-09 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-20139:
--
Description: 
We tried to use machine learning capabilities, and discovered a bug in 
implementation of Random Forest. When comparing Ignite's output with python 
prototype (scikit-learn lib), we noticed that Ignite's predictions have much 
lower accuracy despite using the same data set and model parameters. 

Further investigation showed that Ignite generates decision trees that kinda 
"loop". The tree starts checking the same condition over and over until it 
reaches the maximum tree depth.

I've attached a standalone reproducer which uses a small excerpt of our data 
set. 

It loads data from the csv file, then performs the training of the model for 
just 1 tree. Then the reproducer finds one of the looping branches and prints 
it. You will see that every single node in the branch uses the same feature, 
value and has then same calculated impurity. 

On my machine the code reproduces this issue 100% of time.

I've also attached an example of the tree generated by python's scikit-learn on 
the same data set with the same parameters. In python the tree usually doesn't 
get deeper than 20 nodes.

  was:
We tried to use GridGain's machine learning capabilities, and discovered a bug 
in GG's implementation of Random Forest. When comparing GG's output with python 
prototype (scikit-learn lib), we noticed that GG's predictions have much lower 
accuracy despite using the same data set and model parameters. 

Further investigation showed that GridGain generates decision trees that kinda 
"loop". The tree starts checking the same condition over and over until it 
reaches the maximum tree depth.

I've attached a standalone reproducer which uses a small excerpt of our data 
set. 

It loads data from the csv file, then performs the training of the model for 
just 1 tree. Then the reproducer finds one of the looping branches and prints 
it. You will see that every single node in the branch uses the same feature, 
value and has then same calculated impurity. 

On my machine the code reproduces this issue 100% of time.

I've also attached an example of the tree generated by python's scikit-learn on 
the same data set with the same parameters. In python the tree usually doesn't 
get deeper than 20 nodes.


> RandomForestClassifierTrainer accuracy issue
> 
>
> Key: IGNITE-20139
> URL: https://issues.apache.org/jira/browse/IGNITE-20139
> Project: Ignite
>  Issue Type: Bug
>  Components: ml
>Affects Versions: 2.15
>Reporter: Alexandr Shapkin
>Assignee: Igor Belyakov
>Priority: Major
> Attachments: TreeSample2_Portfolio_Change.png, random-forest.zip
>
>
> We tried to use machine learning capabilities, and discovered a bug in 
> implementation of Random Forest. When comparing Ignite's output with python 
> prototype (scikit-learn lib), we noticed that Ignite's predictions have much 
> lower accuracy despite using the same data set and model parameters. 
> Further investigation showed that Ignite generates decision trees that kinda 
> "loop". The tree starts checking the same condition over and over until it 
> reaches the maximum tree depth.
> I've attached a standalone reproducer which uses a small excerpt of our data 
> set. 
> It loads data from the csv file, then performs the training of the model for 
> just 1 tree. Then the reproducer finds one of the looping branches and prints 
> it. You will see that every single node in the branch uses the same feature, 
> value and has then same calculated impurity. 
> On my machine the code reproduces this issue 100% of time.
> I've also attached an example of the tree generated by python's scikit-learn 
> on the same data set with the same parameters. In python the tree usually 
> doesn't get deeper than 20 nodes.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-20139) RandomForestClassifierTrainer accuracy issue

2023-08-02 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-20139:
---

[~zaleslaw] could you please take a look? Seems to be a valid issue alongside 
the attached reproducer.

> RandomForestClassifierTrainer accuracy issue
> 
>
> Key: IGNITE-20139
> URL: https://issues.apache.org/jira/browse/IGNITE-20139
> Project: Ignite
>  Issue Type: Bug
>  Components: ml
>Affects Versions: 2.15
>Reporter: Alexandr Shapkin
>Priority: Major
> Attachments: TreeSample2_Portfolio_Change.png, random-forest.zip
>
>
> We tried to use GridGain's machine learning capabilities, and discovered a 
> bug in GG's implementation of Random Forest. When comparing GG's output with 
> python prototype (scikit-learn lib), we noticed that GG's predictions have 
> much lower accuracy despite using the same data set and model parameters. 
> Further investigation showed that GridGain generates decision trees that 
> kinda "loop". The tree starts checking the same condition over and over until 
> it reaches the maximum tree depth.
> I've attached a standalone reproducer which uses a small excerpt of our data 
> set. 
> It loads data from the csv file, then performs the training of the model for 
> just 1 tree. Then the reproducer finds one of the looping branches and prints 
> it. You will see that every single node in the branch uses the same feature, 
> value and has then same calculated impurity. 
> On my machine the code reproduces this issue 100% of time.
> I've also attached an example of the tree generated by python's scikit-learn 
> on the same data set with the same parameters. In python the tree usually 
> doesn't get deeper than 20 nodes.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-20139) RandomForestClassifierTrainer accuracy issue

2023-08-02 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-20139:
--
Summary: RandomForestClassifierTrainer accuracy issue  (was: 
RandomForestClassifierTrainer is checking the same conditions)

> RandomForestClassifierTrainer accuracy issue
> 
>
> Key: IGNITE-20139
> URL: https://issues.apache.org/jira/browse/IGNITE-20139
> Project: Ignite
>  Issue Type: Bug
>  Components: ml
>Affects Versions: 2.15
>Reporter: Alexandr Shapkin
>Priority: Major
> Attachments: TreeSample2_Portfolio_Change.png, random-forest.zip
>
>
> We tried to use GridGain's machine learning capabilities, and discovered a 
> bug in GG's implementation of Random Forest. When comparing GG's output with 
> python prototype (scikit-learn lib), we noticed that GG's predictions have 
> much lower accuracy despite using the same data set and model parameters. 
> Further investigation showed that GridGain generates decision trees that 
> kinda "loop". The tree starts checking the same condition over and over until 
> it reaches the maximum tree depth.
> I've attached a standalone reproducer which uses a small excerpt of our data 
> set. 
> It loads data from the csv file, then performs the training of the model for 
> just 1 tree. Then the reproducer finds one of the looping branches and prints 
> it. You will see that every single node in the branch uses the same feature, 
> value and has then same calculated impurity. 
> On my machine the code reproduces this issue 100% of time.
> I've also attached an example of the tree generated by python's scikit-learn 
> on the same data set with the same parameters. In python the tree usually 
> doesn't get deeper than 20 nodes.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-20139) RandomForestClassifierTrainer is checking the same conditions

2023-08-02 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-20139:
--
Attachment: random-forest.zip
TreeSample2_Portfolio_Change.png

> RandomForestClassifierTrainer is checking the same conditions
> -
>
> Key: IGNITE-20139
> URL: https://issues.apache.org/jira/browse/IGNITE-20139
> Project: Ignite
>  Issue Type: Bug
>  Components: ml
>Affects Versions: 2.15
>Reporter: Alexandr Shapkin
>Priority: Major
> Attachments: TreeSample2_Portfolio_Change.png, random-forest.zip
>
>
> We tried to use GridGain's machine learning capabilities, and discovered a 
> bug in GG's implementation of Random Forest. When comparing GG's output with 
> python prototype (scikit-learn lib), we noticed that GG's predictions have 
> much lower accuracy despite using the same data set and model parameters. 
> Further investigation showed that GridGain generates decision trees that 
> kinda "loop". The tree starts checking the same condition over and over until 
> it reaches the maximum tree depth.
> I've attached a standalone reproducer which uses a small excerpt of our data 
> set. 
> It loads data from the csv file, then performs the training of the model for 
> just 1 tree. Then the reproducer finds one of the looping branches and prints 
> it. You will see that every single node in the branch uses the same feature, 
> value and has then same calculated impurity. 
> On my machine the code reproduces this issue 100% of time.
> I've also attached an example of the tree generated by python's scikit-learn 
> on the same data set with the same parameters. In python the tree usually 
> doesn't get deeper than 20 nodes.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-20139) RandomForestClassifierTrainer is checking the same conditions

2023-08-02 Thread Alexandr Shapkin (Jira)
Alexandr Shapkin created IGNITE-20139:
-

 Summary: RandomForestClassifierTrainer is checking the same 
conditions
 Key: IGNITE-20139
 URL: https://issues.apache.org/jira/browse/IGNITE-20139
 Project: Ignite
  Issue Type: Bug
  Components: ml
Affects Versions: 2.15
Reporter: Alexandr Shapkin
 Attachments: TreeSample2_Portfolio_Change.png, random-forest.zip

We tried to use GridGain's machine learning capabilities, and discovered a bug 
in GG's implementation of Random Forest. When comparing GG's output with python 
prototype (scikit-learn lib), we noticed that GG's predictions have much lower 
accuracy despite using the same data set and model parameters. 

Further investigation showed that GridGain generates decision trees that kinda 
"loop". The tree starts checking the same condition over and over until it 
reaches the maximum tree depth.

I've attached a standalone reproducer which uses a small excerpt of our data 
set. 

It loads data from the csv file, then performs the training of the model for 
just 1 tree. Then the reproducer finds one of the looping branches and prints 
it. You will see that every single node in the branch uses the same feature, 
value and has then same calculated impurity. 

On my machine the code reproduces this issue 100% of time.

I've also attached an example of the tree generated by python's scikit-learn on 
the same data set with the same parameters. In python the tree usually doesn't 
get deeper than 20 nodes.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-19203) NPE on inserting data concurrently with table deletion

2023-04-04 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-19203:
--
Description: 
Occasionally, the following errors can be reproduced: The program that executes 
the Insert statement does not report an error, The server node reported the 
following error:
{code:java}
四月 03, 2023 5:27:43 下午 org.apache.ignite.logger.java.JavaLogger error
严重: Received message without registered handler (will ignore) [futId=2, 
writeVer=null, msg=GridNearAtomicSingleUpdateFilterRequest 
[filter=[o.a.i.i.processors.cache.CacheEntrySerializablePredicate@6ff66670], 
parent=GridNearAtomicSingleUpdateRequest [key=null, 
parent=GridNearAtomicAbstractSingleUpdateRequest [nodeId=null, futId=2, 
topVer=AffinityTopologyVersion [topVer=2, minorTopVer=2], 
parent=GridNearAtomicAbstractUpdateRequest [res=null, 
flags=needRes|keepBinary, node=01ece6ae-c041-4325-ae6a-810233d0a684, 
locTopVer=AffinityTopologyVersion [topVer=4, minorTopVer=0], 
msgTopVer=AffinityTopologyVersion [topVer=2, minorTopVer=2], desc=null]
Registered listeners:
95945896=[GridNearAtomicAbstractUpdateRequest handler [msgIdx=0], 
GridNearAtomicUpdateResponse handler [msgIdx=1], GridDhtAtomicUpdateRequest 
handler [msgIdx=2], GridDhtAtomicUpdateResponse handler [msgIdx=3], 
GridDhtAtomicDeferredUpdateResponse handler [msgIdx=4], 
GridDhtAtomicNearResponse handler [msgIdx=5], GridNearAtomicCheckUpdateRequest 
handler [msgIdx=6]]
四月 03, 2023 5:27:43 下午 org.apache.ignite.logger.java.JavaLogger error
严重: Failed to process failed message: java.lang.NullPointerException
java.lang.NullPointerException
at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.UpdateErrors.prepareMarshal(UpdateErrors.java:134)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse.prepareMarshal(GridNearAtomicUpdateResponse.java:370)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onSend(GridCacheIoManager.java:1239)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1274)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1325)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.sendResponseOnFailedMessage(GridCacheIoManager.java:652)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.processFailedMessage(GridCacheIoManager.java:1065)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:403)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:319)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:110)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:309)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1725)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1332)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$4800(GridIoManager.java:157)
at 
org.apache.ignite.internal.managers.communication.GridIoManager$8.execute(GridIoManager.java:1217)
at 
org.apache.ignite.internal.managers.communication.TraceRunnable.run(TraceRunnable.java:54)
at 
org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:564)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119)
at java.lang.Thread.run(Thread.java:748){code}
 

test code:
{code:java}
public class StartServer { 
   public static void main(String[] args) 
   { Ignite ignite = Ignition.start(); } }{code}
 

 
{code:java}
public class StartClient01 {
public static void main(String[] args) {
Ignition.setClientMode(true);
Ignite ignite = Ignition.start();

IgniteCache cache = ignite.getOrCreateCache("dummy");

cache.query(new SqlFieldsQuery("CREATE TABLE PRODUCT (" +
"  ID INT(11)," +
"  NAME CHAR(35)," +
"  PRODUCTCODE CHAR(10)," +
"  DISTRICT CHAR(100)," +
"  NUMBER INT(11)," +
"  PRIMARY KEY (ID)" +
") WITH \"TEMPLATE=REPLICATED, CACHE_NAME=PRODUCT\";"));

for (int i = 1; i <= 100; ++i) {
cache.query(new SqlFieldsQuery("INSERT INTO PRODUCT (ID, NAME, 
PRODUCTCODE, DISTRICT, NUMBER) VALUES (?, ?, ?, ?, ?);")
.setArgs(i, "product" + i, "p" + i, "a product", 
100)).getAll();

System.out.println(i);
}
}
} {code}
 
{code:java}
public class StartClient02 {
public static void main(String[] args) {
Ignition.setClientMode(true);
 

[jira] [Updated] (IGNITE-19203) NPE on inserting data concurrently with table deletion

2023-04-04 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-19203:
--
Description: 
Occasionally, the following errors can be reproduced: The program that executes 
the Insert statement does not report an error, The server node reported the 
following error:
{code:java}
四月 03, 2023 5:27:43 下午 org.apache.ignite.logger.java.JavaLogger error
严重: Received message without registered handler (will ignore) [futId=2, 
writeVer=null, msg=GridNearAtomicSingleUpdateFilterRequest 
[filter=[o.a.i.i.processors.cache.CacheEntrySerializablePredicate@6ff66670], 
parent=GridNearAtomicSingleUpdateRequest [key=null, 
parent=GridNearAtomicAbstractSingleUpdateRequest [nodeId=null, futId=2, 
topVer=AffinityTopologyVersion [topVer=2, minorTopVer=2], 
parent=GridNearAtomicAbstractUpdateRequest [res=null, 
flags=needRes|keepBinary, node=01ece6ae-c041-4325-ae6a-810233d0a684, 
locTopVer=AffinityTopologyVersion [topVer=4, minorTopVer=0], 
msgTopVer=AffinityTopologyVersion [topVer=2, minorTopVer=2], desc=null]
Registered listeners:
95945896=[GridNearAtomicAbstractUpdateRequest handler [msgIdx=0], 
GridNearAtomicUpdateResponse handler [msgIdx=1], GridDhtAtomicUpdateRequest 
handler [msgIdx=2], GridDhtAtomicUpdateResponse handler [msgIdx=3], 
GridDhtAtomicDeferredUpdateResponse handler [msgIdx=4], 
GridDhtAtomicNearResponse handler [msgIdx=5], GridNearAtomicCheckUpdateRequest 
handler [msgIdx=6]]
四月 03, 2023 5:27:43 下午 org.apache.ignite.logger.java.JavaLogger error
严重: Failed to process failed message: java.lang.NullPointerException
java.lang.NullPointerException
at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.UpdateErrors.prepareMarshal(UpdateErrors.java:134)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse.prepareMarshal(GridNearAtomicUpdateResponse.java:370)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onSend(GridCacheIoManager.java:1239)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1274)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1325)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.sendResponseOnFailedMessage(GridCacheIoManager.java:652)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.processFailedMessage(GridCacheIoManager.java:1065)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:403)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:319)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:110)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:309)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1725)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1332)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$4800(GridIoManager.java:157)
at 
org.apache.ignite.internal.managers.communication.GridIoManager$8.execute(GridIoManager.java:1217)
at 
org.apache.ignite.internal.managers.communication.TraceRunnable.run(TraceRunnable.java:54)
at 
org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:564)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119)
at java.lang.Thread.run(Thread.java:748){code}
 

test code:
{code:java}
public class StartServer { 
   public static void main(String[] args) 
   { Ignite ignite = Ignition.start(); } }{code}
 

 
{code:java}
public class StartClient01 {
public static void main(String[] args) {
Ignition.setClientMode(true);
Ignite ignite = Ignition.start();

IgniteCache cache = ignite.getOrCreateCache("dummy");

cache.query(new SqlFieldsQuery("CREATE TABLE PRODUCT (" +
"  ID INT(11)," +
"  NAME CHAR(35)," +
"  PRODUCTCODE CHAR(10)," +
"  DISTRICT CHAR(100)," +
"  NUMBER INT(11)," +
"  PRIMARY KEY (ID)" +
") WITH \"TEMPLATE=REPLICATED, CACHE_NAME=PRODUCT\";"));

for (int i = 1; i <= 100; ++i) {
cache.query(new SqlFieldsQuery("INSERT INTO PRODUCT (ID, NAME, 
PRODUCTCODE, DISTRICT, NUMBER) VALUES (?, ?, ?, ?, ?);")
.setArgs(i, "product" + i, "p" + i, "a product", 
100)).getAll();

System.out.println(i);
}
}
} {code}
{{}}
{code:java}
public class StartClient02 {
public static void main(String[] args) {

[jira] [Updated] (IGNITE-19203) NPE on inserting data concurrently with table deletion

2023-04-04 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-19203:
--
Description: 
Occasionally, the following errors can be reproduced: The program that executes 
the Insert statement does not report an error, The server node reported the 
following error:
{code:java}
四月 03, 2023 5:27:43 下午 org.apache.ignite.logger.java.JavaLogger error
严重: Received message without registered handler (will ignore) [futId=2, 
writeVer=null, msg=GridNearAtomicSingleUpdateFilterRequest 
[filter=[o.a.i.i.processors.cache.CacheEntrySerializablePredicate@6ff66670], 
parent=GridNearAtomicSingleUpdateRequest [key=null, 
parent=GridNearAtomicAbstractSingleUpdateRequest [nodeId=null, futId=2, 
topVer=AffinityTopologyVersion [topVer=2, minorTopVer=2], 
parent=GridNearAtomicAbstractUpdateRequest [res=null, 
flags=needRes|keepBinary, node=01ece6ae-c041-4325-ae6a-810233d0a684, 
locTopVer=AffinityTopologyVersion [topVer=4, minorTopVer=0], 
msgTopVer=AffinityTopologyVersion [topVer=2, minorTopVer=2], desc=null]
Registered listeners:
95945896=[GridNearAtomicAbstractUpdateRequest handler [msgIdx=0], 
GridNearAtomicUpdateResponse handler [msgIdx=1], GridDhtAtomicUpdateRequest 
handler [msgIdx=2], GridDhtAtomicUpdateResponse handler [msgIdx=3], 
GridDhtAtomicDeferredUpdateResponse handler [msgIdx=4], 
GridDhtAtomicNearResponse handler [msgIdx=5], GridNearAtomicCheckUpdateRequest 
handler [msgIdx=6]]
四月 03, 2023 5:27:43 下午 org.apache.ignite.logger.java.JavaLogger error
严重: Failed to process failed message: java.lang.NullPointerException
java.lang.NullPointerException
at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.UpdateErrors.prepareMarshal(UpdateErrors.java:134)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse.prepareMarshal(GridNearAtomicUpdateResponse.java:370)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onSend(GridCacheIoManager.java:1239)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1274)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1325)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.sendResponseOnFailedMessage(GridCacheIoManager.java:652)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.processFailedMessage(GridCacheIoManager.java:1065)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:403)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:319)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:110)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:309)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1725)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1332)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$4800(GridIoManager.java:157)
at 
org.apache.ignite.internal.managers.communication.GridIoManager$8.execute(GridIoManager.java:1217)
at 
org.apache.ignite.internal.managers.communication.TraceRunnable.run(TraceRunnable.java:54)
at 
org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:564)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119)
at java.lang.Thread.run(Thread.java:748){code}
 

test code:

{{}}
{code:java}
public class StartServer { 
   public static void main(String[] args) 
   { Ignite ignite = Ignition.start(); } }{code}
{{}}

  was:
Occasionally, the following errors can be reproduced: The program that executes 
the Insert statement does not report an error, The server node reported the 
following error:

 

{{}}
{code:java}

{code}
{{四月 03, 2023 5:27:43 下午 org.apache.ignite.logger.java.JavaLogger error
严重: Received message without registered handler (will ignore) [futId=2, 
writeVer=null, msg=GridNearAtomicSingleUpdateFilterRequest 
[filter=[o.a.i.i.processors.cache.CacheEntrySerializablePredicate@6ff66670], 
parent=GridNearAtomicSingleUpdateRequest [key=null, 
parent=GridNearAtomicAbstractSingleUpdateRequest [nodeId=null, futId=2, 
topVer=AffinityTopologyVersion [topVer=2, minorTopVer=2], 
parent=GridNearAtomicAbstractUpdateRequest [res=null, 
flags=needRes|keepBinary, node=01ece6ae-c041-4325-ae6a-810233d0a684, 
locTopVer=AffinityTopologyVersion [topVer=4, minorTopVer=0], 
msgTopVer=AffinityTopologyVersion [topVer=2, minorTopVer=2], desc=null]
Registered listeners:
95945896=[GridNearAtomicAbstractUpdateRequest handler [msgIdx=0], 

[jira] [Created] (IGNITE-19203) NPE on inserting data concurrently with table deletion

2023-04-04 Thread Alexandr Shapkin (Jira)
Alexandr Shapkin created IGNITE-19203:
-

 Summary: NPE on inserting data concurrently with table deletion
 Key: IGNITE-19203
 URL: https://issues.apache.org/jira/browse/IGNITE-19203
 Project: Ignite
  Issue Type: Task
  Components: sql
Reporter: Alexandr Shapkin


Occasionally, the following errors can be reproduced: The program that executes 
the Insert statement does not report an error, The server node reported the 
following error:

 

{{}}
{code:java}

{code}
{{四月 03, 2023 5:27:43 下午 org.apache.ignite.logger.java.JavaLogger error
严重: Received message without registered handler (will ignore) [futId=2, 
writeVer=null, msg=GridNearAtomicSingleUpdateFilterRequest 
[filter=[o.a.i.i.processors.cache.CacheEntrySerializablePredicate@6ff66670], 
parent=GridNearAtomicSingleUpdateRequest [key=null, 
parent=GridNearAtomicAbstractSingleUpdateRequest [nodeId=null, futId=2, 
topVer=AffinityTopologyVersion [topVer=2, minorTopVer=2], 
parent=GridNearAtomicAbstractUpdateRequest [res=null, 
flags=needRes|keepBinary, node=01ece6ae-c041-4325-ae6a-810233d0a684, 
locTopVer=AffinityTopologyVersion [topVer=4, minorTopVer=0], 
msgTopVer=AffinityTopologyVersion [topVer=2, minorTopVer=2], desc=null]
Registered listeners:
95945896=[GridNearAtomicAbstractUpdateRequest handler [msgIdx=0], 
GridNearAtomicUpdateResponse handler [msgIdx=1], GridDhtAtomicUpdateRequest 
handler [msgIdx=2], GridDhtAtomicUpdateResponse handler [msgIdx=3], 
GridDhtAtomicDeferredUpdateResponse handler [msgIdx=4], 
GridDhtAtomicNearResponse handler [msgIdx=5], GridNearAtomicCheckUpdateRequest 
handler [msgIdx=6]]
四月 03, 2023 5:27:43 下午 org.apache.ignite.logger.java.JavaLogger error
严重: Failed to process failed message: java.lang.NullPointerException
java.lang.NullPointerException
at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.UpdateErrors.prepareMarshal(UpdateErrors.java:134)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse.prepareMarshal(GridNearAtomicUpdateResponse.java:370)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onSend(GridCacheIoManager.java:1239)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1274)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1325)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.sendResponseOnFailedMessage(GridCacheIoManager.java:652)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.processFailedMessage(GridCacheIoManager.java:1065)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:403)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:319)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:110)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:309)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1725)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1332)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$4800(GridIoManager.java:157)
at 
org.apache.ignite.internal.managers.communication.GridIoManager$8.execute(GridIoManager.java:1217)
at 
org.apache.ignite.internal.managers.communication.TraceRunnable.run(TraceRunnable.java:54)
at 
org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:564)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119)
at java.lang.Thread.run(Thread.java:748) }}




 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (IGNITE-18302) ignite-spring-sessions: IgniteSession serialization drags its parent class

2023-02-02 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin reassigned IGNITE-18302:
-

Assignee: Alexandr Shapkin

> ignite-spring-sessions: IgniteSession serialization drags its parent class
> --
>
> Key: IGNITE-18302
> URL: https://issues.apache.org/jira/browse/IGNITE-18302
> Project: Ignite
>  Issue Type: Bug
>  Components: extensions
>Reporter: Alexandr Shapkin
>Assignee: Alexandr Shapkin
>Priority: Major
>
> In short, there is a bug in ignite-spring-session-ext implementation.
> We store IgniteIndexedSessionRepository${{{}IgniteSession{}}} in the cache, 
> but it’s an internal non-static class, having a reference to the parent 
> [\{{{}IgniteIndexedSessionRepository{}}}] indirectly.
> Hence, during the serialization Ignite also writes {{{}name=this$0, 
> type=Object, fieldId=0xCBDD23AA (-874699862){}}}, which is the reference to 
> {{{}IgniteIndexedSessionRepository{}}}. That leads to the following issues:
>  * we are serializing and saving internal utility data, like}} Ignite 
> ignite{}}}, {{private IndexResolver indexResolver}} etc
>  * one of the IgniteIndexedSessionRepository’s fields is IgniteCache itself - 
> {{IgniteCache sessions}} that basically keeps every 
> session so far leading to a StackOverflow error after some time. 
>  
> {code:java}
> [2022-11-25T17:27:29,268][ERROR][sys-stripe-0-#1%USERS_IGNITE%][GridCacheIoManager]
>  Failed processing message [senderId=0f0ca915-d6cd-4580-92a3-1fbc3d2a5722, 
> msg=GridNearSingleGetResponse [futId=1669397231378, res=-547701325, 
> topVer=null, err=null, flags=0]] 2java.lang.StackOverflowError: null 3 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedMarshallerUtils.descriptorFromCache(OptimizedMarshallerUtils.java:328)
>  ~[ignite-core-8.8.22.jar:8.8.22] 4 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedMarshallerUtils.classDescriptor(OptimizedMarshallerUtils.java:273)
>  ~[ignite-core-8.8.22.jar:8.8.22] 5 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readObject0(OptimizedObjectInputStream.java:354)
>  ~[ignite-core-8.8.22.jar:8.8.22] 6 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readObjectOverride(OptimizedObjectInputStream.java:211)
>  ~[ignite-core-8.8.22.jar:8.8.22] 7 at 
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:480) ~[?:?] 8 at 
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:447) ~[?:?] 9 at 
> org.apache.ignite.internal.processors.cache.GridCacheProxyImpl.readExternal(GridCacheProxyImpl.java:1662)
>  ~[ignite-core-8.8.22.jar:8.8.22] 10 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readExternalizable(OptimizedObjectInputStream.java:569)
>  ~[ignite-core-8.8.22.jar:8.8.22] 11 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedClassDescriptor.read(OptimizedClassDescriptor.java:979)
>  ~[ignite-core-8.8.22.jar:8.8.22] 12 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readObject0(OptimizedObjectInputStream.java:359)
>  ~[ignite-core-8.8.22.jar:8.8.22] 13 at 
> org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readObjectOverride(OptimizedObjectInputStream.java:211)
>  ~[ignite-core-8.8.22.jar:8.8.22] 14 at 
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:480) ~[?:?] 15 at 
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:447) ~[?:?] 16... 
> 17[2022-11-25T17:27:29,276][ERROR][sys-stripe-0-#1%USERS_IGNITE%][] Critical 
> system error detected. Will be handled accordingly to configured handler 
> [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, 
> super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=CRITICAL_ERROR, 
> err=java.lang.StackOverflowError]]{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-18427) .NET: Platform cache is not updated when ReadFromBackup is true

2022-12-29 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-18427:
---

[~ptupitsyn], looks good to me, thanks!

> .NET: Platform cache is not updated when ReadFromBackup is true
> ---
>
> Key: IGNITE-18427
> URL: https://issues.apache.org/jira/browse/IGNITE-18427
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Affects Versions: 2.14
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET, ise
> Fix For: 2.15
>
> Attachments: IgniteReproducer.csproj, Test.cs
>
>
> See attached reproducer. Client 2 has stale value when *ReadFromBackup = 
> true*.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-18247) .NET: Thin 3.0: LINQ: Operators and functions

2022-12-28 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-18247:
---

[~ptupitsyn] looks good to me. 

> .NET: Thin 3.0: LINQ: Operators and functions
> -
>
> Key: IGNITE-18247
> URL: https://issues.apache.org/jira/browse/IGNITE-18247
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET, LINQ, ignite-3
> Fix For: 3.0.0-beta2
>
>
> Implement support for operators and functions in LINQ:
> * Logic and arithmetic: ! + - * / = != %
> * String functions: ToLower, ToUpper, Trim, Contains, etc (see 
> *MethodVisitor*)
> * Date functions (see *MethodVisitor*)
> * Math (Abs, Exp, Log, Pow, etc - see *MethodVisitor*)
> * Regex



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-17724) .NET: TestPrimaryNodeLeaveClearsPlatformCache is flaky

2022-12-27 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-17724:
---

LGTM

> .NET: TestPrimaryNodeLeaveClearsPlatformCache is flaky
> --
>
> Key: IGNITE-17724
> URL: https://issues.apache.org/jira/browse/IGNITE-17724
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET
>
> Apache.Ignite.Core.Tests.Cache.Platform.PlatformCacheTopologyChangeTest.TestPrimaryNodeLeaveClearsPlatformCache
>  is flaky.
> https://ci.ignite.apache.org/test/-4466167631530075752?currentProjectId=IgniteTests24Java8=%3Cdefault%3E



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18189) Merge ignite-spark 3.2 and 2.4 extensions into a single module

2022-12-01 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-18189:
--
Fix Version/s: 2.14

> Merge ignite-spark 3.2 and 2.4 extensions into a single module
> --
>
> Key: IGNITE-18189
> URL: https://issues.apache.org/jira/browse/IGNITE-18189
> Project: Ignite
>  Issue Type: Task
>  Components: extensions
>Reporter: Alexandr Shapkin
>Assignee: Alexandr Shapkin
>Priority: Major
> Fix For: 2.14
>
>
> We need to do the following
> a) release ignite-spark 1.0.0 extension 
> b) merge ignite-spark and ignite-spark-3.2 modules
> c) release ignite-spark 2.0.0 extension (with spark 3.2)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (IGNITE-18315) [Extensions] Release Ignite Spring Extensions

2022-12-01 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin reassigned IGNITE-18315:
-

Component/s: extensions
   Assignee: Alexandr Shapkin
Description: 
We need to release Ithe following Ignite Spring extensions:

- 2.0.0 (Spark 2.4)

- 3.0.0 (Spark 3.2)

> [Extensions] Release Ignite Spring Extensions 
> --
>
> Key: IGNITE-18315
> URL: https://issues.apache.org/jira/browse/IGNITE-18315
> Project: Ignite
>  Issue Type: Task
>  Components: extensions
>Reporter: Alexandr Shapkin
>Assignee: Alexandr Shapkin
>Priority: Major
>
> We need to release Ithe following Ignite Spring extensions:
> - 2.0.0 (Spark 2.4)
> - 3.0.0 (Spark 3.2)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-18315) [Extensions] Release Ignite Spring Extensions

2022-12-01 Thread Alexandr Shapkin (Jira)
Alexandr Shapkin created IGNITE-18315:
-

 Summary: [Extensions] Release Ignite Spring Extensions 
 Key: IGNITE-18315
 URL: https://issues.apache.org/jira/browse/IGNITE-18315
 Project: Ignite
  Issue Type: Task
Reporter: Alexandr Shapkin






--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18302) ignite-spring-sessions: IgniteSession serialization drags its parent class

2022-12-01 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-18302:
--
Description: 
In short, there is a bug in ignite-spring-session-ext implementation.

We store IgniteIndexedSessionRepository${{{}IgniteSession{}}} in the cache, but 
it’s an internal non-static class, having a reference to the parent 
[\{{{}IgniteIndexedSessionRepository{}}}] indirectly.

Hence, during the serialization Ignite also writes {{{}name=this$0, 
type=Object, fieldId=0xCBDD23AA (-874699862){}}}, which is the reference to 
{{{}IgniteIndexedSessionRepository{}}}. That leads to the following issues:
 * we are serializing and saving internal utility data, like}} Ignite 
ignite{}}}, {{private IndexResolver indexResolver}} etc

 * one of the IgniteIndexedSessionRepository’s fields is IgniteCache itself - 
{{IgniteCache sessions}} that basically keeps every 
session so far leading to a StackOverflow error after some time. 

 
{code:java}
[2022-11-25T17:27:29,268][ERROR][sys-stripe-0-#1%USERS_IGNITE%][GridCacheIoManager]
 Failed processing message [senderId=0f0ca915-d6cd-4580-92a3-1fbc3d2a5722, 
msg=GridNearSingleGetResponse [futId=1669397231378, res=-547701325, 
topVer=null, err=null, flags=0]] 2java.lang.StackOverflowError: null 3 at 
org.apache.ignite.internal.marshaller.optimized.OptimizedMarshallerUtils.descriptorFromCache(OptimizedMarshallerUtils.java:328)
 ~[ignite-core-8.8.22.jar:8.8.22] 4 at 
org.apache.ignite.internal.marshaller.optimized.OptimizedMarshallerUtils.classDescriptor(OptimizedMarshallerUtils.java:273)
 ~[ignite-core-8.8.22.jar:8.8.22] 5 at 
org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readObject0(OptimizedObjectInputStream.java:354)
 ~[ignite-core-8.8.22.jar:8.8.22] 6 at 
org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readObjectOverride(OptimizedObjectInputStream.java:211)
 ~[ignite-core-8.8.22.jar:8.8.22] 7 at 
java.io.ObjectInputStream.readObject(ObjectInputStream.java:480) ~[?:?] 8 at 
java.io.ObjectInputStream.readObject(ObjectInputStream.java:447) ~[?:?] 9 at 
org.apache.ignite.internal.processors.cache.GridCacheProxyImpl.readExternal(GridCacheProxyImpl.java:1662)
 ~[ignite-core-8.8.22.jar:8.8.22] 10 at 
org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readExternalizable(OptimizedObjectInputStream.java:569)
 ~[ignite-core-8.8.22.jar:8.8.22] 11 at 
org.apache.ignite.internal.marshaller.optimized.OptimizedClassDescriptor.read(OptimizedClassDescriptor.java:979)
 ~[ignite-core-8.8.22.jar:8.8.22] 12 at 
org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readObject0(OptimizedObjectInputStream.java:359)
 ~[ignite-core-8.8.22.jar:8.8.22] 13 at 
org.apache.ignite.internal.marshaller.optimized.OptimizedObjectInputStream.readObjectOverride(OptimizedObjectInputStream.java:211)
 ~[ignite-core-8.8.22.jar:8.8.22] 14 at 
java.io.ObjectInputStream.readObject(ObjectInputStream.java:480) ~[?:?] 15 at 
java.io.ObjectInputStream.readObject(ObjectInputStream.java:447) ~[?:?] 16... 
17[2022-11-25T17:27:29,276][ERROR][sys-stripe-0-#1%USERS_IGNITE%][] Critical 
system error detected. Will be handled accordingly to configured handler 
[hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, 
super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
[SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
failureCtx=FailureContext [type=CRITICAL_ERROR, 
err=java.lang.StackOverflowError]]{code}

  was:
In short, there is a bug in ignite-spring-session-ext implementation.

We store IgniteIndexedSessionRepository${{{}IgniteSession{}}} in the cache, but 
it’s an internal non-static class, having a reference to the parent 
[{{{}IgniteIndexedSessionRepository{}}}] indirectly.

Hence, during the serialization Ignite also writes {{{}name=this$0, 
type=Object, fieldId=0xCBDD23AA (-874699862){}}}, which is the reference to 
{{{}IgniteIndexedSessionRepository{}}}. That leads to the following issues:
 * we are serializing and saving internal utility data, like{{{} Ignite 
ignite{}}}, {{private IndexResolver indexResolver}} etc

 * one of the IgniteIndexedSessionRepository’s fields is IgniteCache itself - 
{{IgniteCache sessions}} that basically keeps every 
session so far leading to a StackOverflow error after some time. 


> ignite-spring-sessions: IgniteSession serialization drags its parent class
> --
>
> Key: IGNITE-18302
> URL: https://issues.apache.org/jira/browse/IGNITE-18302
> Project: Ignite
>  Issue Type: Bug
>  Components: extensions
>Reporter: Alexandr Shapkin
>Priority: Major
>
> In short, there is a bug in ignite-spring-session-ext implementation.
> We store IgniteIndexedSessionRepository${{{}IgniteSession{}}} 

[jira] [Created] (IGNITE-18302) ignite-spring-sessions: IgniteSession serialization drags its parent class

2022-12-01 Thread Alexandr Shapkin (Jira)
Alexandr Shapkin created IGNITE-18302:
-

 Summary: ignite-spring-sessions: IgniteSession serialization drags 
its parent class
 Key: IGNITE-18302
 URL: https://issues.apache.org/jira/browse/IGNITE-18302
 Project: Ignite
  Issue Type: Bug
  Components: extensions
Reporter: Alexandr Shapkin


In short, there is a bug in ignite-spring-session-ext implementation.

We store IgniteIndexedSessionRepository${{{}IgniteSession{}}} in the cache, but 
it’s an internal non-static class, having a reference to the parent 
[{{{}IgniteIndexedSessionRepository{}}}] indirectly.

Hence, during the serialization Ignite also writes {{{}name=this$0, 
type=Object, fieldId=0xCBDD23AA (-874699862){}}}, which is the reference to 
{{{}IgniteIndexedSessionRepository{}}}. That leads to the following issues:
 * we are serializing and saving internal utility data, like{{{} Ignite 
ignite{}}}, {{private IndexResolver indexResolver}} etc

 * one of the IgniteIndexedSessionRepository’s fields is IgniteCache itself - 
{{IgniteCache sessions}} that basically keeps every 
session so far leading to a StackOverflow error after some time. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-18189) Merge ignite-spark 3.2 and 2.4 extensions into a single module

2022-11-17 Thread Alexandr Shapkin (Jira)
Alexandr Shapkin created IGNITE-18189:
-

 Summary: Merge ignite-spark 3.2 and 2.4 extensions into a single 
module
 Key: IGNITE-18189
 URL: https://issues.apache.org/jira/browse/IGNITE-18189
 Project: Ignite
  Issue Type: Task
  Components: extensions
Reporter: Alexandr Shapkin
Assignee: Alexandr Shapkin


We need to do the following

a) release ignite-spark 1.0.0 extension 

b) merge ignite-spark and ignite-spark-3.2 modules

c) release ignite-spark 2.0.0 extension (with spark 3.2)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-17147) Ignite should not talk to kubernetes default service to get its own IP

2022-06-22 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-17147:
---

[~laptimus] Could you please elaborate on this task? 

What's you improvement suggestion? 

Am I right that you are referring to this configuration: 
[https://www.gridgain.com/sdk/latest/javadoc/org/apache/ignite/kubernetes/configuration/KubernetesConnectionConfiguration.html#setMasterUrl-java.lang.String-]

and its default value - 'https://kubernetes.default.svc.cluster.local:443'?

> Ignite should not talk to kubernetes default service to get its own IP
> --
>
> Key: IGNITE-17147
> URL: https://issues.apache.org/jira/browse/IGNITE-17147
> Project: Ignite
>  Issue Type: Bug
>  Components: general
>Affects Versions: 2.11.1
> Environment: Kubernetes
>Reporter: laptimus
>Priority: Major
>
> Ignite should not talk to kubernetes default service to get its own IP
> We have kubernetes cluster with calico network policies and seems like ignite 
> is the only application in our cluster that needs access to kubernetes 
> default service 
> I see this as a security risk
> Please implement an alternative way in IP Finder as that the class that talks 
> to kubernetes default service to know pod IP address
>  
> thanks



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (IGNITE-16124) deleteAllById has wrong signature

2022-04-26 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-16124:
---

[~NSAmelchev] Thanks for the clarification!

> deleteAllById has wrong signature
> -
>
> Key: IGNITE-16124
> URL: https://issues.apache.org/jira/browse/IGNITE-16124
> Project: Ignite
>  Issue Type: Bug
>  Components: extensions
>Reporter: Michael Reiche
>Assignee: Andrey Belyaev
>Priority: Major
>
> java: name clash: deleteAllById(java.lang.Iterable) in 
> org.apache.ignite.springdata20.repository.IgniteRepository and 
> deleteAllById(java.lang.Iterable) in 
> org.springframework.data.repository.CrudRepository have the same erasure, yet 
> neither overrides the other
> 
> 2.6.0-RC1
> 2.9.1
> 
> 
> 
> org.apache.ignite
> ignite-spring-data_2.0
> ${ignite.version}
> 
> 
> org.apache.ignite
> ignite-core
> ${ignite.version}
> 
> 
> org.apache.ignite
> ignite-indexing
> ${ignite.version}
> 
> 
> org.apache.ignite
> ignite-spring
> ${ignite.version}
> 
> 
> org.springframework.data
> spring-data-commons
> ${spring.data.version}
> 
>  
> If ignite-spring-data is used instead of ingite-spring-data_2.0,  the method 
> deleteAll is flagged
> java: name clash: deleteAll(java.lang.Iterable com.example.ignite.EmployeeDTO>) in 
> org.springframework.data.repository.CrudRepository and 
> deleteAll(java.lang.Iterable) in 
> org.apache.ignite.springdata.repository.IgniteRepository have the same 
> erasure, yet neither overrides the other
> And 2.2-ext gives the following:
> org.apache.ignite
> ignite-spring-data-2.2-ext
> 1.0.0
> java: name clash: deleteAllById(java.lang.Iterable) in 
> org.apache.ignite.springdata22.repository.IgniteRepository and 
> deleteAllById(java.lang.Iterable) in 
> org.springframework.data.repository.CrudRepository have the same erasure, yet 
> neither overrides the other
> package com.example.ignite;
> import org.apache.ignite.springdata.repository.IgniteRepository;
> import org.apache.ignite.springdata.repository.config.RepositoryConfig;
> @RepositoryConfig(cacheName = "myCache")
> public interface EmployeeRepository extends 
> IgniteRepository
> { EmployeeDTO getEmployeeDTOById(ID id); }



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (IGNITE-16124) deleteAllById has wrong signature

2022-04-26 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-16124:
---

[~NSAmelchev] [~Mmuzaf] guys, do you know if there are any plans on release?

> deleteAllById has wrong signature
> -
>
> Key: IGNITE-16124
> URL: https://issues.apache.org/jira/browse/IGNITE-16124
> Project: Ignite
>  Issue Type: Bug
>  Components: extensions
>Reporter: Michael Reiche
>Assignee: Andrey Belyaev
>Priority: Major
>
> java: name clash: deleteAllById(java.lang.Iterable) in 
> org.apache.ignite.springdata20.repository.IgniteRepository and 
> deleteAllById(java.lang.Iterable) in 
> org.springframework.data.repository.CrudRepository have the same erasure, yet 
> neither overrides the other
> 
> 2.6.0-RC1
> 2.9.1
> 
> 
> 
> org.apache.ignite
> ignite-spring-data_2.0
> ${ignite.version}
> 
> 
> org.apache.ignite
> ignite-core
> ${ignite.version}
> 
> 
> org.apache.ignite
> ignite-indexing
> ${ignite.version}
> 
> 
> org.apache.ignite
> ignite-spring
> ${ignite.version}
> 
> 
> org.springframework.data
> spring-data-commons
> ${spring.data.version}
> 
>  
> If ignite-spring-data is used instead of ingite-spring-data_2.0,  the method 
> deleteAll is flagged
> java: name clash: deleteAll(java.lang.Iterable com.example.ignite.EmployeeDTO>) in 
> org.springframework.data.repository.CrudRepository and 
> deleteAll(java.lang.Iterable) in 
> org.apache.ignite.springdata.repository.IgniteRepository have the same 
> erasure, yet neither overrides the other
> And 2.2-ext gives the following:
> org.apache.ignite
> ignite-spring-data-2.2-ext
> 1.0.0
> java: name clash: deleteAllById(java.lang.Iterable) in 
> org.apache.ignite.springdata22.repository.IgniteRepository and 
> deleteAllById(java.lang.Iterable) in 
> org.springframework.data.repository.CrudRepository have the same erasure, yet 
> neither overrides the other
> package com.example.ignite;
> import org.apache.ignite.springdata.repository.IgniteRepository;
> import org.apache.ignite.springdata.repository.config.RepositoryConfig;
> @RepositoryConfig(cacheName = "myCache")
> public interface EmployeeRepository extends 
> IgniteRepository
> { EmployeeDTO getEmployeeDTOById(ID id); }



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (IGNITE-16568) Kubernetes cluster might split apart on initialization

2022-02-16 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-16568:
--
Description: 
The issue is mostly about Kubernetes/Openshift deployment but could also affect 
other scenarios relying on external services (AWS?). 

Consider the following case: multiple nodes (PODs) were started simultaneously 
and all of them are trying to locate if there are other nodes available using

*_TcpDiscoveryKubernetesIpFinder._* that just returns a set of registered IPs. 
Since there is no delay or retry attempt, all nodes could be returned with an 
empty IPs list and decide to be a coordinator, i.e. to start multiple 
independent grids.

 

Proposed changes: extend  TcpDiscoveryKubernetesIpFinder with either a 
configurable delay or repetitions counter to check if there is a non-empty list 
of available IPs.

  was:
The issue is mostly about Kubernetes/Openshift deployment but could also be 
true for other scenarios relying on external services (AWS?). 

Consider the following case: multiple nodes (PODs) were started simultaneously 
and all of them are trying to locate if there are other nodes available using

*_TcpDiscoveryKubernetesIpFinder._* that just returns a set of registered IPs. 
Since there is no delay or retry attempt, all nodes could be returned with an 
empty IPs list and decide to be a coordinator, i.e. to start multiple 
independent grids.

 

Proposed changes: extend  TcpDiscoveryKubernetesIpFinder with either a 
configurable delay or repetitions counter to check if there is a non-empty list 
of available IPs.


> Kubernetes cluster might split apart on initialization
> --
>
> Key: IGNITE-16568
> URL: https://issues.apache.org/jira/browse/IGNITE-16568
> Project: Ignite
>  Issue Type: Bug
>  Components: networking
>Affects Versions: 2.11.1
>Reporter: Alexandr Shapkin
>Priority: Major
>  Labels: Kubernetes
>
> The issue is mostly about Kubernetes/Openshift deployment but could also 
> affect other scenarios relying on external services (AWS?). 
> Consider the following case: multiple nodes (PODs) were started 
> simultaneously and all of them are trying to locate if there are other nodes 
> available using
> *_TcpDiscoveryKubernetesIpFinder._* that just returns a set of registered 
> IPs. Since there is no delay or retry attempt, all nodes could be returned 
> with an empty IPs list and decide to be a coordinator, i.e. to start multiple 
> independent grids.
>  
> Proposed changes: extend  TcpDiscoveryKubernetesIpFinder with either a 
> configurable delay or repetitions counter to check if there is a non-empty 
> list of available IPs.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16568) Kubernetes cluster might split apart on initialization

2022-02-16 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-16568:
--
External issue URL: 
https://stackoverflow.com/questions/71118869/openshift-k8s-issue-with-project-pods-not-joining-same-grid-but-rather-create-m
Labels: Kubernetes  (was: )

> Kubernetes cluster might split apart on initialization
> --
>
> Key: IGNITE-16568
> URL: https://issues.apache.org/jira/browse/IGNITE-16568
> Project: Ignite
>  Issue Type: Bug
>  Components: networking
>Reporter: Alexandr Shapkin
>Priority: Major
>  Labels: Kubernetes
>
> The issue is mostly about Kubernetes/Openshift deployment but could also be 
> true for other scenarios relying on external services (AWS?). 
> Consider the following case: multiple nodes (PODs) were started 
> simultaneously and all of them are trying to locate if there are other nodes 
> available using
> *_TcpDiscoveryKubernetesIpFinder._* that just returns a set of registered 
> IPs. Since there is no delay or retry attempt, all nodes could be returned 
> with an empty IPs list and decide to be a coordinator, i.e. to start multiple 
> independent grids.
>  
> Proposed changes: extend  TcpDiscoveryKubernetesIpFinder with either a 
> configurable delay or repetitions counter to check if there is a non-empty 
> list of available IPs.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16568) Kubernetes cluster might split apart on initialization

2022-02-16 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-16568:
--
Affects Version/s: 2.11.1

> Kubernetes cluster might split apart on initialization
> --
>
> Key: IGNITE-16568
> URL: https://issues.apache.org/jira/browse/IGNITE-16568
> Project: Ignite
>  Issue Type: Bug
>  Components: networking
>Affects Versions: 2.11.1
>Reporter: Alexandr Shapkin
>Priority: Major
>  Labels: Kubernetes
>
> The issue is mostly about Kubernetes/Openshift deployment but could also be 
> true for other scenarios relying on external services (AWS?). 
> Consider the following case: multiple nodes (PODs) were started 
> simultaneously and all of them are trying to locate if there are other nodes 
> available using
> *_TcpDiscoveryKubernetesIpFinder._* that just returns a set of registered 
> IPs. Since there is no delay or retry attempt, all nodes could be returned 
> with an empty IPs list and decide to be a coordinator, i.e. to start multiple 
> independent grids.
>  
> Proposed changes: extend  TcpDiscoveryKubernetesIpFinder with either a 
> configurable delay or repetitions counter to check if there is a non-empty 
> list of available IPs.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16568) Kubernetes cluster might split apart on initialization

2022-02-16 Thread Alexandr Shapkin (Jira)
Alexandr Shapkin created IGNITE-16568:
-

 Summary: Kubernetes cluster might split apart on initialization
 Key: IGNITE-16568
 URL: https://issues.apache.org/jira/browse/IGNITE-16568
 Project: Ignite
  Issue Type: Bug
  Components: networking
Reporter: Alexandr Shapkin


The issue is mostly about Kubernetes/Openshift deployment but could also be 
true for other scenarios relying on external services (AWS?). 

Consider the following case: multiple nodes (PODs) were started simultaneously 
and all of them are trying to locate if there are other nodes available using

*_TcpDiscoveryKubernetesIpFinder._* that just returns a set of registered IPs. 
Since there is no delay or retry attempt, all nodes could be returned with an 
empty IPs list and decide to be a coordinator, i.e. to start multiple 
independent grids.

 

Proposed changes: extend  TcpDiscoveryKubernetesIpFinder with either a 
configurable delay or repetitions counter to check if there is a non-empty list 
of available IPs.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Resolved] (IGNITE-16435) [Ignite Website] Update for events schedule

2022-02-04 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin resolved IGNITE-16435.
---
Resolution: Fixed

[~hoter] Thanks for the contribution!

> [Ignite Website] Update for events schedule
> ---
>
> Key: IGNITE-16435
> URL: https://issues.apache.org/jira/browse/IGNITE-16435
> Project: Ignite
>  Issue Type: Task
>  Components: website
>Reporter: Evgenia
>Assignee: Erlan Aytpaev
>Priority: Trivial
>
> Please add an event to [https://ignite.apache.org/events.html]
> Event Date: February, 16
> h1. Apache Ignite Community Gathering: Ignite 3 Alpha 4
> During this community gathering, we will discuss the latest Ignite releases:
>  - Apache Ignite 2.12 overview
>  - Apache Ignite 3 Alpha 4: The Next Milestone
>  - Transactions API in Apache Ignite 3
> ___
> Maxim Timonin, Apache Ignite Committer and Software Engineer at SberTech will 
> present a brief overview of the Apache Ignite 2.12 release.
> Apache Ignite 3 Alpha 4: The Next Milestone
> Apache Ignite 3 is the next generation of the Apache Ignite platform. Ignite 
> 3 modernizes and improves Ignite’s usability while retaining its power and 
> flexibility. The Alpha 4 build is the latest release of the Ignite 3 project. 
> Val Kulichenko, Apache Ignite PMC member and the Ignite 3.0 Release manager, 
> will present the Ignite 3 Alpha 4 overview, including new features Object 
> Mappings for Table Views and DDL.
> Transactions API in Ignite 3
> Alexey Scherbakov, Apache Ignite Committer, and architect at GridGain will 
> show Ignite 3 just released in Alpha 4 build transactional API. We will take 
> a glance over:
>  - a transaction lifecycle
>  - how to manage transactions
>  - examples of synchronous and asynchronous transactions
> Learn more: 
> [https://www.meetup.com/Apache-Ignite-Virtual-Meetup/events/283606359]
> Сhange the text on the banner [Apache Ignite Documentation | Ignite 
> Documentation|https://ignite.apache.org/docs/latest/]
> from:
> [Ignite Summit: Сloud Edition | Using Ignite In The Cloud - Watch On Demand 
> →|https://ignite-summit.org/]
> to: 
> Apache Ignite Community Gathering: Ignite 3 Alpha 4. Join us! (link to 
> [Apache Ignite Community Gathering: Ignite 3 Alpha 4 | 
> Meetup|https://www.meetup.com/Apache-Ignite-Virtual-Meetup/events/283606359])
> h1.  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-16038) Java Thin Client: Retrieve binary configuration from server

2021-12-02 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-16038:
---

Aleksey, thanks a lot for sorting this out!

> Java Thin Client: Retrieve binary configuration from server
> ---
>
> Key: IGNITE-16038
> URL: https://issues.apache.org/jira/browse/IGNITE-16038
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 2.11
>Reporter: Alexandr Shapkin
>Priority: Major
>
> Thin clients require manual binary configuration currently. Settings like 
> compact footer and simple/full name mapper should be set to match the cluster 
> settings. Extend the protocol to retrieve those settings automatically on 
> start.
>  
> I.e. it's impossible to read a value inserted by a thick client with java 
> thin client without specifying compactFooter=true



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-16038) Java Thin Client: Retrieve binary configuration from server

2021-12-02 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-16038:
---

Wow, that sounds good. Could you please share a ticket number with the planned 
compactFooter change? If it has not been created yet, we might use this ticket 
for that change. 

> Java Thin Client: Retrieve binary configuration from server
> ---
>
> Key: IGNITE-16038
> URL: https://issues.apache.org/jira/browse/IGNITE-16038
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 2.11
>Reporter: Alexandr Shapkin
>Priority: Major
>
> Thin clients require manual binary configuration currently. Settings like 
> compact footer and simple/full name mapper should be set to match the cluster 
> settings. Extend the protocol to retrieve those settings automatically on 
> start.
>  
> I.e. it's impossible to read a value inserted by a thick client with java 
> thin client without specifying compactFooter=true



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-16038) Java Thin Client: Retrieve binary configuration from server

2021-12-02 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-16038:
---

[~alex_pl] 

 

Yes, that's correct, it is a potential compatibility break. I also find the 
case when a client can't read a value inserted by a thick client or vice versa 
counterintuitive. We just don't have any warnings or reasons that explain the 
problem with having different compact footers.

 

Consider this: 
 * a user starts a vanilla server node and performs cache#put(myKey, myVal)
 * then it starts a default thin client and is trying to get a value with 
thinCache.get(myKey)
 * ??? why there is no value found, seems like Ignite is broken...

 

In a very safe implementation, we might yield a WARN in a client's  (java 
version don't have it yet if I remember correctly) or server's logs with 
respect to the binary configuration mismatch and provide a user with the right 
direction on how to fix that. But I'd say we need to implement the change just 
like it's written in IEP and set compactFooter=serverValue. Well, we might add 
just another Ignite property to disable this feature and some announcements in 
release docs are welcome.

 

Anyway, my biggest concern is that - it's very confusing for the end-users. 
WDYT?

 

> Java Thin Client: Retrieve binary configuration from server
> ---
>
> Key: IGNITE-16038
> URL: https://issues.apache.org/jira/browse/IGNITE-16038
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 2.11
>Reporter: Alexandr Shapkin
>Priority: Major
>
> Thin clients require manual binary configuration currently. Settings like 
> compact footer and simple/full name mapper should be set to match the cluster 
> settings. Extend the protocol to retrieve those settings automatically on 
> start.
>  
> I.e. it's impossible to read a value inserted by a thick client with java 
> thin client without specifying compactFooter=true



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Comment Edited] (IGNITE-16038) Java Thin Client: Retrieve binary configuration from server

2021-12-02 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin edited comment on IGNITE-16038 at 12/2/21, 1:16 PM:
-

[~alex_pl] 

 

Yes, that's correct, it is a potential compatibility break. I also find the 
case when a client can't read a value inserted by a thick client or vice versa 
counterintuitive. We just don't have any warnings or reasons that explain the 
problem with having different compact footers.

 

Consider this: 
 * a user starts a vanilla server node and performs cache#put(myKey, myVal) 
[compactFooter=true]
 * then it starts a default thin client and is trying to get a value with 
thinCache.get(myKey) [compactFooter=false]
 * ??? why there is no value found, seems like Ignite is broken...

 

In a very safe implementation, we might yield a WARN in a client's  (java 
version don't have it yet if I remember correctly) or server's logs with 
respect to the binary configuration mismatch and provide a user with the right 
direction on how to fix that. But I'd say we need to implement the change just 
like it's written in IEP and set compactFooter=serverValue. Well, we might add 
just another Ignite property to disable this feature and some announcements in 
release docs are welcome.

 

Anyway, my biggest concern is that - it's very confusing for the end-users. 
WDYT?

 


was (Author: ashapkin):
[~alex_pl] 

 

Yes, that's correct, it is a potential compatibility break. I also find the 
case when a client can't read a value inserted by a thick client or vice versa 
counterintuitive. We just don't have any warnings or reasons that explain the 
problem with having different compact footers.

 

Consider this: 
 * a user starts a vanilla server node and performs cache#put(myKey, myVal)
 * then it starts a default thin client and is trying to get a value with 
thinCache.get(myKey)
 * ??? why there is no value found, seems like Ignite is broken...

 

In a very safe implementation, we might yield a WARN in a client's  (java 
version don't have it yet if I remember correctly) or server's logs with 
respect to the binary configuration mismatch and provide a user with the right 
direction on how to fix that. But I'd say we need to implement the change just 
like it's written in IEP and set compactFooter=serverValue. Well, we might add 
just another Ignite property to disable this feature and some announcements in 
release docs are welcome.

 

Anyway, my biggest concern is that - it's very confusing for the end-users. 
WDYT?

 

> Java Thin Client: Retrieve binary configuration from server
> ---
>
> Key: IGNITE-16038
> URL: https://issues.apache.org/jira/browse/IGNITE-16038
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 2.11
>Reporter: Alexandr Shapkin
>Priority: Major
>
> Thin clients require manual binary configuration currently. Settings like 
> compact footer and simple/full name mapper should be set to match the cluster 
> settings. Extend the protocol to retrieve those settings automatically on 
> start.
>  
> I.e. it's impossible to read a value inserted by a thick client with java 
> thin client without specifying compactFooter=true



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16038) Java Thin Client: Retrieve binary configuration from server

2021-12-01 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-16038:
--
Summary: Java Thin Client: Retrieve binary configuration from server  (was: 
Java Thin Client: Retrieve binary configuration from serve)

> Java Thin Client: Retrieve binary configuration from server
> ---
>
> Key: IGNITE-16038
> URL: https://issues.apache.org/jira/browse/IGNITE-16038
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 2.11
>Reporter: Alexandr Shapkin
>Priority: Major
>
> Thin clients require manual binary configuration currently. Settings like 
> compact footer and simple/full name mapper should be set to match the cluster 
> settings. Extend the protocol to retrieve those settings automatically on 
> start.
>  
> I.e. it's impossible to read a value inserted by a thick client with java 
> thin client without specifying compactFooter=true



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16038) Java Thin Client: Retrieve binary configuration from serve

2021-12-01 Thread Alexandr Shapkin (Jira)
Alexandr Shapkin created IGNITE-16038:
-

 Summary: Java Thin Client: Retrieve binary configuration from serve
 Key: IGNITE-16038
 URL: https://issues.apache.org/jira/browse/IGNITE-16038
 Project: Ignite
  Issue Type: Improvement
  Components: platforms
Affects Versions: 2.11
Reporter: Alexandr Shapkin


Thin clients require manual binary configuration currently. Settings like 
compact footer and simple/full name mapper should be set to match the cluster 
settings. Extend the protocol to retrieve those settings automatically on start.

 

I.e. it's impossible to read a value inserted by a thick client with java thin 
client without specifying compactFooter=true



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-15542) walTotalSize incorrectly reported when wal archiving is turned off.

2021-09-22 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-15542:
---

Merged to master 

f9bd7b73682ff9dd2865fdb559816367fc2d65b8

> walTotalSize incorrectly reported when wal archiving is turned off.
> ---
>
> Key: IGNITE-15542
> URL: https://issues.apache.org/jira/browse/IGNITE-15542
> Project: Ignite
>  Issue Type: Improvement
>  Components: persistence
>Affects Versions: 2.11
>Reporter: Alexander Korenshteyn
>Assignee: Alexander Korenshteyn
>Priority: Major
> Fix For: 2.12
>
> Attachments: walTotalSize-Metric.png
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> to reproduce
> disable wal archive by setting the wal path the same as the wal archive path.
> In this case the walTotalSize will incorrectly add all files present in wal 
> archive dir.
>  
> picture of affected metric attached.



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


[jira] [Updated] (IGNITE-15542) walTotalSize incorrectly reported when wal archiving is turned off.

2021-09-22 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-15542:
--
Reviewer: Alexandr Shapkin

> walTotalSize incorrectly reported when wal archiving is turned off.
> ---
>
> Key: IGNITE-15542
> URL: https://issues.apache.org/jira/browse/IGNITE-15542
> Project: Ignite
>  Issue Type: Improvement
>  Components: persistence
>Affects Versions: 2.11
>Reporter: Alexander Korenshteyn
>Assignee: Alexander Korenshteyn
>Priority: Major
> Fix For: 2.12
>
> Attachments: walTotalSize-Metric.png
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> to reproduce
> disable wal archive by setting the wal path the same as the wal archive path.
> In this case the walTotalSize will incorrectly add all files present in wal 
> archive dir.
>  
> picture of affected metric attached.



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


[jira] [Commented] (IGNITE-15204) SQL exception to be handled by thin clients [CPP]

2021-08-02 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-15204:
---

Yes, that's doable, we can also adjust the protocol to include them. But the 
thing is - for 3.0 this is going to work out of the box if I get it right. 
Either way, yes, it looks like not a big deal. 

> SQL exception to be handled by thin clients [CPP]
> -
>
> Key: IGNITE-15204
> URL: https://issues.apache.org/jira/browse/IGNITE-15204
> Project: Ignite
>  Issue Type: Improvement
>  Components: thin client
>Reporter: Alexandr Shapkin
>Priority: Major
>
> It would be nice to have meaningful error descriptions (like using ODBC) 
> instead of general ones.
> For sample, working with SQL from a thin client it's impossible to get these 
> errors:
>  Uniq_Constraint ,Connection error,Timeout,Bind Param error,Cursor error, 
> Prepare error,Execute error,TABLE_NOTFOUND,CACHE_NOTFOUND
>  
> Looks like the easiest way would be to wait for Ignite 3.0 release with the 
> new thin client protocol, but I think we can make some extension to the 2.x 
> protocol as well.



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


[jira] [Updated] (IGNITE-15204) SQL exception to be handled by thin clients [CPP]

2021-07-28 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-15204:
--
Description: 
It would be nice to have meningful error descriptions (like using ODBC) instead 
of general ones.

For sample, working with SQL from a thin client it's impossible to get these 
errors:
 Uniq_Constraint ,Connection error,Timeout,Bind Param error,Cursor error, 
Prepare error,Execute error,TABLE_NOTFOUND,CACHE_NOTFOUND

 

Looks like the easiest way would be to wait for Ignite 3.0 release with the new 
thin clint protocol, but I think we can make some extension to the 2.x protocol 
as well.

  was:
It would be nice to have meningful error descriptions (like using ODBC) instead 
of general ones.

For sample, working with SQL from a thin client it's impossible to get these 
errors:
Uniq_Constraint ,Connection error,Timeout,Bind Param error,Cursor error, 
Prepare error,Execute error,TABLE_NOTFOUND,CACHE_NOTFOUND


> SQL exception to be handled by thin clients [CPP]
> -
>
> Key: IGNITE-15204
> URL: https://issues.apache.org/jira/browse/IGNITE-15204
> Project: Ignite
>  Issue Type: Improvement
>  Components: thin client
>Reporter: Alexandr Shapkin
>Priority: Major
>
> It would be nice to have meningful error descriptions (like using ODBC) 
> instead of general ones.
> For sample, working with SQL from a thin client it's impossible to get these 
> errors:
>  Uniq_Constraint ,Connection error,Timeout,Bind Param error,Cursor error, 
> Prepare error,Execute error,TABLE_NOTFOUND,CACHE_NOTFOUND
>  
> Looks like the easiest way would be to wait for Ignite 3.0 release with the 
> new thin clint protocol, but I think we can make some extension to the 2.x 
> protocol as well.



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


[jira] [Updated] (IGNITE-15204) SQL exception to be handled by thin clients [CPP]

2021-07-28 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-15204:
--
Description: 
It would be nice to have meaningful error descriptions (like using ODBC) 
instead of general ones.

For sample, working with SQL from a thin client it's impossible to get these 
errors:
 Uniq_Constraint ,Connection error,Timeout,Bind Param error,Cursor error, 
Prepare error,Execute error,TABLE_NOTFOUND,CACHE_NOTFOUND

 

Looks like the easiest way would be to wait for Ignite 3.0 release with the new 
thin client protocol, but I think we can make some extension to the 2.x 
protocol as well.

  was:
It would be nice to have meningful error descriptions (like using ODBC) instead 
of general ones.

For sample, working with SQL from a thin client it's impossible to get these 
errors:
 Uniq_Constraint ,Connection error,Timeout,Bind Param error,Cursor error, 
Prepare error,Execute error,TABLE_NOTFOUND,CACHE_NOTFOUND

 

Looks like the easiest way would be to wait for Ignite 3.0 release with the new 
thin clint protocol, but I think we can make some extension to the 2.x protocol 
as well.


> SQL exception to be handled by thin clients [CPP]
> -
>
> Key: IGNITE-15204
> URL: https://issues.apache.org/jira/browse/IGNITE-15204
> Project: Ignite
>  Issue Type: Improvement
>  Components: thin client
>Reporter: Alexandr Shapkin
>Priority: Major
>
> It would be nice to have meaningful error descriptions (like using ODBC) 
> instead of general ones.
> For sample, working with SQL from a thin client it's impossible to get these 
> errors:
>  Uniq_Constraint ,Connection error,Timeout,Bind Param error,Cursor error, 
> Prepare error,Execute error,TABLE_NOTFOUND,CACHE_NOTFOUND
>  
> Looks like the easiest way would be to wait for Ignite 3.0 release with the 
> new thin client protocol, but I think we can make some extension to the 2.x 
> protocol as well.



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


[jira] [Created] (IGNITE-15204) SQL exception to be handled by thin clients [CPP]

2021-07-28 Thread Alexandr Shapkin (Jira)
Alexandr Shapkin created IGNITE-15204:
-

 Summary: SQL exception to be handled by thin clients [CPP]
 Key: IGNITE-15204
 URL: https://issues.apache.org/jira/browse/IGNITE-15204
 Project: Ignite
  Issue Type: Improvement
  Components: thin client
Reporter: Alexandr Shapkin


It would be nice to have meningful error descriptions (like using ODBC) instead 
of general ones.

For sample, working with SQL from a thin client it's impossible to get these 
errors:
Uniq_Constraint ,Connection error,Timeout,Bind Param error,Cursor error, 
Prepare error,Execute error,TABLE_NOTFOUND,CACHE_NOTFOUND



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


[jira] [Created] (IGNITE-15197) Incorrect code snippet for Azure Kubernetes Deployment

2021-07-27 Thread Alexandr Shapkin (Jira)
Alexandr Shapkin created IGNITE-15197:
-

 Summary: Incorrect code snippet for Azure Kubernetes Deployment
 Key: IGNITE-15197
 URL: https://issues.apache.org/jira/browse/IGNITE-15197
 Project: Ignite
  Issue Type: Bug
  Components: documentation
Reporter: Alexandr Shapkin
Assignee: Nikita Safonov


See the docs: [ 
https://ignite.apache.org/docs/latest/installation/kubernetes/azure-deployment|https://ignite.apache.org/docs/latest/installation/kubernetes/azure-deployment]
 
h3. Creating ConfigMap for Node Configuration File

 

Two tabs: Configuration without persistence and Configuration with persistence

Need to fix "node-configuration.xml" to be a valid XML file, like this one for 
"Configuration without persistence"

 
{code:java}

http://www.springframework.org/schema/beans;
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance;
   xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd;>
















{code}
I.e. all code samples have to include 

 
{code:java}
 http://www.springframework.org/schema/beans; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation=" 
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd;>
...
{code}
 



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


[jira] [Created] (IGNITE-15113) CPP: Thin Client Compute

2021-07-12 Thread Alexandr Shapkin (Jira)
Alexandr Shapkin created IGNITE-15113:
-

 Summary: CPP: Thin Client Compute
 Key: IGNITE-15113
 URL: https://issues.apache.org/jira/browse/IGNITE-15113
 Project: Ignite
  Issue Type: Improvement
  Components: platforms
Reporter: Alexandr Shapkin


Add Compute to C++Thin Client. See IGNITE-12853.



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


[jira] [Updated] (IGNITE-15073) C++ Extend platforms API to call Java versioned entry processor

2021-07-07 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-15073:
--
Affects Version/s: 2.11

> C++ Extend platforms API to call Java versioned entry processor
> ---
>
> Key: IGNITE-15073
> URL: https://issues.apache.org/jira/browse/IGNITE-15073
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 2.11
>Reporter: Alexandr Shapkin
>Priority: Major
>
> In case of a mixed cluster (Java server and C++ client for sample) it's not 
> possible to use an entry processor since it requires a native 
> platform-specific implementation to be defined on both sides.
> Let's extend platforms interop API to have a new methods 
> cache.invokeJava("key", "java_task_name", args) similar to 
> compute.ExecuteJavaTask.



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


[jira] [Created] (IGNITE-15073) C++ Extend platforms API to call Java versioned entry processor

2021-07-07 Thread Alexandr Shapkin (Jira)
Alexandr Shapkin created IGNITE-15073:
-

 Summary: C++ Extend platforms API to call Java versioned entry 
processor
 Key: IGNITE-15073
 URL: https://issues.apache.org/jira/browse/IGNITE-15073
 Project: Ignite
  Issue Type: Improvement
  Components: platforms
Reporter: Alexandr Shapkin


In case of a mixed cluster (Java server and C++ client for sample) it's not 
possible to use an entry processor since it requires a native platform-specific 
implementation to be defined on both sides.

Let's extend platforms interop API to have a new methods 
cache.invokeJava("key", "java_task_name", args) similar to 
compute.ExecuteJavaTask.



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


[jira] [Updated] (IGNITE-14324) EVT_CLIENT_NODE_DISCONNECTED is not triggered in k8s

2021-04-19 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-14324:
--
Release Note: Fixed an issue that prevented a node from startup in case it 
can't obtain IP addresses to connect to

> EVT_CLIENT_NODE_DISCONNECTED is not triggered in k8s
> 
>
> Key: IGNITE-14324
> URL: https://issues.apache.org/jira/browse/IGNITE-14324
> Project: Ignite
>  Issue Type: Improvement
>Affects Versions: 2.9.1
>Reporter: Alexandr Shapkin
>Assignee: Alexandr Shapkin
>Priority: Major
>  Labels: discovery
> Fix For: 2.11
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Scenario:
> Kubernetes world, a server node, a k8s service, and a thick client. The 
> client is subscribed to EVT_CLIENT_NODE_DISCONNECTED event and is connected 
> to the server node.
> When a service goes down alongside the server, no 
> EVT_CLIENT_NODE_DISCONNECTED is caught and the client reports only about a 
> socket exception and inability to resolve IP addresses from the services, 
> cause k8s resource is not available. The DEBUG logs (attached) show that 
> discovery is constantly trying to use KubernetesIpFinder and restore the 
> connection.
> Expected:
> Discovery realizes that a client is disconnected, no more reconnection 
> attempts happen and EVT_CLIENT_NODE_DISCONNECTED is thrown.
> Solution:
> Count resolution attempts and if it’s more than the threshold (2 if 
> failuredetectiontimeout is not configured, otherwise #reconnCount) give up 
> and invoke disconnection logic



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


[jira] [Commented] (IGNITE-14324) EVT_CLIENT_NODE_DISCONNECTED is not triggered in k8s

2021-04-16 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-14324:
---

[~ibessonov] could you please take a look?

> EVT_CLIENT_NODE_DISCONNECTED is not triggered in k8s
> 
>
> Key: IGNITE-14324
> URL: https://issues.apache.org/jira/browse/IGNITE-14324
> Project: Ignite
>  Issue Type: Improvement
>Affects Versions: 2.9.1
>Reporter: Alexandr Shapkin
>Assignee: Alexandr Shapkin
>Priority: Major
>  Labels: discovery
> Fix For: 2.11
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Scenario:
> Kubernetes world, a server node, a k8s service, and a thick client. The 
> client is subscribed to EVT_CLIENT_NODE_DISCONNECTED event and is connected 
> to the server node.
> When a service goes down alongside the server, no 
> EVT_CLIENT_NODE_DISCONNECTED is caught and the client reports only about a 
> socket exception and inability to resolve IP addresses from the services, 
> cause k8s resource is not available. The DEBUG logs (attached) show that 
> discovery is constantly trying to use KubernetesIpFinder and restore the 
> connection.
> Expected:
> Discovery realizes that a client is disconnected, no more reconnection 
> attempts happen and EVT_CLIENT_NODE_DISCONNECTED is thrown.
> Solution:
> Count resolution attempts and if it’s more than the threshold (2 if 
> failuredetectiontimeout is not configured, otherwise #reconnCount) give up 
> and invoke disconnection logic



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


[jira] [Created] (IGNITE-14324) EVT_CLIENT_NODE_DISCONNECTED is not triggered in k8s

2021-03-16 Thread Alexandr Shapkin (Jira)
Alexandr Shapkin created IGNITE-14324:
-

 Summary: EVT_CLIENT_NODE_DISCONNECTED is not triggered in k8s
 Key: IGNITE-14324
 URL: https://issues.apache.org/jira/browse/IGNITE-14324
 Project: Ignite
  Issue Type: Improvement
Affects Versions: 2.9.1
Reporter: Alexandr Shapkin
Assignee: Alexandr Shapkin
 Fix For: 2.11


Scenario:

Kubernetes world, a server node, a k8s service, and a thick client. The client 
is subscribed to EVT_CLIENT_NODE_DISCONNECTED event and is connected to the 
server node.

When a service goes down alongside the server, no EVT_CLIENT_NODE_DISCONNECTED 
is caught and the client reports only about a socket exception and inability to 
resolve IP addresses from the services, cause k8s resource is not available. 
The DEBUG logs (attached) show that discovery is constantly trying to use 
KubernetesIpFinder and restore the connection.

Expected:
Discovery realizes that a client is disconnected, no more reconnection attempts 
happen and EVT_CLIENT_NODE_DISCONNECTED is thrown.

Solution:

Count resolution attempts and if it’s more than the threshold (2 if 
failuredetectiontimeout is not configured, otherwise #reconnCount) give up and 
invoke disconnection logic



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


[jira] [Commented] (IGNITE-12090) .NET: logger throws KeyNotFound on creating cache with nullable 'sbyte?' field

2021-01-10 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-12090:
---

[~ptupitsyn] thanks, can you merge the changes?

> .NET: logger throws KeyNotFound on creating cache with nullable 'sbyte?' field
> --
>
> Key: IGNITE-12090
> URL: https://issues.apache.org/jira/browse/IGNITE-12090
> Project: Ignite
>  Issue Type: Bug
>  Components: binary, platforms
>Affects Versions: 2.7.5
>Reporter: Denis Zakharov
>Assignee: Alexandr Shapkin
>Priority: Major
>  Labels: .NET
> Attachments: a.cs
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
>  
> Logger throws KeyNotFound exception if NetToJava[type] doesn't have a _type_ 
> key.
> Looks like we need to replace it with NetToJava[directType].
> {code:java}
> public static void LogIndirectMappingWarning(Type type, ILogger log, string 
> logInfo)
>  {
>  if (type == null)
>  return;
> var directType = GetDirectlyMappedType(type);
> if (directType == type)
>  return;
> log.Warn("{0}: Type '{1}' maps to Java type '{2}' using unchecked conversion. 
> " +
>  "This may cause issues in SQL queries. " +
>  "You can use '{3}' instead to achieve direct mapping.",
>  logInfo, type, NetToJava[type], directType);
>  }
> {code}
>  
> Steps to reproduce:
> Define a QueryEntity with a sbyte? nullable field, try to create a cache. The 
> reproducer is attached.
>  



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


[jira] [Updated] (IGNITE-12090) .NET: logger throws KeyNotFound on creating cache with nullable 'sbyte?' field

2021-01-05 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-12090:
--
Summary: .NET: logger throws KeyNotFound on creating cache with nullable 
'sbyte?' field  (was: .NET logging exception when creating cache with nullable 
'sbyte?' field)

> .NET: logger throws KeyNotFound on creating cache with nullable 'sbyte?' field
> --
>
> Key: IGNITE-12090
> URL: https://issues.apache.org/jira/browse/IGNITE-12090
> Project: Ignite
>  Issue Type: Bug
>  Components: binary, platforms
>Affects Versions: 2.7.5
>Reporter: Denis Zakharov
>Assignee: Alexandr Shapkin
>Priority: Major
>  Labels: .NET
> Attachments: a.cs
>
>
>  
> Logger throws KeyNotFound exception if NetToJava[type] doesn't have a _type_ 
> key.
> Looks like we need to replace it with NetToJava[directType].
> {code:java}
> public static void LogIndirectMappingWarning(Type type, ILogger log, string 
> logInfo)
>  {
>  if (type == null)
>  return;
> var directType = GetDirectlyMappedType(type);
> if (directType == type)
>  return;
> log.Warn("{0}: Type '{1}' maps to Java type '{2}' using unchecked conversion. 
> " +
>  "This may cause issues in SQL queries. " +
>  "You can use '{3}' instead to achieve direct mapping.",
>  logInfo, type, NetToJava[type], directType);
>  }
> {code}
>  
> Steps to reproduce:
> Define a QueryEntity with a sbyte? nullable field, try to create a cache. The 
> reproducer is attached.
>  



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


[jira] [Commented] (IGNITE-13908) ODBC driver should show real nullability info

2020-12-25 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-13908:
---

[~isapego] LGTM

> ODBC driver should show real nullability info
> -
>
> Key: IGNITE-13908
> URL: https://issues.apache.org/jira/browse/IGNITE-13908
> Project: Ignite
>  Issue Type: Improvement
>  Components: odbc
>Affects Versions: 2.9
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
> Fix For: 2.10
>
>
> Currently, it always return SQL_NULLABLE_UNKNOWN on request of nullability 
> type of the column.
> Let's provide that information to the user of ODBC driver



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


[jira] [Commented] (IGNITE-13900) CPP: Fix test flaky Affinity tests

2020-12-24 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-13900:
---

[~isapego] LGTM

> CPP: Fix test flaky Affinity tests
> --
>
> Key: IGNITE-13900
> URL: https://issues.apache.org/jira/browse/IGNITE-13900
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Affects Versions: 2.9
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
> Fix For: 2.10
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Some CPP affinity tests are flaky on TC. For example, 
> IgniteAffinityMapPartitionsToNodes, IgniteAffinityCall, 
> IgniteAffinityCallAsync. Need to fix them.



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


[jira] [Created] (IGNITE-13822) NPE in SQL query [with xxx as  (select xxx)]

2020-12-07 Thread Alexandr Shapkin (Jira)
Alexandr Shapkin created IGNITE-13822:
-

 Summary: NPE in SQL query [with xxx as  (select xxx)]
 Key: IGNITE-13822
 URL: https://issues.apache.org/jira/browse/IGNITE-13822
 Project: Ignite
  Issue Type: Improvement
  Components: sql
Affects Versions: 2.9
Reporter: Alexandr Shapkin


We use '*with xxx as  (select xxx)* ', which works very fine in 2.8.1 and other 
past release versions. After we upgrade to 2.9.0, such SQL starts to throw an 
exception.

Note, the SQL works fine while Ignite just started. The error happens after 
Ignite runs a while. And after that, the error seems to happen every time. 

 
{code:java}
args=Object[] [], stmtType=SELECT_STATEMENT_TYPE, autoCommit=true,
partResReq=false, super=JdbcRequest [type=2, reqId=790418]]]
class org.apache.ignite.internal.processors.query.IgniteSQLException: Failed
to parse query. General error: "java.lang.NullPointerException" [5-197]
   at
org.apache.ignite.internal.processors.query.h2.H2Connection.prepareStatementNoCache(H2Connection.java:194)
   at
org.apache.ignite.internal.processors.query.h2.H2PooledConnection.prepareStatementNoCache(H2PooledConnection.java:109)
   at
org.apache.ignite.internal.processors.query.h2.QueryParser.parseH2(QueryParser.java:355)
   at
org.apache.ignite.internal.processors.query.h2.QueryParser.parse0(QueryParser.java:222)
   at
org.apache.ignite.internal.processors.query.h2.QueryParser.parse(QueryParser.java:138)
   at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.querySqlFields(IgniteH2Indexing.java:1071)
   at
org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2779)
   at
org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2775)
   at
org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36)
   at
org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:3338)
   at
org.apache.ignite.internal.processors.query.GridQueryProcessor.lambda$querySqlFields$2(GridQueryProcessor.java:2795)
   at
org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuerySafe(GridQueryProcessor.java:2833)
   at
org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2769)
   at
org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2727)
   at
org.apache.ignite.internal.processors.odbc.jdbc.JdbcRequestHandler.executeQuery(JdbcRequestHandler.java:647)
   at
org.apache.ignite.internal.processors.odbc.jdbc.JdbcRequestHandler.doHandle(JdbcRequestHandler.java:320)
   at
org.apache.ignite.internal.processors.odbc.jdbc.JdbcRequestHandler.handle(JdbcRequestHandler.java:257)
   at
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:202)
   at
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:56)
   at
org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
   at
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
   at
org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
   at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
   at
org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
   at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at java.lang.Thread.run(Thread.java:745)
Caused by: org.h2.jdbc.JdbcSQLException: General error:
"java.lang.NullPointerException" [5-197]
   at 
org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
   at org.h2.message.DbException.get(DbException.java:168)
   at org.h2.message.DbException.convert(DbException.java:307)
   at 
org.h2.message.DbException.toSQLException(DbException.java:280)
   at org.h2.message.TraceObject.logAndConvert(TraceObject.java:357)
   at 
org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:697)
   at
org.apache.ignite.internal.processors.query.h2.H2Connection.prepareStatementNoCache(H2Connection.java:191)
   ... 26 more
Caused by: java.lang.NullPointerException
   at 

[jira] [Commented] (IGNITE-10655) .NET client should have peerClassLoading property in IgniteConfiguration class

2020-12-03 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-10655:
---

[~ptupitsyn] fixed, thanks! Could you, please, help with merging the PR?

> .NET client should have peerClassLoading property in IgniteConfiguration class
> --
>
> Key: IGNITE-10655
> URL: https://issues.apache.org/jira/browse/IGNITE-10655
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 2.7
>Reporter: Andrey Aleksandrov
>Assignee: Alexandr Shapkin
>Priority: Major
> Fix For: 2.10
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> In case if java server nodes in a cluster were set up with peerClassLoading 
> set to true then there is no way to start node via .NET client using 
> IgniteConfiguration (because the default value is false).
> The only way to do it is using of the XML configuration.
> Possibility to set this property from .Net client programmatically should be 
> added.



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


[jira] [Assigned] (IGNITE-10655) .NET client should have peerClassLoading property in IgniteConfiguration class

2020-12-02 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin reassigned IGNITE-10655:
-

Assignee: Alexandr Shapkin  (was: Vladimir Pligin)

> .NET client should have peerClassLoading property in IgniteConfiguration class
> --
>
> Key: IGNITE-10655
> URL: https://issues.apache.org/jira/browse/IGNITE-10655
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 2.7
>Reporter: Andrey Aleksandrov
>Assignee: Alexandr Shapkin
>Priority: Major
> Fix For: 2.10
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> In case if java server nodes in a cluster were set up with peerClassLoading 
> set to true then there is no way to start node via .NET client using 
> IgniteConfiguration (because the default value is false).
> The only way to do it is using of the XML configuration.
> Possibility to set this property from .Net client programmatically should be 
> added.



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


[jira] [Commented] (IGNITE-13453) Docker: Change run.sh to call java directly

2020-09-21 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-13453:
---

I think we might start with the docker deployment and init a separate 
discussion about the default behavior in ignite.sh script for the next release. 
Anyway prior to the 2.9 there is no chance of disabling it. Though I agree that 
different defaults could be confusing.

> Docker: Change run.sh to call java directly
> ---
>
> Key: IGNITE-13453
> URL: https://issues.apache.org/jira/browse/IGNITE-13453
> Project: Ignite
>  Issue Type: Improvement
>Affects Versions: 2.8.1
>Reporter: Alexandr Shapkin
>Assignee: Ilya Murchenko
>Priority: Critical
> Fix For: 2.10
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> ignite.sh is cumbersome in Docker as it creates the hassle with signals not 
> being propagated but adds little value as most of what ignite.sh discovers 
> about the system is known beforehand for our Docker images.
> Let's replace ignite.sh call with direct java invocation. 
> {code:bash}
> #!/bin/bash
> #
> # Licensed to the Apache Software Foundation (ASF) under one or more
> # contributor license agreements.  See the NOTICE file distributed with
> # this work for additional information regarding copyright ownership.
> # The ASF licenses this file to You under the Apache License, Version 2.0
> # (the "License"); you may not use this file except in compliance with
> # the License.  You may obtain a copy of the License at
> #
> #  http://www.apache.org/licenses/LICENSE-2.0
> #
> # Unless required by applicable law or agreed to in writing, software
> # distributed under the License is distributed on an "AS IS" BASIS,
> # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> # See the License for the specific language governing permissions and
> # limitations under the License.
> #
> source "${IGNITE_HOME}"/bin/include/functions.sh
> #
> # Discover path to Java executable and check it's version.
> #
> checkJava
> #
> # Set IGNITE_LIBS.
> #
> source "${IGNITE_HOME}"/bin/include/setenv.sh
> CP="${IGNITE_LIBS}"
> DEFAULT_CONFIG=config/default-config.xml
> #
> # Add optional libs to classpath
> #
> if [ -n "${OPTION_LIBS}" ]; then
> IFS=, LIBS_LIST=("$(tr -d '[:space:]' <<< ${OPTION_LIBS})")
>   for lib in ${LIBS_LIST[@]}; do
> LIBS=$(JARS=("${IGNITE_HOME}/libs/optional/${lib}"/*); IFS=:; echo 
> "${JARS[*]}")
> if [ -z "${USER_LIBS}" ]; then
>   export USER_LIBS="${LIBS}"
> else
>   export USER_LIBS="${USER_LIBS}:${LIBS}"
> fi
>   done
> fi
> #
> # Add external libs to classpath
> #
> if [ -n "${EXTERNAL_LIBS}" ]; then
>   IFS=, LIBS_LIST=("${EXTERNAL_LIBS}")
>   for lib in "${LIBS_LIST[@]}"; do
> echo "${lib}" >> "${IGNITE_HOME}"/work/external_libs
>   done
>   wget --content-disposition -i "${IGNITE_HOME}"/work/external_libs -P 
> "${IGNITE_HOME}"/libs/external
>   rm "${IGNITE_HOME}"/work/external_libs
> fi
> #
> # Define classpath
> #
> if [ "${USER_LIBS:-}" != "" ]; then
> IGNITE_LIBS=${USER_LIBS:-}:${IGNITE_LIBS}
> fi
> CP="${IGNITE_LIBS}"
> unset IFS
> #
> # Define default Java options
> #
> if [ -z "${JVM_OPTS}" ] ; then
> JVM_OPTS="-Xms1g -Xmx1g -server -XX:MaxMetaspaceSize=256m"
> fi
> #
> # Add Java extra option 
> #
> if [ "${version}" -eq 8 ] ; then
> JVM_OPTS="\
> -XX:+AggressiveOpts \
>  ${JVM_OPTS}"
> elif [ "${version}" -gt 8 ] && [ "${version}" -lt 11 ]; then
> JVM_OPTS="\
> -XX:+AggressiveOpts \
> --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
> --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
> --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
> --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \
> 
> --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
> --illegal-access=permit \
> --add-modules=java.xml.bind \
> ${JVM_OPTS}"
> elif [ "${version}" -ge 11 ] ; then
> JVM_OPTS="\
> --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
> --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
> --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
> --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \
> 
> --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
> --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED \
> --illegal-access=permit \
> ${JVM_OPTS}"
> fi
> DIGNITE_QUIET=$(printenv JVM_OPTS | grep -o 'IGNITE_QUIET=[^ ,]\+' | cut -d 
> "=" -f 2)
> if [ "${IGNITE_QUIET}" == "false" -o "${DIGNITE_QUIET}" == "false" ]; then
> 

[jira] [Commented] (IGNITE-13453) Docker: Change run.sh to call java directly

2020-09-21 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-13453:
---

[~sdarlington] Could you please take a look?

With the new run.sh JMX is disabled by default and the original issue from 
https://issues.apache.org/jira/browse/IGNITE-11715 should be gone. If you need 
to configure it, then instead of configuring -NO_JMX option it's required to 
set JVM options explicitly, something like: 

Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=49113 
   -Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false

I think it's ok in general, but now we have different defaults for running 
thought ignite.sh and run.sh.

We can make additional changes and keep it in sync with ignite.sh (enabled by 
default).

WDYT?

+[~imurchenko]

 

> Docker: Change run.sh to call java directly
> ---
>
> Key: IGNITE-13453
> URL: https://issues.apache.org/jira/browse/IGNITE-13453
> Project: Ignite
>  Issue Type: Improvement
>Affects Versions: 2.8.1
>Reporter: Alexandr Shapkin
>Assignee: Ilya Murchenko
>Priority: Critical
> Fix For: 2.10
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> ignite.sh is cumbersome in Docker as it creates the hassle with signals not 
> being propagated but adds little value as most of what ignite.sh discovers 
> about the system is known beforehand for our Docker images.
> Let's replace ignite.sh call with direct java invocation. 
> {code:bash}
> #!/bin/bash
> #
> # Licensed to the Apache Software Foundation (ASF) under one or more
> # contributor license agreements.  See the NOTICE file distributed with
> # this work for additional information regarding copyright ownership.
> # The ASF licenses this file to You under the Apache License, Version 2.0
> # (the "License"); you may not use this file except in compliance with
> # the License.  You may obtain a copy of the License at
> #
> #  http://www.apache.org/licenses/LICENSE-2.0
> #
> # Unless required by applicable law or agreed to in writing, software
> # distributed under the License is distributed on an "AS IS" BASIS,
> # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> # See the License for the specific language governing permissions and
> # limitations under the License.
> #
> source "${IGNITE_HOME}"/bin/include/functions.sh
> #
> # Discover path to Java executable and check it's version.
> #
> checkJava
> #
> # Set IGNITE_LIBS.
> #
> source "${IGNITE_HOME}"/bin/include/setenv.sh
> CP="${IGNITE_LIBS}"
> DEFAULT_CONFIG=config/default-config.xml
> #
> # Add optional libs to classpath
> #
> if [ -n "${OPTION_LIBS}" ]; then
> IFS=, LIBS_LIST=("$(tr -d '[:space:]' <<< ${OPTION_LIBS})")
>   for lib in ${LIBS_LIST[@]}; do
> LIBS=$(JARS=("${IGNITE_HOME}/libs/optional/${lib}"/*); IFS=:; echo 
> "${JARS[*]}")
> if [ -z "${USER_LIBS}" ]; then
>   export USER_LIBS="${LIBS}"
> else
>   export USER_LIBS="${USER_LIBS}:${LIBS}"
> fi
>   done
> fi
> #
> # Add external libs to classpath
> #
> if [ -n "${EXTERNAL_LIBS}" ]; then
>   IFS=, LIBS_LIST=("${EXTERNAL_LIBS}")
>   for lib in "${LIBS_LIST[@]}"; do
> echo "${lib}" >> "${IGNITE_HOME}"/work/external_libs
>   done
>   wget --content-disposition -i "${IGNITE_HOME}"/work/external_libs -P 
> "${IGNITE_HOME}"/libs/external
>   rm "${IGNITE_HOME}"/work/external_libs
> fi
> #
> # Define classpath
> #
> if [ "${USER_LIBS:-}" != "" ]; then
> IGNITE_LIBS=${USER_LIBS:-}:${IGNITE_LIBS}
> fi
> CP="${IGNITE_LIBS}"
> unset IFS
> #
> # Define default Java options
> #
> if [ -z "${JVM_OPTS}" ] ; then
> JVM_OPTS="-Xms1g -Xmx1g -server -XX:MaxMetaspaceSize=256m"
> fi
> #
> # Add Java extra option 
> #
> if [ "${version}" -eq 8 ] ; then
> JVM_OPTS="\
> -XX:+AggressiveOpts \
>  ${JVM_OPTS}"
> elif [ "${version}" -gt 8 ] && [ "${version}" -lt 11 ]; then
> JVM_OPTS="\
> -XX:+AggressiveOpts \
> --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
> --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
> --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
> --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \
> 
> --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
> --illegal-access=permit \
> --add-modules=java.xml.bind \
> ${JVM_OPTS}"
> elif [ "${version}" -ge 11 ] ; then
> JVM_OPTS="\
> --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
> --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
> --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
> 

[jira] [Commented] (IGNITE-13453) Docker: Change run.sh to call java directly

2020-09-18 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-13453:
---

[~alex_pl] This change replaces 
https://issues.apache.org/jira/browse/IGNITE-11715 as Ilya explained, so we 
won't need to have the extra parameter IGNITE_OPTIONS

> Docker: Change run.sh to call java directly
> ---
>
> Key: IGNITE-13453
> URL: https://issues.apache.org/jira/browse/IGNITE-13453
> Project: Ignite
>  Issue Type: Improvement
>Affects Versions: 2.8.1
>Reporter: Alexandr Shapkin
>Assignee: Ilya Murchenko
>Priority: Critical
> Fix For: 2.10
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> ignite.sh is cumbersome in Docker as it creates the hassle with signals not 
> being propagated but adds little value as most of what ignite.sh discovers 
> about the system is known beforehand for our Docker images.
> Let's replace ignite.sh call with direct java invocation. 
> {code:bash}
> #!/bin/bash
> #
> # Licensed to the Apache Software Foundation (ASF) under one or more
> # contributor license agreements.  See the NOTICE file distributed with
> # this work for additional information regarding copyright ownership.
> # The ASF licenses this file to You under the Apache License, Version 2.0
> # (the "License"); you may not use this file except in compliance with
> # the License.  You may obtain a copy of the License at
> #
> #  http://www.apache.org/licenses/LICENSE-2.0
> #
> # Unless required by applicable law or agreed to in writing, software
> # distributed under the License is distributed on an "AS IS" BASIS,
> # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> # See the License for the specific language governing permissions and
> # limitations under the License.
> #
> source "${IGNITE_HOME}"/bin/include/functions.sh
> #
> # Discover path to Java executable and check it's version.
> #
> checkJava
> #
> # Set IGNITE_LIBS.
> #
> source "${IGNITE_HOME}"/bin/include/setenv.sh
> CP="${IGNITE_LIBS}"
> DEFAULT_CONFIG=config/default-config.xml
> #
> # Add optional libs to classpath
> #
> if [ -n "${OPTION_LIBS}" ]; then
> IFS=, LIBS_LIST=("$(tr -d '[:space:]' <<< ${OPTION_LIBS})")
>   for lib in ${LIBS_LIST[@]}; do
> LIBS=$(JARS=("${IGNITE_HOME}/libs/optional/${lib}"/*); IFS=:; echo 
> "${JARS[*]}")
> if [ -z "${USER_LIBS}" ]; then
>   export USER_LIBS="${LIBS}"
> else
>   export USER_LIBS="${USER_LIBS}:${LIBS}"
> fi
>   done
> fi
> #
> # Add external libs to classpath
> #
> if [ -n "${EXTERNAL_LIBS}" ]; then
>   IFS=, LIBS_LIST=("${EXTERNAL_LIBS}")
>   for lib in "${LIBS_LIST[@]}"; do
> echo "${lib}" >> "${IGNITE_HOME}"/work/external_libs
>   done
>   wget --content-disposition -i "${IGNITE_HOME}"/work/external_libs -P 
> "${IGNITE_HOME}"/libs/external
>   rm "${IGNITE_HOME}"/work/external_libs
> fi
> #
> # Define classpath
> #
> if [ "${USER_LIBS:-}" != "" ]; then
> IGNITE_LIBS=${USER_LIBS:-}:${IGNITE_LIBS}
> fi
> CP="${IGNITE_LIBS}"
> unset IFS
> #
> # Define default Java options
> #
> if [ -z "${JVM_OPTS}" ] ; then
> JVM_OPTS="-Xms1g -Xmx1g -server -XX:MaxMetaspaceSize=256m"
> fi
> #
> # Add Java extra option 
> #
> if [ "${version}" -eq 8 ] ; then
> JVM_OPTS="\
> -XX:+AggressiveOpts \
>  ${JVM_OPTS}"
> elif [ "${version}" -gt 8 ] && [ "${version}" -lt 11 ]; then
> JVM_OPTS="\
> -XX:+AggressiveOpts \
> --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
> --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
> --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
> --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \
> 
> --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
> --illegal-access=permit \
> --add-modules=java.xml.bind \
> ${JVM_OPTS}"
> elif [ "${version}" -ge 11 ] ; then
> JVM_OPTS="\
> --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
> --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
> --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
> --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \
> 
> --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
> --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED \
> --illegal-access=permit \
> ${JVM_OPTS}"
> fi
> DIGNITE_QUIET=$(printenv JVM_OPTS | grep -o 'IGNITE_QUIET=[^ ,]\+' | cut -d 
> "=" -f 2)
> if [ "${IGNITE_QUIET}" == "false" -o "${DIGNITE_QUIET}" == "false" ]; then
> JVM_OPTS="${JVM_OPTS} -DIGNITE_QUIET=false"
> fi
> #
> # Start Ignite node
> #
> if [ -z "${CONFIG_URI}" ]; then
>   

[jira] [Commented] (IGNITE-13453) Docker: Change run.sh to call java directly

2020-09-18 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-13453:
---

[~ilyak]/[~isapego] Could you please help with the merge? 

The change is only about the docker-related run.sh script, no other files 
affected.

> Docker: Change run.sh to call java directly
> ---
>
> Key: IGNITE-13453
> URL: https://issues.apache.org/jira/browse/IGNITE-13453
> Project: Ignite
>  Issue Type: Improvement
>Affects Versions: 2.8.1
>Reporter: Alexandr Shapkin
>Assignee: Ilya Murchenko
>Priority: Critical
> Fix For: 2.9
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> ignite.sh is cumbersome in Docker as it creates the hassle with signals not 
> being propagated but adds little value as most of what ignite.sh discovers 
> about the system is known beforehand for our Docker images.
> Let's replace ignite.sh call with direct java invocation. 
> {code:bash}
> #!/bin/bash
> #
> # Licensed to the Apache Software Foundation (ASF) under one or more
> # contributor license agreements.  See the NOTICE file distributed with
> # this work for additional information regarding copyright ownership.
> # The ASF licenses this file to You under the Apache License, Version 2.0
> # (the "License"); you may not use this file except in compliance with
> # the License.  You may obtain a copy of the License at
> #
> #  http://www.apache.org/licenses/LICENSE-2.0
> #
> # Unless required by applicable law or agreed to in writing, software
> # distributed under the License is distributed on an "AS IS" BASIS,
> # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> # See the License for the specific language governing permissions and
> # limitations under the License.
> #
> source "${IGNITE_HOME}"/bin/include/functions.sh
> #
> # Discover path to Java executable and check it's version.
> #
> checkJava
> #
> # Set IGNITE_LIBS.
> #
> source "${IGNITE_HOME}"/bin/include/setenv.sh
> CP="${IGNITE_LIBS}"
> DEFAULT_CONFIG=config/default-config.xml
> #
> # Add optional libs to classpath
> #
> if [ -n "${OPTION_LIBS}" ]; then
> IFS=, LIBS_LIST=("$(tr -d '[:space:]' <<< ${OPTION_LIBS})")
>   for lib in ${LIBS_LIST[@]}; do
> LIBS=$(JARS=("${IGNITE_HOME}/libs/optional/${lib}"/*); IFS=:; echo 
> "${JARS[*]}")
> if [ -z "${USER_LIBS}" ]; then
>   export USER_LIBS="${LIBS}"
> else
>   export USER_LIBS="${USER_LIBS}:${LIBS}"
> fi
>   done
> fi
> #
> # Add external libs to classpath
> #
> if [ -n "${EXTERNAL_LIBS}" ]; then
>   IFS=, LIBS_LIST=("${EXTERNAL_LIBS}")
>   for lib in "${LIBS_LIST[@]}"; do
> echo "${lib}" >> "${IGNITE_HOME}"/work/external_libs
>   done
>   wget --content-disposition -i "${IGNITE_HOME}"/work/external_libs -P 
> "${IGNITE_HOME}"/libs/external
>   rm "${IGNITE_HOME}"/work/external_libs
> fi
> #
> # Define classpath
> #
> if [ "${USER_LIBS:-}" != "" ]; then
> IGNITE_LIBS=${USER_LIBS:-}:${IGNITE_LIBS}
> fi
> CP="${IGNITE_LIBS}"
> unset IFS
> #
> # Define default Java options
> #
> if [ -z "${JVM_OPTS}" ] ; then
> JVM_OPTS="-Xms1g -Xmx1g -server -XX:MaxMetaspaceSize=256m"
> fi
> #
> # Add Java extra option 
> #
> if [ "${version}" -eq 8 ] ; then
> JVM_OPTS="\
> -XX:+AggressiveOpts \
>  ${JVM_OPTS}"
> elif [ "${version}" -gt 8 ] && [ "${version}" -lt 11 ]; then
> JVM_OPTS="\
> -XX:+AggressiveOpts \
> --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
> --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
> --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
> --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \
> 
> --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
> --illegal-access=permit \
> --add-modules=java.xml.bind \
> ${JVM_OPTS}"
> elif [ "${version}" -ge 11 ] ; then
> JVM_OPTS="\
> --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
> --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
> --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
> --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \
> 
> --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
> --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED \
> --illegal-access=permit \
> ${JVM_OPTS}"
> fi
> DIGNITE_QUIET=$(printenv JVM_OPTS | grep -o 'IGNITE_QUIET=[^ ,]\+' | cut -d 
> "=" -f 2)
> if [ "${IGNITE_QUIET}" == "false" -o "${DIGNITE_QUIET}" == "false" ]; then
> JVM_OPTS="${JVM_OPTS} -DIGNITE_QUIET=false"
> fi
> #
> # Start Ignite node
> #
> if [ -z "${CONFIG_URI}" ]; then
>   exec "${JAVA}" 

[jira] [Updated] (IGNITE-13453) Docker: Change run.sh to call java directly

2020-09-17 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-13453:
--
Release Note: Replaced ignite.sh invocation with the direct JVM call for 
Docker deployment
Reviewer: Peter Ivanov

> Docker: Change run.sh to call java directly
> ---
>
> Key: IGNITE-13453
> URL: https://issues.apache.org/jira/browse/IGNITE-13453
> Project: Ignite
>  Issue Type: Improvement
>Affects Versions: 2.8.1
>Reporter: Alexandr Shapkin
>Assignee: Ilya Murchenko
>Priority: Critical
> Fix For: 2.9
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> ignite.sh is cumbersome in Docker as it creates the hassle with signals not 
> being propagated but adds little value as most of what ignite.sh discovers 
> about the system is known beforehand for our Docker images.
> Let's replace ignite.sh call with direct java invocation. 
> {code:bash}
> #!/bin/bash
> #
> # Licensed to the Apache Software Foundation (ASF) under one or more
> # contributor license agreements.  See the NOTICE file distributed with
> # this work for additional information regarding copyright ownership.
> # The ASF licenses this file to You under the Apache License, Version 2.0
> # (the "License"); you may not use this file except in compliance with
> # the License.  You may obtain a copy of the License at
> #
> #  http://www.apache.org/licenses/LICENSE-2.0
> #
> # Unless required by applicable law or agreed to in writing, software
> # distributed under the License is distributed on an "AS IS" BASIS,
> # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> # See the License for the specific language governing permissions and
> # limitations under the License.
> #
> source "${IGNITE_HOME}"/bin/include/functions.sh
> #
> # Discover path to Java executable and check it's version.
> #
> checkJava
> #
> # Set IGNITE_LIBS.
> #
> source "${IGNITE_HOME}"/bin/include/setenv.sh
> CP="${IGNITE_LIBS}"
> DEFAULT_CONFIG=config/default-config.xml
> #
> # Add optional libs to classpath
> #
> if [ -n "${OPTION_LIBS}" ]; then
> IFS=, LIBS_LIST=("$(tr -d '[:space:]' <<< ${OPTION_LIBS})")
>   for lib in ${LIBS_LIST[@]}; do
> LIBS=$(JARS=("${IGNITE_HOME}/libs/optional/${lib}"/*); IFS=:; echo 
> "${JARS[*]}")
> if [ -z "${USER_LIBS}" ]; then
>   export USER_LIBS="${LIBS}"
> else
>   export USER_LIBS="${USER_LIBS}:${LIBS}"
> fi
>   done
> fi
> #
> # Add external libs to classpath
> #
> if [ -n "${EXTERNAL_LIBS}" ]; then
>   IFS=, LIBS_LIST=("${EXTERNAL_LIBS}")
>   for lib in "${LIBS_LIST[@]}"; do
> echo "${lib}" >> "${IGNITE_HOME}"/work/external_libs
>   done
>   wget --content-disposition -i "${IGNITE_HOME}"/work/external_libs -P 
> "${IGNITE_HOME}"/libs/external
>   rm "${IGNITE_HOME}"/work/external_libs
> fi
> #
> # Define classpath
> #
> if [ "${USER_LIBS:-}" != "" ]; then
> IGNITE_LIBS=${USER_LIBS:-}:${IGNITE_LIBS}
> fi
> CP="${IGNITE_LIBS}"
> unset IFS
> #
> # Define default Java options
> #
> if [ -z "${JVM_OPTS}" ] ; then
> JVM_OPTS="-Xms1g -Xmx1g -server -XX:MaxMetaspaceSize=256m"
> fi
> #
> # Add Java extra option 
> #
> if [ "${version}" -eq 8 ] ; then
> JVM_OPTS="\
> -XX:+AggressiveOpts \
>  ${JVM_OPTS}"
> elif [ "${version}" -gt 8 ] && [ "${version}" -lt 11 ]; then
> JVM_OPTS="\
> -XX:+AggressiveOpts \
> --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
> --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
> --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
> --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \
> 
> --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
> --illegal-access=permit \
> --add-modules=java.xml.bind \
> ${JVM_OPTS}"
> elif [ "${version}" -ge 11 ] ; then
> JVM_OPTS="\
> --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
> --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
> --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
> --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \
> 
> --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
> --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED \
> --illegal-access=permit \
> ${JVM_OPTS}"
> fi
> DIGNITE_QUIET=$(printenv JVM_OPTS | grep -o 'IGNITE_QUIET=[^ ,]\+' | cut -d 
> "=" -f 2)
> if [ "${IGNITE_QUIET}" == "false" -o "${DIGNITE_QUIET}" == "false" ]; then
> JVM_OPTS="${JVM_OPTS} -DIGNITE_QUIET=false"
> fi
> #
> # Start Ignite node
> #
> if [ -z "${CONFIG_URI}" ]; then
>   exec "${JAVA}" ${JVM_OPTS} -DIGNITE_HOME="${IGNITE_HOME}" -cp "${CP}" 
> 

[jira] [Updated] (IGNITE-13453) Docker: Change run.sh to call java directly

2020-09-16 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-13453:
--
Description: 
ignite.sh is cumbersome in Docker as it creates the hassle with signals not 
being propagated but adds little value as most of what ignite.sh discovers 
about the system is known beforehand for our Docker images.

Let's replace ignite.sh call with direct java invocation. 
{code:bash}
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
source "${IGNITE_HOME}"/bin/include/functions.sh
#
# Discover path to Java executable and check it's version.
#
checkJava
#
# Set IGNITE_LIBS.
#
source "${IGNITE_HOME}"/bin/include/setenv.sh
CP="${IGNITE_LIBS}"
DEFAULT_CONFIG=config/default-config.xml
#
# Add optional libs to classpath
#
if [ -n "${OPTION_LIBS}" ]; then
IFS=, LIBS_LIST=("$(tr -d '[:space:]' <<< ${OPTION_LIBS})")
  for lib in ${LIBS_LIST[@]}; do
LIBS=$(JARS=("${IGNITE_HOME}/libs/optional/${lib}"/*); IFS=:; echo 
"${JARS[*]}")
if [ -z "${USER_LIBS}" ]; then
  export USER_LIBS="${LIBS}"
else
  export USER_LIBS="${USER_LIBS}:${LIBS}"
fi
  done
fi
#
# Add external libs to classpath
#
if [ -n "${EXTERNAL_LIBS}" ]; then
  IFS=, LIBS_LIST=("${EXTERNAL_LIBS}")
  for lib in "${LIBS_LIST[@]}"; do
echo "${lib}" >> "${IGNITE_HOME}"/work/external_libs
  done
  wget --content-disposition -i "${IGNITE_HOME}"/work/external_libs -P 
"${IGNITE_HOME}"/libs/external
  rm "${IGNITE_HOME}"/work/external_libs
fi
#
# Define classpath
#
if [ "${USER_LIBS:-}" != "" ]; then
IGNITE_LIBS=${USER_LIBS:-}:${IGNITE_LIBS}
fi
CP="${IGNITE_LIBS}"
unset IFS
#
# Define default Java options
#
if [ -z "${JVM_OPTS}" ] ; then
JVM_OPTS="-Xms1g -Xmx1g -server -XX:MaxMetaspaceSize=256m"
fi
#
# Add Java extra option 
#
if [ "${version}" -eq 8 ] ; then
JVM_OPTS="\
-XX:+AggressiveOpts \
 ${JVM_OPTS}"
elif [ "${version}" -gt 8 ] && [ "${version}" -lt 11 ]; then
JVM_OPTS="\
-XX:+AggressiveOpts \
--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
--add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
--add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \

--add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
--illegal-access=permit \
--add-modules=java.xml.bind \
${JVM_OPTS}"
elif [ "${version}" -ge 11 ] ; then
JVM_OPTS="\
--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
--add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
--add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \

--add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED \
--illegal-access=permit \
${JVM_OPTS}"
fi
DIGNITE_QUIET=$(printenv JVM_OPTS | grep -o 'IGNITE_QUIET=[^ ,]\+' | cut -d "=" 
-f 2)
if [ "${IGNITE_QUIET}" == "false" -o "${DIGNITE_QUIET}" == "false" ]; then
JVM_OPTS="${JVM_OPTS} -DIGNITE_QUIET=false"
fi
#
# Start Ignite node
#
if [ -z "${CONFIG_URI}" ]; then
  exec "${JAVA}" ${JVM_OPTS} -DIGNITE_HOME="${IGNITE_HOME}" -cp "${CP}" 
org.apache.ignite.startup.cmdline.CommandLineStartup "${DEFAULT_CONFIG}"
else
  exec "${JAVA}" ${JVM_OPTS} -DIGNITE_HOME="${IGNITE_HOME}" -cp "${CP}" 
org.apache.ignite.startup.cmdline.CommandLineStartup "${CONFIG_URI}"
fi
{code}
 

  was:
ignite.sh is cumbersome in Docker as it creates the hassle with signals not 
being propagated but adds little value as most of what ignite.sh discovers 
about the system is known beforehand for our Docker images.

Let's replace ignite.sh call with direct java invocation. 
{code:bash}
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the 

[jira] [Commented] (IGNITE-13453) Docker: Change run.sh to call java directly

2020-09-16 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-13453:
---

[~alexpl] can we include this ticket into the 2.9 release?  

We are working on Apache Ignite Operator and this change is vital for it.  

> Docker: Change run.sh to call java directly
> ---
>
> Key: IGNITE-13453
> URL: https://issues.apache.org/jira/browse/IGNITE-13453
> Project: Ignite
>  Issue Type: Improvement
>Affects Versions: 2.8.1
>Reporter: Alexandr Shapkin
>Assignee: Ilya Murchenko
>Priority: Critical
> Fix For: 2.9
>
>
> ignite.sh is cumbersome in Docker as it creates the hassle with signals not 
> being propagated but adds little value as most of what ignite.sh discovers 
> about the system is known beforehand for our Docker images.
> Let's replace ignite.sh call with direct java invocation. 
> {code:bash}
> #!/bin/bash
> #
> # Licensed to the Apache Software Foundation (ASF) under one or more
> # contributor license agreements.  See the NOTICE file distributed with
> # this work for additional information regarding copyright ownership.
> # The ASF licenses this file to You under the Apache License, Version 2.0
> # (the "License"); you may not use this file except in compliance with
> # the License.  You may obtain a copy of the License at
> #
> #  http://www.apache.org/licenses/LICENSE-2.0
> #
> # Unless required by applicable law or agreed to in writing, software
> # distributed under the License is distributed on an "AS IS" BASIS,
> # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> # See the License for the specific language governing permissions and
> # limitations under the License.
> #
> source "${IGNITE_HOME}"/bin/include/functions.sh
> #
> # Discover path to Java executable and check it's version.
> #
> checkJava
> #
> # Set IGNITE_LIBS.
> #
> source "${IGNITE_HOME}"/bin/include/setenv.sh
> CP="${IGNITE_LIBS}"
> DEFAULT_CONFIG=config/default-config.xml
> #
> # Add optional libs to classpath
> #
> if [ -n "${OPTION_LIBS}" ]; then
> IFS=, LIBS_LIST=("$(tr -d '[:space:]' <<< ${OPTION_LIBS})")
>   for lib in ${LIBS_LIST[@]}; do
> LIBS=$(JARS=("${IGNITE_HOME}/libs/optional/${lib}"/*); IFS=:; echo 
> "${JARS[*]}")
> if [ -z "${USER_LIBS}" ]; then
>   export USER_LIBS="${LIBS}"
> else
>   export USER_LIBS="${USER_LIBS}:${LIBS}"
> fi
>   done
> fi
> #
> # Add external libs to classpath
> #
> if [ -n "${EXTERNAL_LIBS}" ]; then
>   IFS=, LIBS_LIST=("${EXTERNAL_LIBS}")
>   for lib in "${LIBS_LIST[@]}"; do
> echo "${lib}" >> "${IGNITE_HOME}"/work/external_libs
>   done
>   wget --content-disposition -i "${IGNITE_HOME}"/work/external_libs -P 
> "${IGNITE_HOME}"/libs/external
>   rm "${IGNITE_HOME}"/work/external_libs
> fi
> #
> # Get License file
> #
> if [ -n "${LICENCE_URL}" ]; then
> wget -O "${IGNITE_HOME}"/work/gridgain-license.xml "${LICENCE_URL}"
> fi
> #
> # Define classpath
> #
> if [ "${USER_LIBS:-}" != "" ]; then
> IGNITE_LIBS=${USER_LIBS:-}:${IGNITE_LIBS}
> fi
> CP="${IGNITE_LIBS}"
> unset IFS
> #
> # Define default Java options
> #
> if [ -z "${JVM_OPTS}" ] ; then
> JVM_OPTS="-Xms1g -Xmx1g -server -XX:MaxMetaspaceSize=256m"
> fi
> #
> # Add Java extra option 
> #
> if [ "${version}" -eq 8 ] ; then
> JVM_OPTS="\
> -XX:+AggressiveOpts \
>  ${JVM_OPTS}"
> elif [ "${version}" -gt 8 ] && [ "${version}" -lt 11 ]; then
> JVM_OPTS="\
> -XX:+AggressiveOpts \
> --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
> --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
> --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
> --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \
> 
> --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
> --illegal-access=permit \
> --add-modules=java.xml.bind \
> ${JVM_OPTS}"
> elif [ "${version}" -ge 11 ] ; then
> JVM_OPTS="\
> --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
> --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
> --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
> --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \
> 
> --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
> --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED \
> --illegal-access=permit \
> ${JVM_OPTS}"
> fi
> DIGNITE_QUIET=$(printenv JVM_OPTS | grep -o 'IGNITE_QUIET=[^ ,]\+' | cut -d 
> "=" -f 2)
> if [ "${IGNITE_QUIET}" == "false" -o "${DIGNITE_QUIET}" == "false" ]; then
> JVM_OPTS="${JVM_OPTS} -DIGNITE_QUIET=false"
> fi
> #

[jira] [Updated] (IGNITE-13453) Docker: Change run.sh to call java directly

2020-09-16 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-13453:
--
Description: 
ignite.sh is cumbersome in Docker as it creates the hassle with signals not 
being propagated but adds little value as most of what ignite.sh discovers 
about the system is known beforehand for our Docker images.

Let's replace ignite.sh call with direct java invocation. 
{code:bash}
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
source "${IGNITE_HOME}"/bin/include/functions.sh
#
# Discover path to Java executable and check it's version.
#
checkJava
#
# Set IGNITE_LIBS.
#
source "${IGNITE_HOME}"/bin/include/setenv.sh
CP="${IGNITE_LIBS}"
DEFAULT_CONFIG=config/default-config.xml
#
# Add optional libs to classpath
#
if [ -n "${OPTION_LIBS}" ]; then
IFS=, LIBS_LIST=("$(tr -d '[:space:]' <<< ${OPTION_LIBS})")
  for lib in ${LIBS_LIST[@]}; do
LIBS=$(JARS=("${IGNITE_HOME}/libs/optional/${lib}"/*); IFS=:; echo 
"${JARS[*]}")
if [ -z "${USER_LIBS}" ]; then
  export USER_LIBS="${LIBS}"
else
  export USER_LIBS="${USER_LIBS}:${LIBS}"
fi
  done
fi
#
# Add external libs to classpath
#
if [ -n "${EXTERNAL_LIBS}" ]; then
  IFS=, LIBS_LIST=("${EXTERNAL_LIBS}")
  for lib in "${LIBS_LIST[@]}"; do
echo "${lib}" >> "${IGNITE_HOME}"/work/external_libs
  done
  wget --content-disposition -i "${IGNITE_HOME}"/work/external_libs -P 
"${IGNITE_HOME}"/libs/external
  rm "${IGNITE_HOME}"/work/external_libs
fi
#
# Get License file
#
if [ -n "${LICENCE_URL}" ]; then
wget -O "${IGNITE_HOME}"/work/gridgain-license.xml "${LICENCE_URL}"
fi
#
# Define classpath
#
if [ "${USER_LIBS:-}" != "" ]; then
IGNITE_LIBS=${USER_LIBS:-}:${IGNITE_LIBS}
fi
CP="${IGNITE_LIBS}"
unset IFS
#
# Define default Java options
#
if [ -z "${JVM_OPTS}" ] ; then
JVM_OPTS="-Xms1g -Xmx1g -server -XX:MaxMetaspaceSize=256m"
fi
#
# Add Java extra option 
#
if [ "${version}" -eq 8 ] ; then
JVM_OPTS="\
-XX:+AggressiveOpts \
 ${JVM_OPTS}"
elif [ "${version}" -gt 8 ] && [ "${version}" -lt 11 ]; then
JVM_OPTS="\
-XX:+AggressiveOpts \
--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
--add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
--add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \

--add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
--illegal-access=permit \
--add-modules=java.xml.bind \
${JVM_OPTS}"
elif [ "${version}" -ge 11 ] ; then
JVM_OPTS="\
--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
--add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
--add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \

--add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED \
--illegal-access=permit \
${JVM_OPTS}"
fi
DIGNITE_QUIET=$(printenv JVM_OPTS | grep -o 'IGNITE_QUIET=[^ ,]\+' | cut -d "=" 
-f 2)
if [ "${IGNITE_QUIET}" == "false" -o "${DIGNITE_QUIET}" == "false" ]; then
JVM_OPTS="${JVM_OPTS} -DIGNITE_QUIET=false"
fi
#
# Start GridGain node
#
if [ -z "${CONFIG_URI}" ]; then
  exec "${JAVA}" ${JVM_OPTS} -DIGNITE_HOME="${IGNITE_HOME}" -cp "${CP}" 
org.apache.ignite.startup.cmdline.CommandLineStartup "${DEFAULT_CONFIG}"
else
  exec "${JAVA}" ${JVM_OPTS} -DIGNITE_HOME="${IGNITE_HOME}" -cp "${CP}" 
org.apache.ignite.startup.cmdline.CommandLineStartup "${CONFIG_URI}"
fi
{code}
 

  was:
ignite.sh is cumbersome in Docker as it creates the hassle with signals not 
being propagated but adds little value as most of what ignite.sh discovers 
about the system is known beforehand for our Docker images.

Let's replace ignite.sh call with direct java invocation. 
{code:bash}
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for 

[jira] [Updated] (IGNITE-13453) Docker: Change run.sh to call java directly

2020-09-16 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-13453:
--
Description: 
ignite.sh is cumbersome in Docker as it creates the hassle with signals not 
being propagated but adds little value as most of what ignite.sh discovers 
about the system is known beforehand for our Docker images.

Let's replace ignite.sh call with direct java invocation. 
{code:bash}
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
source "${IGNITE_HOME}"/bin/include/functions.sh
#
# Discover path to Java executable and check it's version.
#
checkJava
#
# Set IGNITE_LIBS.
#
source "${IGNITE_HOME}"/bin/include/setenv.sh
CP="${IGNITE_LIBS}"
DEFAULT_CONFIG=config/default-config.xml
#
# Add optional libs to classpath
#
if [ -n "${OPTION_LIBS}" ]; then
  IFS=, LIBS_LIST=("${OPTION_LIBS}")
  for lib in "${LIBS_LIST[@]}"; do
LIBS=$(JARS=("${IGNITE_HOME}/libs/optional/${lib}"/*); IFS=:; echo 
"${JARS[*]}")
if [ -z "${USER_LIBS}" ]; then
  export USER_LIBS="${LIBS}"
else
  export USER_LIBS="${USER_LIBS}:${LIBS}"
fi
  done
fi
#
# Add external libs to classpath
#
if [ -n "${EXTERNAL_LIBS}" ]; then
  IFS=, LIBS_LIST=("${EXTERNAL_LIBS}")
  for lib in "${LIBS_LIST[@]}"; do
echo "${lib}" >> "${IGNITE_HOME}"/work/external_libs
  done
  wget --content-disposition -i "${IGNITE_HOME}"/work/external_libs -P 
"${IGNITE_HOME}"/libs/external
  rm "${IGNITE_HOME}"/work/external_libs
fi
#
# Get License file
#
if [ -n "${LICENCE_URL}" ]; then
wget -O "${IGNITE_HOME}"/work/gridgain-license.xml "${LICENCE_URL}"
fi
#
# Define classpath
#
if [ "${USER_LIBS:-}" != "" ]; then
IGNITE_LIBS=${USER_LIBS:-}:${IGNITE_LIBS}
fi
CP="${IGNITE_LIBS}"
unset IFS
#
# Define default Java options
#
if [ -z "${JVM_OPTS}" ] ; then
JVM_OPTS="-Xms1g -Xmx1g -server -XX:MaxMetaspaceSize=256m"
fi
#
# Add Java extra option 
#
if [ "${version}" -eq 8 ] ; then
JVM_OPTS="\
-XX:+AggressiveOpts \
 ${JVM_OPTS}"
elif [ "${version}" -gt 8 ] && [ "${version}" -lt 11 ]; then
JVM_OPTS="\
-XX:+AggressiveOpts \
--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
--add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
--add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \

--add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
--illegal-access=permit \
--add-modules=java.xml.bind \
${JVM_OPTS}"
elif [ "${version}" -ge 11 ] ; then
JVM_OPTS="\
--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
--add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
--add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \

--add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED \
--illegal-access=permit \
${JVM_OPTS}"
fi
DIGNITE_QUIET=$(printenv JVM_OPTS | grep -o 'IGNITE_QUIET=[^ ,]\+' | cut -d "=" 
-f 2)
if [ "${IGNITE_QUIET}" == "false" -o "${DIGNITE_QUIET}" == "false" ]; then
JVM_OPTS="${JVM_OPTS} -DIGNITE_QUIET=false"
fi
#
# Start GridGain node
#
if [ -z "${CONFIG_URI}" ]; then
  exec "${JAVA}" ${JVM_OPTS} -DIGNITE_HOME="${IGNITE_HOME}" -cp "${CP}" 
org.apache.ignite.startup.cmdline.CommandLineStartup "${DEFAULT_CONFIG}"
else
  exec "${JAVA}" ${JVM_OPTS} -DIGNITE_HOME="${IGNITE_HOME}" -cp "${CP}" 
org.apache.ignite.startup.cmdline.CommandLineStartup "${CONFIG_URI}"
fi

{code}
 

  was:
ignite.sh is cumbersome in Docker as it creates the hassle with signals not 
being propagated but adds little value as most of what ignite.sh discovers 
about the system is known beforehand for our Docker images.

Let's replace ignite.sh call with direct java invocation.

 


> Docker: Change run.sh to call java directly
> ---
>
> Key: IGNITE-13453
> URL: https://issues.apache.org/jira/browse/IGNITE-13453
>

[jira] [Created] (IGNITE-13453) Docker: Change run.sh to call java directly

2020-09-16 Thread Alexandr Shapkin (Jira)
Alexandr Shapkin created IGNITE-13453:
-

 Summary: Docker: Change run.sh to call java directly
 Key: IGNITE-13453
 URL: https://issues.apache.org/jira/browse/IGNITE-13453
 Project: Ignite
  Issue Type: Improvement
Affects Versions: 2.8.1
Reporter: Alexandr Shapkin
Assignee: Ilya Murchenko
 Fix For: 2.9


ignite.sh is cumbersome in Docker as it creates the hassle with signals not 
being propagated but adds little value as most of what ignite.sh discovers 
about the system is known beforehand for our Docker images.

Let's replace ignite.sh call with direct java invocation.

 



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


[jira] [Commented] (IGNITE-12863) NPE while initializing Cassandra Store

2020-09-09 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-12863:
---

[~alex504], [~zstan], guys, could you please take a look at 
[https://stackoverflow.com/questions/63818061/on-ignite-2-8-1-upgrade-startup-is-crashing-with-npe-for-cassandra-persistence]

 

Seems like enrichedFields might be null that's not suitable for 
Collections.unmodifiableList

> NPE while initializing Cassandra Store
> --
>
> Key: IGNITE-12863
> URL: https://issues.apache.org/jira/browse/IGNITE-12863
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.8
>Reporter: Alex Serbin
>Priority: Major
> Fix For: 2.8.1
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> When trying to create a simple cache with Cassandra store and have value 
> persistence strategy POJO, the following exception occurs
> {code:java}
> Caused by: java.lang.NullPointerException: nullCaused by: 
> java.lang.NullPointerException: null at 
> org.apache.ignite.cache.store.cassandra.persistence.PojoField.calculatedField(PojoField.java:155)
>  ~[ignite-cassandra-store-2.8.0.jar:2.8.0] at 
> org.apache.ignite.cache.store.cassandra.persistence.PersistenceController.prepareLoadStatements(PersistenceController.java:311)
>  ~[ignite-cassandra-store-2.8.0.jar:2.8.0] at 
> org.apache.ignite.cache.store.cassandra.persistence.PersistenceController.(PersistenceController.java:85)
>  ~[ignite-cassandra-store-2.8.0.jar:2.8.0] at 
> org.apache.ignite.cache.store.cassandra.CassandraCacheStore.(CassandraCacheStore.java:106)
>  ~[ignite-cassandra-store-2.8.0.jar:2.8.0] at 
> org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory.create(CassandraCacheStoreFactory.java:59)
>  ~[ignite-cassandra-store-2.8.0.jar:2.8.0] at 
> org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory.create(CassandraCacheStoreFactory.java:34)
>  ~[ignite-cassandra-store-2.8.0.jar:2.8.0] at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.createCacheContext(GridCacheProcessor.java:1199)
>  ~[ignite-core-2.8.0.jar:2.8.0] at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheContext(GridCacheProcessor.java:1995)
>  ~[ignite-core-2.8.0.jar:2.8.0] at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$null$6a5b31b9$1(GridCacheProcessor.java:1830)
>  ~[ignite-core-2.8.0.jar:2.8.0] at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCaches$8(GridCacheProcessor.java:1754)
>  ~[ignite-core-2.8.0.jar:2.8.0] at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCaches$926b6886$1(GridCacheProcessor.java:1827)
>  ~[ignite-core-2.8.0.jar:2.8.0] at 
> org.apache.ignite.internal.util.IgniteUtils.lambda$null$1(IgniteUtils.java:11138)
>  ~[ignite-core-2.8.0.jar:2.8.0] at 
> java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266) 
> ~[na:1.8.0_181] at java.util.concurrent.FutureTask.run(FutureTask.java) 
> ~[na:1.8.0_181] at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  ~[na:1.8.0_181] at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  ~[na:1.8.0_181] at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_181] 
> {code}
> It looks like that recent changes of IGNITE-1903 are leading to this issue, 
> as we are starting to serialize {{CacheStoreFactory}}, which contains 
> {{PojoFiled}}, which in its turn has transient field accessor. This leads to 
> accessor being null after deserialization. Note, that this happens only when 
> passing {{persistenceSettings}} (not {{persistenceSettingsBean}})
> Works fine with Ignite 2.7.6.
> Probably related to IGNITE-8500



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


[jira] [Commented] (IGNITE-13369) .NET: Local node info is not updated on client reconnect

2020-08-19 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-13369:
---

[~ptupitsyn] LGTM

> .NET: Local node info is not updated on client reconnect
> 
>
> Key: IGNITE-13369
> URL: https://issues.apache.org/jira/browse/IGNITE-13369
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Affects Versions: 2.8.1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET
> Fix For: 2.10
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> {{Ignite._locNode}} field caches local node information, and this cache info 
> is not updated on client reconnect. We should remove cached info on every 
> disconnect.



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


[jira] [Assigned] (IGNITE-2890) .NET: Add CacheConfiguration.NodeFilter

2020-07-14 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin reassigned IGNITE-2890:


Assignee: Alexandr Shapkin

> .NET: Add CacheConfiguration.NodeFilter
> ---
>
> Key: IGNITE-2890
> URL: https://issues.apache.org/jira/browse/IGNITE-2890
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.6
>Reporter: Pavel Tupitsyn
>Assignee: Alexandr Shapkin
>Priority: Major
>  Labels: .net
>
> See ServiceConfiguration.NodeFilter
> * Caches start earlier than platform => need to pass pointer for static 
> CacheConfigurations
> * For dynamic cache start, no need for pointers



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


[jira] [Commented] (IGNITE-6982) .NET: Migrate to latest NUnit

2020-07-07 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-6982:
--

[~alex_pl], no, it's still in the backlog. I don't think we need it for 2.9

> .NET: Migrate to latest NUnit
> -
>
> Key: IGNITE-6982
> URL: https://issues.apache.org/jira/browse/IGNITE-6982
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Alexandr Shapkin
>Priority: Major
>  Labels: .NET
> Fix For: 2.9
>
>
> We use very old NUnit 2.6. In order to reuse tests under .NET Core 
> (IGNITE-2662) we need latest NUnit.



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


[jira] [Updated] (IGNITE-13160) .NET: wrong affinity key registration with AffinityKeyMapped attribute

2020-06-17 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-13160:
--
Description: 
When QueryEntities is set alongside a custom key that utilizes the 
AffinityKeyMapped attribute, the field won't be taken into account for some 
reason. When QueryEntities configuration gets removed, all works fine, setting 
KeyConfiguration manually helps as well. At the same time, the BinaryType 
registration itself looks fine.

After the investigation, it turned out that affinityKey field is not being 
registered on cache registration, and null is being cached instead. Later on 
Ignite correctly tries to register a custom class as a key, but it's never 
being updated internally case the real value is already cached.

 

NOTE: there is a workaround - you need to specify the key configuration 
explicitly:

cacheConfiguration.KeyConfiguration = new List(1)
{code:java}
{
 //affinityKey should be auto adjusted with Reflection
 new CacheKeyConfiguration(typeof(MyKey))
};
 
{code}
 

Reproducer (add to the AffinityTest.cs):
{code:java}
/// 
/// Tests AffinityKeyMapped attribute should map to the same partitions
/// for the same field value.
/// 
[Test]
public void TestCustomAffinity()
{
IIgnite g = Ignition.GetIgnite("grid-0");

var cacheCfg = new CacheConfiguration("mycache")
{
// Without QueryEntities tests passes.
QueryEntities = new List()
{
new QueryEntity(typeof(MyKey), typeof(int))
}
};
g.GetOrCreateCache(cacheCfg);

var key1 = new MyKey {Data = "data1", AffinityKey = 1};
var key2 = new MyKey {Data = "data2", AffinityKey = 1};

ICacheAffinity aff = g.GetAffinity(cacheCfg.Name);
Assert.AreEqual(aff.GetPartition(key1), aff.GetPartition(key2));
}

public class MyKey
{
[QuerySqlField]
public string Data { get; set; }
[AffinityKeyMapped]
public long AffinityKey { get; set; }
}
{code}

  was:
When QueryEntities is set alongside a custom key that utilizes the 
AffinityKeyMapped attribute, the field won't be taken into account for some 
reason. When QueryEntities configuration gets removed, all works fine, setting 
KeyConfiguration manually helps as well. At the same time, the BinaryType 
registration itself looks fine.

After the investigation, it turned out that affinityKey field is not being 
registered on cache registration, and null is being cached instead. Later on 
Ignite correctly tries to register a custom class as a key, but it's never 
being updated internally case the real value is already cached.

 

Reproducer (add to the AffinityTest.cs):
{code:java}
/// 
/// Tests AffinityKeyMapped attribute should map to the same partitions
/// for the same field value.
/// 
[Test]
public void TestCustomAffinity()
{
IIgnite g = Ignition.GetIgnite("grid-0");

var cacheCfg = new CacheConfiguration("mycache")
{
// Without QueryEntities tests passes.
QueryEntities = new List()
{
new QueryEntity(typeof(MyKey), typeof(int))
}
};
g.GetOrCreateCache(cacheCfg);

var key1 = new MyKey {Data = "data1", AffinityKey = 1};
var key2 = new MyKey {Data = "data2", AffinityKey = 1};

ICacheAffinity aff = g.GetAffinity(cacheCfg.Name);
Assert.AreEqual(aff.GetPartition(key1), aff.GetPartition(key2));
}

public class MyKey
{
[QuerySqlField]
public string Data { get; set; }
[AffinityKeyMapped]
public long AffinityKey { get; set; }
}
{code}


> .NET: wrong affinity key registration with AffinityKeyMapped attribute
> --
>
> Key: IGNITE-13160
> URL: https://issues.apache.org/jira/browse/IGNITE-13160
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Affects Versions: 2.8.1
>Reporter: Alexandr Shapkin
>Priority: Major
>
> When QueryEntities is set alongside a custom key that utilizes the 
> AffinityKeyMapped attribute, the field won't be taken into account for some 
> reason. When QueryEntities configuration gets removed, all works fine, 
> setting KeyConfiguration manually helps as well. At the same time, the 
> BinaryType registration itself looks fine.
> After the investigation, it turned out that affinityKey field is not being 
> registered on cache registration, and null is being cached instead. Later 

[jira] [Comment Edited] (IGNITE-5795) Binary metadata is not registered during start of cache

2020-06-17 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin edited comment on IGNITE-5795 at 6/17/20, 10:34 PM:
-

[~akalashnikov] the fix doesn't work for other platforms like .NET, C++ and all 
thin clients except Java. 

That's because other platforms don't have the Java classes and they do operate 
on their own abstraction and the following check will not work as a meta 
registration:

 
{code:java}
private void registerBinaryMetadata(CacheConfiguration ccfg, QuerySchema 
schema) throws BinaryObjectException {
...
Class keyCls = U.box(U.classForName(qryEntity.findKeyType(), null, true));
Class valCls = U.box(U.classForName(qryEntity.findValueType(), null,
It seems that in practice we do have all required information and a binaryt
{code}
The platforms may not operate Java objects directly and it seems redundant 
building a meta on a Java side one more time, keeping in mind that we actually 
do have the required binaryMeta proper to cache startup (at least for the .NET 
thick node)

 

I've created a separate ticket - 
https://issues.apache.org/jira/browse/IGNITE-13160 with an explanation of a 
problem from .NET side


was (Author: ashapkin):
[~akalashnikov] the fix doesn't work for other platforms like .NET, C++ and all 
thin clients except Java. 

That's because other platforms don't have the Java classes and they do operate 
on their own abstraction and the following check will not work as a meta 
registration:

 
{code:java}
private void registerBinaryMetadata(CacheConfiguration ccfg, QuerySchema 
schema) throws BinaryObjectException {
...
Class keyCls = U.box(U.classForName(qryEntity.findKeyType(), null, true));
Class valCls = U.box(U.classForName(qryEntity.findValueType(), null,
It seems that in practice we do have all required information and a binaryt
{code}
The platforms may not operate Java objects directly and it seems redundant 
building a meta on a Java side one more time, keeping in mind that we actually 
do have the required binaryMeta proper to cache startup (at least for the .NET 
thick node)

> Binary metadata is not registered during start of cache
> ---
>
> Key: IGNITE-5795
> URL: https://issues.apache.org/jira/browse/IGNITE-5795
> Project: Ignite
>  Issue Type: Bug
>  Components: binary, sql
>Affects Versions: 2.0
>Reporter: Dmitry Karachentsev
>Assignee: Anton Kalashnikov
>Priority: Major
>  Labels: usability
> Fix For: 2.8
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> When cache configured with QueryEntity and used key type with 
> @AffinityKeyMapped field, it will be ignored and wrong partition calculated. 
> This happens because QueryEntity processing precedes key type registering in 
> binary meta cache. On that step 
> CacheObjectBinaryProcessorImpl#affinityKeyField called and unable to resolve 
> type, so null returned and null putted in affKeyFields.
> On next put/get operation CacheObjectBinaryProcessorImpl#affinityKeyField 
> will return null from affKeyFields, but should be affinity key field.
> Test that reproduces problem in [PR 
> 2330|https://github.com/apache/ignite/pull/2330]
> To wrorkaround the issue, set IgniteConfiguration#setKeyConfiguration(), it 
> will force registering key.
> *Root cause of this behaviour* is that in during cache registration 
> registration of metadata doesn't happen. It lead to exchange messages like 
> (MappingProposedMessage, MetadataRequestMessage etc.) which are often 
> redundant and also lead to behaviour described above(unhandled 
> AffinityKeyMapped).
> Main idea to fix this problem it is registration of metadata locally in 
> during cache start  on each node without messages exchange.



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


[jira] [Commented] (IGNITE-5795) Binary metadata is not registered during start of cache

2020-06-17 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-5795:
--

[~akalashnikov] the fix doesn't work for other platforms like .NET, C++ and all 
thin clients except Java. 

That's because other platforms don't have the Java classes and they do operate 
on their own abstraction and the following check will not work as a meta 
registration:

 
{code:java}
private void registerBinaryMetadata(CacheConfiguration ccfg, QuerySchema 
schema) throws BinaryObjectException {
...
Class keyCls = U.box(U.classForName(qryEntity.findKeyType(), null, true));
Class valCls = U.box(U.classForName(qryEntity.findValueType(), null,
It seems that in practice we do have all required information and a binaryt
{code}
The platforms may not operate Java objects directly and it seems redundant 
building a meta on a Java side one more time, keeping in mind that we actually 
do have the required binaryMeta proper to cache startup (at least for the .NET 
thick node)

> Binary metadata is not registered during start of cache
> ---
>
> Key: IGNITE-5795
> URL: https://issues.apache.org/jira/browse/IGNITE-5795
> Project: Ignite
>  Issue Type: Bug
>  Components: binary, sql
>Affects Versions: 2.0
>Reporter: Dmitry Karachentsev
>Assignee: Anton Kalashnikov
>Priority: Major
>  Labels: usability
> Fix For: 2.8
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> When cache configured with QueryEntity and used key type with 
> @AffinityKeyMapped field, it will be ignored and wrong partition calculated. 
> This happens because QueryEntity processing precedes key type registering in 
> binary meta cache. On that step 
> CacheObjectBinaryProcessorImpl#affinityKeyField called and unable to resolve 
> type, so null returned and null putted in affKeyFields.
> On next put/get operation CacheObjectBinaryProcessorImpl#affinityKeyField 
> will return null from affKeyFields, but should be affinity key field.
> Test that reproduces problem in [PR 
> 2330|https://github.com/apache/ignite/pull/2330]
> To wrorkaround the issue, set IgniteConfiguration#setKeyConfiguration(), it 
> will force registering key.
> *Root cause of this behaviour* is that in during cache registration 
> registration of metadata doesn't happen. It lead to exchange messages like 
> (MappingProposedMessage, MetadataRequestMessage etc.) which are often 
> redundant and also lead to behaviour described above(unhandled 
> AffinityKeyMapped).
> Main idea to fix this problem it is registration of metadata locally in 
> during cache start  on each node without messages exchange.



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


[jira] [Created] (IGNITE-13160) .NET: wrong affinity key registration with AffinityKeyMapped attribute

2020-06-17 Thread Alexandr Shapkin (Jira)
Alexandr Shapkin created IGNITE-13160:
-

 Summary: .NET: wrong affinity key registration with 
AffinityKeyMapped attribute
 Key: IGNITE-13160
 URL: https://issues.apache.org/jira/browse/IGNITE-13160
 Project: Ignite
  Issue Type: Bug
Affects Versions: 2.8.1
Reporter: Alexandr Shapkin


When QueryEntities is set alongside a custom key that utilizes the 
AffinityKeyMapped attribute, the field won't be taken into account for some 
reason. When QueryEntities configuration gets removed, all works fine, setting 
KeyConfiguration manually helps as well. At the same time, the BinaryType 
registration itself looks fine.

After the investigation, it turned out that affinityKey field is not being 
registered on cache registration, and null is being cached instead. Later on 
Ignite correctly tries to register a custom class as a key, but it's never 
being updated internally case the real value is already cached.

 

Reproducer (add to the AffinityTest.cs):
{code:java}
/// 
/// Tests AffinityKeyMapped attribute should map to the same partitions
/// for the same field value.
/// 
[Test]
public void TestCustomAffinity()
{
IIgnite g = Ignition.GetIgnite("grid-0");

var cacheCfg = new CacheConfiguration("mycache")
{
// Without QueryEntities tests passes.
QueryEntities = new List()
{
new QueryEntity(typeof(MyKey), typeof(int))
}
};
g.GetOrCreateCache(cacheCfg);

var key1 = new MyKey {Data = "data1", AffinityKey = 1};
var key2 = new MyKey {Data = "data2", AffinityKey = 1};

ICacheAffinity aff = g.GetAffinity(cacheCfg.Name);
Assert.AreEqual(aff.GetPartition(key1), aff.GetPartition(key2));
}

public class MyKey
{
[QuerySqlField]
public string Data { get; set; }
[AffinityKeyMapped]
public long AffinityKey { get; set; }
}
{code}



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


[jira] [Updated] (IGNITE-13160) .NET: wrong affinity key registration with AffinityKeyMapped attribute

2020-06-17 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-13160:
--
Component/s: platforms

> .NET: wrong affinity key registration with AffinityKeyMapped attribute
> --
>
> Key: IGNITE-13160
> URL: https://issues.apache.org/jira/browse/IGNITE-13160
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Affects Versions: 2.8.1
>Reporter: Alexandr Shapkin
>Priority: Major
>
> When QueryEntities is set alongside a custom key that utilizes the 
> AffinityKeyMapped attribute, the field won't be taken into account for some 
> reason. When QueryEntities configuration gets removed, all works fine, 
> setting KeyConfiguration manually helps as well. At the same time, the 
> BinaryType registration itself looks fine.
> After the investigation, it turned out that affinityKey field is not being 
> registered on cache registration, and null is being cached instead. Later on 
> Ignite correctly tries to register a custom class as a key, but it's never 
> being updated internally case the real value is already cached.
>  
> Reproducer (add to the AffinityTest.cs):
> {code:java}
> /// 
> /// Tests AffinityKeyMapped attribute should map to the same 
> partitions
> /// for the same field value.
> /// 
> [Test]
> public void TestCustomAffinity()
> {
> IIgnite g = Ignition.GetIgnite("grid-0");
> var cacheCfg = new CacheConfiguration("mycache")
> {
> // Without QueryEntities tests passes.
> QueryEntities = new List()
> {
> new QueryEntity(typeof(MyKey), typeof(int))
> }
> };
> g.GetOrCreateCache(cacheCfg);
> var key1 = new MyKey {Data = "data1", AffinityKey = 1};
> var key2 = new MyKey {Data = "data2", AffinityKey = 1};
> ICacheAffinity aff = g.GetAffinity(cacheCfg.Name);
> Assert.AreEqual(aff.GetPartition(key1), aff.GetPartition(key2));
> }
> public class MyKey
> {
> [QuerySqlField]
> public string Data { get; set; }
> [AffinityKeyMapped]
> public long AffinityKey { get; set; }
> }
> {code}



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


[jira] [Comment Edited] (IGNITE-13095) .NET: Thin Client Compute does not cancel task on server when cancelled on client

2020-06-03 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin edited comment on IGNITE-13095 at 6/3/20, 9:55 AM:


[~ptupitsyn] LGTM, please check the failed test - 
TestExecuteJavaTaskAsyncCancellation 

 


was (Author: ashapkin):
[~ptupitsyn] LGTM

 

> .NET: Thin Client Compute does not cancel task on server when cancelled on 
> client
> -
>
> Key: IGNITE-13095
> URL: https://issues.apache.org/jira/browse/IGNITE-13095
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms, thin client
>Affects Versions: 2.9
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET
> Fix For: 2.9
>
>   Original Estimate: 3h
>  Time Spent: 10m
>  Remaining Estimate: 2h 50m
>
> Client should call OP_RESOURCE_CLOSE to cancel the task on server side.
> Test this by reading server logs, "Job was cancelled" should be there.



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


[jira] [Commented] (IGNITE-13095) .NET: Thin Client Compute does not cancel task on server when cancelled on client

2020-06-03 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-13095:
---

[~ptupitsyn] LGTM

 

> .NET: Thin Client Compute does not cancel task on server when cancelled on 
> client
> -
>
> Key: IGNITE-13095
> URL: https://issues.apache.org/jira/browse/IGNITE-13095
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms, thin client
>Affects Versions: 2.9
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET
> Fix For: 2.9
>
>   Original Estimate: 3h
>  Time Spent: 10m
>  Remaining Estimate: 2h 50m
>
> Client should call OP_RESOURCE_CLOSE to cancel the task on server side.
> Test this by reading server logs, "Job was cancelled" should be there.



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


[jira] [Commented] (IGNITE-12932) Thin client cluster discovery

2020-05-08 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-12932:
---

[~ptupitsyn] Looks good to me.

> Thin client cluster discovery
> -
>
> Key: IGNITE-12932
> URL: https://issues.apache.org/jira/browse/IGNITE-12932
> Project: Ignite
>  Issue Type: New Feature
>  Components: thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
> Fix For: 2.9
>
>   Original Estimate: 336h
>  Time Spent: 20m
>  Remaining Estimate: 3h 50m
>
> Thin clients should be able to discover all server nodes automatically when 
> connected to any of them, and maintain an up to date list of servers at all 
> times.
> See 
> [IEP-44|https://cwiki.apache.org/confluence/display/IGNITE/IEP-44%3A+Thin+client+cluster+discovery]
>  for more details.



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


[jira] [Commented] (IGNITE-12676) .NET: Add partition-based AffinityCall and AffinityRun overloads

2020-04-21 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-12676:
---

[~ptupitsyn] Looks good to me, thanks!

> .NET: Add partition-based AffinityCall and AffinityRun overloads
> 
>
> Key: IGNITE-12676
> URL: https://issues.apache.org/jira/browse/IGNITE-12676
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Add partition-based AffinityCall and AffinityRun overloads to ICompute.See 
> corresponding methods in Java (IgniteCompute).
> Additionally, current affinity methods work through PlatformAbstractTask, 
> which does not lock partitions. We should refactor existing AffinityCall and 
> AffinityRun overloads to call corresponding IgniteCompute APIs.



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


[jira] [Updated] (IGNITE-12090) .NET logging exception when creating cache from code if value has 'sbyte?' field

2020-03-02 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-12090:
--
Description: 
 

Logger throws KeyNotFound exception if NetToJava[type] doesn't have a _type_ 
key.

Looks like we need to replace it with NetToJava[directType].
{code:java}
public static void LogIndirectMappingWarning(Type type, ILogger log, string 
logInfo)
 {
 if (type == null)
 return;
var directType = GetDirectlyMappedType(type);
if (directType == type)
 return;
log.Warn("{0}: Type '{1}' maps to Java type '{2}' using unchecked conversion. " 
+
 "This may cause issues in SQL queries. " +
 "You can use '{3}' instead to achieve direct mapping.",
 logInfo, type, NetToJava[type], directType);
 }
{code}
 

Steps to reproduce:

Define a QueryEntity with a sbyte? nullable field, try to create a cache. The 
reproducer is attached.

 

  was:
Ignite.NET.

Using 'sbyte?' field for value causes KeyNotFound exception during cache 
creation (field's type validation), when Ignite attempts to print type's name 
into log.
 # {{I don't really understand why .Net's sbyte is considered not directly 
mappable to java.byte 
([https://github.com/apache/ignite/blob/56975c266e7019f307bb9da42333a6db4e47365e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/JavaTypes.cs#L54)]
 ? }}{{Also it is not consistent with other indirect mapping (usigned -> 
signed)}}
 # {{Access to NetToJava dictionary 
([https://github.com/apache/ignite/blob/56975c266e7019f307bb9da42333a6db4e47365e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/JavaTypes.cs#L109])
 should be safeguarded (NetToJava doesn't have entries for nullable types)}}
  

{{Code example in attachment}}


> .NET logging exception when creating cache from code if value has 'sbyte?' 
> field
> 
>
> Key: IGNITE-12090
> URL: https://issues.apache.org/jira/browse/IGNITE-12090
> Project: Ignite
>  Issue Type: Bug
>  Components: binary, platforms
>Affects Versions: 2.7.5
>Reporter: Denis Zakharov
>Assignee: Alexandr Shapkin
>Priority: Critical
>  Labels: .NET
> Attachments: a.cs
>
>
>  
> Logger throws KeyNotFound exception if NetToJava[type] doesn't have a _type_ 
> key.
> Looks like we need to replace it with NetToJava[directType].
> {code:java}
> public static void LogIndirectMappingWarning(Type type, ILogger log, string 
> logInfo)
>  {
>  if (type == null)
>  return;
> var directType = GetDirectlyMappedType(type);
> if (directType == type)
>  return;
> log.Warn("{0}: Type '{1}' maps to Java type '{2}' using unchecked conversion. 
> " +
>  "This may cause issues in SQL queries. " +
>  "You can use '{3}' instead to achieve direct mapping.",
>  logInfo, type, NetToJava[type], directType);
>  }
> {code}
>  
> Steps to reproduce:
> Define a QueryEntity with a sbyte? nullable field, try to create a cache. The 
> reproducer is attached.
>  



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


[jira] [Updated] (IGNITE-12090) .NET logging exception when creating cache with nullable 'sbyte?' field

2020-03-02 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-12090:
--
Summary: .NET logging exception when creating cache with nullable 'sbyte?' 
field  (was: .NET logging exception when creating cache from code if value has 
'sbyte?' field)

> .NET logging exception when creating cache with nullable 'sbyte?' field
> ---
>
> Key: IGNITE-12090
> URL: https://issues.apache.org/jira/browse/IGNITE-12090
> Project: Ignite
>  Issue Type: Bug
>  Components: binary, platforms
>Affects Versions: 2.7.5
>Reporter: Denis Zakharov
>Assignee: Alexandr Shapkin
>Priority: Critical
>  Labels: .NET
> Attachments: a.cs
>
>
>  
> Logger throws KeyNotFound exception if NetToJava[type] doesn't have a _type_ 
> key.
> Looks like we need to replace it with NetToJava[directType].
> {code:java}
> public static void LogIndirectMappingWarning(Type type, ILogger log, string 
> logInfo)
>  {
>  if (type == null)
>  return;
> var directType = GetDirectlyMappedType(type);
> if (directType == type)
>  return;
> log.Warn("{0}: Type '{1}' maps to Java type '{2}' using unchecked conversion. 
> " +
>  "This may cause issues in SQL queries. " +
>  "You can use '{3}' instead to achieve direct mapping.",
>  logInfo, type, NetToJava[type], directType);
>  }
> {code}
>  
> Steps to reproduce:
> Define a QueryEntity with a sbyte? nullable field, try to create a cache. The 
> reproducer is attached.
>  



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


[jira] [Assigned] (IGNITE-12090) .NET logging exception when creating cache from code if value has 'sbyte?' field

2020-03-02 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin reassigned IGNITE-12090:
-

Assignee: Alexandr Shapkin

> .NET logging exception when creating cache from code if value has 'sbyte?' 
> field
> 
>
> Key: IGNITE-12090
> URL: https://issues.apache.org/jira/browse/IGNITE-12090
> Project: Ignite
>  Issue Type: Bug
>  Components: binary, platforms
>Affects Versions: 2.7.5
>Reporter: Denis Zakharov
>Assignee: Alexandr Shapkin
>Priority: Critical
>  Labels: .NET
> Attachments: a.cs
>
>
> Ignite.NET.
> Using 'sbyte?' field for value causes KeyNotFound exception during cache 
> creation (field's type validation), when Ignite attempts to print type's name 
> into log.
>  # {{I don't really understand why .Net's sbyte is considered not directly 
> mappable to java.byte 
> ([https://github.com/apache/ignite/blob/56975c266e7019f307bb9da42333a6db4e47365e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/JavaTypes.cs#L54)]
>  ? }}{{Also it is not consistent with other indirect mapping (usigned -> 
> signed)}}
>  # {{Access to NetToJava dictionary 
> ([https://github.com/apache/ignite/blob/56975c266e7019f307bb9da42333a6db4e47365e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/JavaTypes.cs#L109])
>  should be safeguarded (NetToJava doesn't have entries for nullable types)}}
>   
> {{Code example in attachment}}



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


[jira] [Updated] (IGNITE-12090) .NET logging exception when creating cache from code if value has 'sbyte?' field

2020-03-02 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-12090:
--
Priority: Critical  (was: Major)

> .NET logging exception when creating cache from code if value has 'sbyte?' 
> field
> 
>
> Key: IGNITE-12090
> URL: https://issues.apache.org/jira/browse/IGNITE-12090
> Project: Ignite
>  Issue Type: Bug
>  Components: binary, platforms
>Affects Versions: 2.7.5
>Reporter: Denis Zakharov
>Priority: Critical
>  Labels: .NET
> Attachments: a.cs
>
>
> Ignite.NET.
> Using 'sbyte?' field for value causes KeyNotFound exception during cache 
> creation (field's type validation), when Ignite attempts to print type's name 
> into log.
>  # {{I don't really understand why .Net's sbyte is considered not directly 
> mappable to java.byte 
> ([https://github.com/apache/ignite/blob/56975c266e7019f307bb9da42333a6db4e47365e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/JavaTypes.cs#L54)]
>  ? }}{{Also it is not consistent with other indirect mapping (usigned -> 
> signed)}}
>  # {{Access to NetToJava dictionary 
> ([https://github.com/apache/ignite/blob/56975c266e7019f307bb9da42333a6db4e47365e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/JavaTypes.cs#L109])
>  should be safeguarded (NetToJava doesn't have entries for nullable types)}}
>   
> {{Code example in attachment}}



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


[jira] [Updated] (IGNITE-12090) .NET logging exception when creating cache from code if value has 'sbyte?' field

2020-03-02 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-12090:
--
Summary: .NET logging exception when creating cache from code if value has 
'sbyte?' field  (was: KeyNotFound exception when creating cache from code if 
value has 'sbyte?' field)

> .NET logging exception when creating cache from code if value has 'sbyte?' 
> field
> 
>
> Key: IGNITE-12090
> URL: https://issues.apache.org/jira/browse/IGNITE-12090
> Project: Ignite
>  Issue Type: Bug
>  Components: binary, platforms
>Affects Versions: 2.7.5
>Reporter: Denis Zakharov
>Priority: Major
>  Labels: .NET
> Attachments: a.cs
>
>
> Ignite.NET.
> Using 'sbyte?' field for value causes KeyNotFound exception during cache 
> creation (field's type validation), when Ignite attempts to print type's name 
> into log.
>  # {{I don't really understand why .Net's sbyte is considered not directly 
> mappable to java.byte 
> ([https://github.com/apache/ignite/blob/56975c266e7019f307bb9da42333a6db4e47365e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/JavaTypes.cs#L54)]
>  ? }}{{Also it is not consistent with other indirect mapping (usigned -> 
> signed)}}
>  # {{Access to NetToJava dictionary 
> ([https://github.com/apache/ignite/blob/56975c266e7019f307bb9da42333a6db4e47365e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/JavaTypes.cs#L109])
>  should be safeguarded (NetToJava doesn't have entries for nullable types)}}
>   
> {{Code example in attachment}}



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


[jira] [Commented] (IGNITE-12471) .NET Thin Client: WithExpiryPolicy crashes client connection on old servers

2019-12-30 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-12471:
---

[~ptupitsyn] Looks good to me, please, check a couple of comments in PR

> .NET Thin Client: WithExpiryPolicy crashes client connection on old servers
> ---
>
> Key: IGNITE-12471
> URL: https://issues.apache.org/jira/browse/IGNITE-12471
> Project: Ignite
>  Issue Type: Task
>  Components: platforms
>Affects Versions: 2.8
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET
> Fix For: 2.8
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> ICacheClient.WithExpiryPolicy does not check protocol version and causes 
> exception and disconnect:
> * Run Ignite 2.7.6 server node
> * Connect thin client from master branch
> * {{cache.WithExpiryPolicy(..).Put(1, 2)}}:
> {code}
> Unhandled exception. System.Net.Sockets.SocketException (10053): An 
> established connection was aborted by the software in your host machine.
>at Apache.Ignite.Core.Impl.Client.ClientSocket.ReceiveBytes(Int32 size)
>at Apache.Ignite.Core.Impl.Client.ClientSocket.ReceiveMessage()
>at Apache.Ignite.Core.Impl.Client.ClientSocket.SendRequest(RequestMessage& 
> reqMsg)
>at Apache.Ignite.Core.Impl.Client.ClientSocket.DoOutInOp[T](ClientOp opId, 
> Action`1 writeAction, Func`2 readFunc, Func`3 errorFunc)
>at 
> Apache.Ignite.Core.Impl.Client.ClientFailoverSocket.DoOutInOpAffinity[T,TKey](ClientOp
>  opId, Action`1 writeAction, Func`2 readFunc, Int32 cacheId, TKey key, Func`3 
> errorFunc)
>at 
> Apache.Ignite.Core.Impl.Client.Cache.CacheClient`2.DoOutInOpAffinity[T](ClientOp
>  opId, TK key, TV val, Func`2 readFunc)
>at 
> Apache.Ignite.Core.Impl.Client.Cache.CacheClient`2.DoOutOpAffinity(ClientOp 
> opId, TK key, TV val)
>at Apache.Ignite.Core.Impl.Client.Cache.CacheClient`2.Put(TK key, TV val)
> {code}



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


[jira] [Commented] (IGNITE-12385) .NET Thin Client: introduce ClusterGroup API

2019-12-26 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-12385:
---

[~ptupitsyn] please, check

> .NET Thin Client: introduce ClusterGroup API
> 
>
> Key: IGNITE-12385
> URL: https://issues.apache.org/jira/browse/IGNITE-12385
> Project: Ignite
>  Issue Type: New Feature
>  Components: thin client
>Affects Versions: 2.7.6
>Reporter: Alexandr Shapkin
>Assignee: Alexandr Shapkin
>Priority: Major
> Fix For: 2.9
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> We need to implement IClusterGroup API for thin clients.
> Let's start with following methods:
>  * IClusterGroup.ForDotNet()
>  * IClusterGroup.ForAttributes()
>  * IClusterGroup.GetNodes()



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


[jira] [Commented] (IGNITE-12387) .NET Thin Client: Handle unsupported features on older server nodes gracefully

2019-12-18 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-12387:
---

[~ptupitsyn] looks good to me, thanks!

> .NET Thin Client: Handle unsupported features on older server nodes gracefully
> --
>
> Key: IGNITE-12387
> URL: https://issues.apache.org/jira/browse/IGNITE-12387
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Critical
>  Labels: .NET
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Right now we don't check server version before doing requests for newer 
> features like Affinity Awareness and Cluster API. This causes exceptions like 
> "Invalid re
> quest op code: 5000", which are cryptic for the user.
> Fix this:
> * Affinity Awareness: disable it automatically if there is no server support; 
> log a warning to the log (add logging by adding 
> IgniteClientConfiguration.Logger property)
> * Individual methods and features like Cluster API - throw an exception with 
> user-friendly explanation



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


[jira] [Commented] (IGNITE-12381) QueryParser: propagate H2 ErrorCode to IgniteSQLException

2019-12-13 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-12381:
---

Hello [~oleg_bonar],

I just realized, that there is a big incoming feature about replacing H2 with 
Calcite.

[https://cwiki.apache.org/confluence/display/IGNITE/IEP-37%3A+New+query+execution+engine]

I think it's worth to start a separate topic at dev list 
(d...@ignite.apache.org) and discuss the details.

> QueryParser: propagate H2 ErrorCode to IgniteSQLException
> -
>
> Key: IGNITE-12381
> URL: https://issues.apache.org/jira/browse/IGNITE-12381
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Affects Versions: 2.7.6
>Reporter: Alexandr Shapkin
>Priority: Major
>  Labels: newbie
>
> QueryParser#parseH2 method generalizes all h2 error codes as 
> IgniteQueryErrorCode.PARSING
> Whereas the actual error code could be more specific, like 
> [TABLE_OR_VIEW_NOT_FOUND_1|https://www.h2database.com/javadoc/org/h2/api/ErrorCode.html#c42102]
>  = 42102
> Let's try to convert those codes into the appropriate IgniteQueryErrorCode 
> values as well.



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


[jira] [Created] (IGNITE-12385) .NET Thin Client: introduce ClusterGroup API

2019-11-21 Thread Alexandr Shapkin (Jira)
Alexandr Shapkin created IGNITE-12385:
-

 Summary: .NET Thin Client: introduce ClusterGroup API
 Key: IGNITE-12385
 URL: https://issues.apache.org/jira/browse/IGNITE-12385
 Project: Ignite
  Issue Type: New Feature
  Components: thin client
Affects Versions: 2.7.6
Reporter: Alexandr Shapkin
Assignee: Alexandr Shapkin
 Fix For: 2.9


We need to implement IClusterGroup API for thin clients.

Let's start with following methods:
 * IClusterGroup.ForDotNet()
 * IClusterGroup.ForAttributes()
 * IClusterGroup.GetNodes()



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


[jira] [Updated] (IGNITE-12381) QueryParser: propagate H2 ErrorCode to IgniteSQLException

2019-11-18 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-12381:
--
Labels: newbie  (was: )

> QueryParser: propagate H2 ErrorCode to IgniteSQLException
> -
>
> Key: IGNITE-12381
> URL: https://issues.apache.org/jira/browse/IGNITE-12381
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Affects Versions: 2.7.6
>Reporter: Alexandr Shapkin
>Priority: Major
>  Labels: newbie
>
> QueryParser#parseH2 method generalizes all h2 error codes as 
> IgniteQueryErrorCode.PARSING
> Whereas the actual error code could be more specific, like 
> [TABLE_OR_VIEW_NOT_FOUND_1|https://www.h2database.com/javadoc/org/h2/api/ErrorCode.html#c42102]
>  = 42102
> Let's try to convert those codes into the appropriate IgniteQueryErrorCode 
> values as well.



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


[jira] [Created] (IGNITE-12381) QueryParser: propagate H2 ErrorCode to IgniteSQLException

2019-11-18 Thread Alexandr Shapkin (Jira)
Alexandr Shapkin created IGNITE-12381:
-

 Summary: QueryParser: propagate H2 ErrorCode to IgniteSQLException
 Key: IGNITE-12381
 URL: https://issues.apache.org/jira/browse/IGNITE-12381
 Project: Ignite
  Issue Type: Improvement
  Components: sql
Affects Versions: 2.7.6
Reporter: Alexandr Shapkin


QueryParser#parseH2 method generalizes all h2 error codes as 
IgniteQueryErrorCode.PARSING

Whereas the actual error code could be more specific, like 

[TABLE_OR_VIEW_NOT_FOUND_1|https://www.h2database.com/javadoc/org/h2/api/ErrorCode.html#c42102]
 = 42102

Let's try to convert those codes into the appropriate IgniteQueryErrorCode 
values as well.



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


[jira] [Commented] (IGNITE-9033) .NET: specify expiry policy when creating cache using thin client

2019-11-08 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-9033:
--

[~ptupitsyn] 

Thanks! Could you proceed, then?

> .NET: specify expiry policy when creating cache using thin client
> -
>
> Key: IGNITE-9033
> URL: https://issues.apache.org/jira/browse/IGNITE-9033
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Reporter: Igor Sapego
>Assignee: Alexandr Shapkin
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Need to add ability to create dynamic caches specifying expiry policy with 
> thin client.



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


[jira] [Updated] (IGNITE-9033) .NET: specify expiry policy when creating cache using thin client

2019-11-08 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-9033:
-
Ignite Flags: Docs Required,Release Notes Required
Release Note: 
- Added the new thin client protocol version - 1.6.0
- Added expiry policy property to thin client cache configuration
- Added withExpiryPolicy method to the .NET client cache API

> .NET: specify expiry policy when creating cache using thin client
> -
>
> Key: IGNITE-9033
> URL: https://issues.apache.org/jira/browse/IGNITE-9033
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Reporter: Igor Sapego
>Assignee: Alexandr Shapkin
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Need to add ability to create dynamic caches specifying expiry policy with 
> thin client.



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


[jira] [Commented] (IGNITE-9033) .NET: specify expiry policy when creating cache using thin client

2019-11-08 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-9033:
--

[~ptupitsyn] PR is ready, please, have a look.

> .NET: specify expiry policy when creating cache using thin client
> -
>
> Key: IGNITE-9033
> URL: https://issues.apache.org/jira/browse/IGNITE-9033
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Reporter: Igor Sapego
>Assignee: Alexandr Shapkin
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Need to add ability to create dynamic caches specifying expiry policy with 
> thin client.



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


[jira] [Commented] (IGNITE-6982) .NET: Migrate to latest NUnit

2019-11-06 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-6982:
--

[~ptupitsyn], deal, I will check it.

> .NET: Migrate to latest NUnit
> -
>
> Key: IGNITE-6982
> URL: https://issues.apache.org/jira/browse/IGNITE-6982
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Alexandr Shapkin
>Priority: Major
>  Labels: .NET
> Fix For: 2.9
>
>
> We use very old NUnit 2.6. In order to reuse tests under .NET Core 
> (IGNITE-2662) we need latest NUnit.



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


[jira] [Updated] (IGNITE-6982) .NET: Migrate to latest NUnit

2019-11-06 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-6982:
-
Fix Version/s: (was: 2.4)
   2.9

> .NET: Migrate to latest NUnit
> -
>
> Key: IGNITE-6982
> URL: https://issues.apache.org/jira/browse/IGNITE-6982
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Alexandr Shapkin
>Priority: Major
>  Labels: .NET
> Fix For: 2.9
>
>
> We use very old NUnit 2.6. In order to reuse tests under .NET Core 
> (IGNITE-2662) we need latest NUnit.



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


[jira] [Commented] (IGNITE-6982) .NET: Migrate to latest NUnit

2019-11-06 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-6982:
--

[~ptupitsyn] I think it's time to review this issue.

Probably we could benefit from the new parallel test execution concept.

> .NET: Migrate to latest NUnit
> -
>
> Key: IGNITE-6982
> URL: https://issues.apache.org/jira/browse/IGNITE-6982
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET
> Fix For: 2.4
>
>
> We use very old NUnit 2.6. In order to reuse tests under .NET Core 
> (IGNITE-2662) we need latest NUnit.



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


[jira] [Reopened] (IGNITE-6982) .NET: Migrate to latest NUnit

2019-11-06 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin reopened IGNITE-6982:
--
Ignite Flags: Release Notes Required
Assignee: Alexandr Shapkin  (was: Pavel Tupitsyn)

> .NET: Migrate to latest NUnit
> -
>
> Key: IGNITE-6982
> URL: https://issues.apache.org/jira/browse/IGNITE-6982
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Assignee: Alexandr Shapkin
>Priority: Major
>  Labels: .NET
> Fix For: 2.4
>
>
> We use very old NUnit 2.6. In order to reuse tests under .NET Core 
> (IGNITE-2662) we need latest NUnit.



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


[jira] [Commented] (IGNITE-9033) .NET: specify expiry policy when creating cache using thin client

2019-10-30 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-9033:
--

[~mmuzaf], I returned 2.8, should be completed prior December.

> .NET: specify expiry policy when creating cache using thin client
> -
>
> Key: IGNITE-9033
> URL: https://issues.apache.org/jira/browse/IGNITE-9033
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Reporter: Igor Sapego
>Assignee: Alexandr Shapkin
>Priority: Major
> Fix For: 2.8
>
>
> Need to add ability to create dynamic caches specifying expiry policy with 
> thin client.



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


[jira] [Updated] (IGNITE-9033) .NET: specify expiry policy when creating cache using thin client

2019-10-30 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin updated IGNITE-9033:
-
Fix Version/s: (was: 2.9)
   2.8

> .NET: specify expiry policy when creating cache using thin client
> -
>
> Key: IGNITE-9033
> URL: https://issues.apache.org/jira/browse/IGNITE-9033
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Reporter: Igor Sapego
>Assignee: Alexandr Shapkin
>Priority: Major
> Fix For: 2.8
>
>
> Need to add ability to create dynamic caches specifying expiry policy with 
> thin client.



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


[jira] [Commented] (IGNITE-11761) Normalize encoding for Ignite .NET test file

2019-10-28 Thread Alexandr Shapkin (Jira)


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

Alexandr Shapkin commented on IGNITE-11761:
---

It turned out that the PR was merged with a wrong message, without IGNITE-XXX 
prefix. 

We need to exclude this ticket from consistency check

> Normalize encoding for Ignite .NET test file
> 
>
> Key: IGNITE-11761
> URL: https://issues.apache.org/jira/browse/IGNITE-11761
> Project: Ignite
>  Issue Type: Task
>Reporter: Dmitry Pavlov
>Assignee: Alexandr Shapkin
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> It is encoded in UTF-16, but all other files are UTF-8
> Idea blocks me from changing encoding because of BOM exists.
> https://stackoverflow.com/questions/32986445/remove-a-bom-character-in-a-file



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


  1   2   >