[jira] [Comment Edited] (IGNITE-1526) IBM JDK is not fully supported by the platfrom

2015-10-26 Thread Andrey Gura (JIRA)

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

Andrey Gura edited comment on IGNITE-1526 at 10/26/15 6:44 PM:
---

1) Fixed.
2) Test added. 

PR updated.

The only reason to replace {{OptimizedMarshaller}} with {{JdkMarshaller}} is 
{{BigInteger}}-like classes. But problem is solved. So I don't see any other 
reasons for it.


was (Author: agura):
1) Fixed.
2) Test added. 

PR updated.

The only reason to replace {{OptimizedMarshaller}} with {{JdkMarshaller}} is 
{{BigInteger}}-like classes. But problem is solved. So I don see any other 
reasons for it.

> IBM JDK is not fully supported by the platfrom
> --
>
> Key: IGNITE-1526
> URL: https://issues.apache.org/jira/browse/IGNITE-1526
> Project: Ignite
>  Issue Type: Bug
>Reporter: Denis Magda
>Assignee: Andrey Gura
>Priority: Blocker
> Fix For: 1.5
>
>
> There are several issue related to IBM JDK.
> 1) It's not possible to compile the platform using IBM JDK ver 1.7;
> 2) Besides of the fact that two IBM nodes can connect to each other some 
> functionality still doesn't work. As an example 
> {{CacheClientPortablePutGetExample}} fails with the following stack trace
> {noformat}
> [14:38:56,930][ERROR][grid-nio-worker-0-#26%null%][TcpCommunicationSpi] 
> Caught unhandled exception in NIO worker thread (restart the node).
> class org.apache.ignite.IgniteException: Invalid field type: 0
>   at 
> org.gridgain.grid.internal.communication.PortableDirectMessageReader.readRemovedField(PortableDirectMessageReader.java:670)
>   at 
> org.gridgain.grid.internal.communication.PortableDirectMessageReader.readFieldHeader(PortableDirectMessageReader.java:520)
>   at 
> org.gridgain.grid.internal.communication.PortableDirectMessageReader.readMessage(PortableDirectMessageReader.java:339)
>   at 
> org.apache.ignite.internal.managers.communication.GridIoMessage.readFrom(GridIoMessage.java:248)
>   at 
> org.apache.ignite.internal.util.nio.GridDirectParser.decode(GridDirectParser.java:76)
>   at 
> org.apache.ignite.internal.util.nio.GridNioCodecFilter.onMessageReceived(GridNioCodecFilter.java:103)
>   at 
> org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:107)
>   at 
> org.apache.ignite.internal.util.nio.GridConnectionBytesVerifyFilter.onMessageReceived(GridConnectionBytesVerifyFilter.java:122)
>   at 
> org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:107)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$HeadFilter.onMessageReceived(GridNioServer.java:2078)
>   at 
> org.apache.ignite.internal.util.nio.GridNioFilterChain.onMessageReceived(GridNioFilterChain.java:172)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$DirectNioClientWorker.processRead(GridNioServer.java:858)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeys(GridNioServer.java:1397)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:1339)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1223)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:108)
>   at java.lang.Thread.run(Thread.java:801)
> {noformat}
> 3) Oracle JVM based server node fails to connect to IBM server node producing 
> the stack trace below. Tested with JDK and Portable marshallers.
> {noformat}
> [13:47:33,935][SEVERE][tcp-disco-msg-worker-#2%null][TcpDiscoverySpi] Failed 
> to
> unmarshal discovery data for component: 0
> class org.apache.ignite.IgniteCheckedException: Failed to deserialize object 
> wit
> h given class loader: sun.misc.Launcher$AppClassLoader@56092666
> at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshalle
> r.java:105)
> at 
> org.apache.ignite.marshaller.AbstractMarshaller.unmarshal(AbstractMar
> shaller.java:68)
> at 
> org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.onExchange(TcpDis
> coverySpi.java:1697)
> at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.proc
> essNodeAddedMessage(ServerImpl.java:3258)
> at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.proc
> essMessage(ServerImpl.java:1993)
> at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerAdapter.b
> ody(ServerImpl.java:5206)
> at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)
> Caused by: java.io.InvalidClassException: 
> org.apache.ignite.internal.util.lang.G
> ridFunc$38; local class 

[jira] [Comment Edited] (IGNITE-1526) IBM JDK is not fully supported by the platfrom

2015-10-23 Thread Andrey Gura (JIRA)

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

Andrey Gura edited comment on IGNITE-1526 at 10/23/15 4:46 PM:
---

1) Agree. I'll revert this changes.

2) Yes, it is compatibility issue. 

Some additional changes should be done also:

1) When node join to topology we should comapre value of {{USE_DFLT_SUID}} on 
new node and other nodes of topology. If existing nodes have value of this flag 
that differs from new node then exception should be thrown and new node should 
no join to the cluster. If some nodes has no this attribute then we should 
treat it as {{true}}.

2) {{USE_DFLT_SUID}} flag in {{OptimizedMarshaller}} should be used only if 
class doesn't have {{serialVersionUID}}. If class has {{serialVersionUID}} 
field then we can safely use it. This solution fixes problems with 
{{BigInteger}}-like classes that have different implementation but are 
consistent with the serialization viewpoint.




was (Author: agura):
1) Agree. I'll revert this changes.

2) Yes, it is compatibility issue. 

Some additional changes should be done also:

1) When node join to topology we should comapre value of {{USE_DFLT_SUID}} on 
new node and other nodes of topology. If existing nodes have value of this flag 
that differs from new node then exception should be thrown and new node should 
no join to the cluster. If some nodes has no this attribute then we should 
treat it as {{false}}.

2) {{USE_DFLT_SUID}} flag in {{OptimizedMarshaller}} should be used only if 
class doesn't have {{serialVersionUID}}. If class has {{serialVersionUID}} 
field then we can safely use it. This solution fixes problems with 
{{BigInteger}}-like classes that have different implementation but are 
consistent with the serialization viewpoint.



> IBM JDK is not fully supported by the platfrom
> --
>
> Key: IGNITE-1526
> URL: https://issues.apache.org/jira/browse/IGNITE-1526
> Project: Ignite
>  Issue Type: Bug
>Reporter: Denis Magda
>Assignee: Denis Magda
>Priority: Blocker
> Fix For: 1.5
>
>
> There are several issue related to IBM JDK.
> 1) It's not possible to compile the platform using IBM JDK ver 1.7;
> 2) Besides of the fact that two IBM nodes can connect to each other some 
> functionality still doesn't work. As an example 
> {{CacheClientPortablePutGetExample}} fails with the following stack trace
> {noformat}
> [14:38:56,930][ERROR][grid-nio-worker-0-#26%null%][TcpCommunicationSpi] 
> Caught unhandled exception in NIO worker thread (restart the node).
> class org.apache.ignite.IgniteException: Invalid field type: 0
>   at 
> org.gridgain.grid.internal.communication.PortableDirectMessageReader.readRemovedField(PortableDirectMessageReader.java:670)
>   at 
> org.gridgain.grid.internal.communication.PortableDirectMessageReader.readFieldHeader(PortableDirectMessageReader.java:520)
>   at 
> org.gridgain.grid.internal.communication.PortableDirectMessageReader.readMessage(PortableDirectMessageReader.java:339)
>   at 
> org.apache.ignite.internal.managers.communication.GridIoMessage.readFrom(GridIoMessage.java:248)
>   at 
> org.apache.ignite.internal.util.nio.GridDirectParser.decode(GridDirectParser.java:76)
>   at 
> org.apache.ignite.internal.util.nio.GridNioCodecFilter.onMessageReceived(GridNioCodecFilter.java:103)
>   at 
> org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:107)
>   at 
> org.apache.ignite.internal.util.nio.GridConnectionBytesVerifyFilter.onMessageReceived(GridConnectionBytesVerifyFilter.java:122)
>   at 
> org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:107)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$HeadFilter.onMessageReceived(GridNioServer.java:2078)
>   at 
> org.apache.ignite.internal.util.nio.GridNioFilterChain.onMessageReceived(GridNioFilterChain.java:172)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$DirectNioClientWorker.processRead(GridNioServer.java:858)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeys(GridNioServer.java:1397)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:1339)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1223)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:108)
>   at java.lang.Thread.run(Thread.java:801)
> {noformat}
> 3) Oracle JVM based server node fails to connect to IBM server node producing 
> the stack trace below. Tested with JDK and Portable 

[jira] [Comment Edited] (IGNITE-1526) IBM JDK is not fully supported by the platfrom

2015-10-13 Thread Vasilisa Sidorova (JIRA)

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

Vasilisa  Sidorova edited comment on IGNITE-1526 at 10/13/15 12:54 PM:
---

GG-ent-7.5.0 build #319 
(http://94.72.60.102/viewLog.html?buildId=550802=artifacts=IgniteBuildsAndUploads_UploadIgniteGridGainToGridgainRepositoryMvnSiteOnDemand),
 oracle-java-7 vs ibm-java-7: many of Store (CacheAutoStoreExample, 
CacheHibernateStoreExample, CacheJdbcStoreExample, CacheSpringStoreExample) 
examples are failed with exception like this:
{noformat}
[15:00:35,909][ERROR][tcp-disco-msg-worker-#2%null][TcpDiscoverySpi] Failed to 
unmarshal discovery custom message.
class org.apache.ignite.IgniteCheckedException: Failed to deserialize object 
with given class loader: sun.misc.Launcher$AppClassLoader@490c782
at 
org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshaller.java:105)
at 
org.apache.ignite.marshaller.AbstractMarshaller.unmarshal(AbstractMarshaller.java:68)
at 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryCustomEventMessage.message(TcpDiscoveryCustomEventMessage.java:78)
at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.notifyDiscoveryListener(ServerImpl.java:4340)
at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processCustomMessage(ServerImpl.java:4244)
at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2125)
at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerAdapter.body(ServerImpl.java:5382)
at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)
Caused by: java.io.InvalidClassException: 
org.apache.ignite.examples.datagrid.store.auto.CacheConfig$1; local class 
incompatible: stream classdesc serialVersionUID = -6521855079114363289, local 
class serialVersionUID = 4822828737090860668
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
at 
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1706)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1601)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1874)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1433)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2100)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2024)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1901)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1433)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2100)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2024)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1901)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1433)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:429)
at java.util.ArrayList.readObject(ArrayList.java:783)
at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
at java.lang.reflect.Method.invoke(Method.java:620)
at 
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1099)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2000)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1901)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1433)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2100)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2024)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1901)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1433)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2100)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2024)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1901)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1433)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:429)
at 
org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshaller.java:102)
... 7 more
[15:00:35,951][ERROR][tcp-disco-msg-worker-#2%null][TcpDiscoverySpi] Failed to 
unmarshal discovery custom message.
class org.apache.ignite.IgniteCheckedException: Failed to deserialize object 
with given class loader: sun.misc.Launcher$AppClassLoader@490c782
at 

[jira] [Comment Edited] (IGNITE-1526) IBM JDK is not fully supported by the platfrom

2015-10-13 Thread Vasilisa Sidorova (JIRA)

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

Vasilisa  Sidorova edited comment on IGNITE-1526 at 10/13/15 2:24 PM:
--

Community 1.5.0 build #319, oracle-java-7 vs ibm-java-7: many of Store 
(CacheAutoStoreExample, CacheHibernateStoreExample, CacheJdbcStoreExample, 
CacheSpringStoreExample) examples are failed with exception like this:
{noformat}
[15:00:35,909][ERROR][tcp-disco-msg-worker-#2%null][TcpDiscoverySpi] Failed to 
unmarshal discovery custom message.
class org.apache.ignite.IgniteCheckedException: Failed to deserialize object 
with given class loader: sun.misc.Launcher$AppClassLoader@490c782
at 
org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshaller.java:105)
at 
org.apache.ignite.marshaller.AbstractMarshaller.unmarshal(AbstractMarshaller.java:68)
at 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryCustomEventMessage.message(TcpDiscoveryCustomEventMessage.java:78)
at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.notifyDiscoveryListener(ServerImpl.java:4340)
at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processCustomMessage(ServerImpl.java:4244)
at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2125)
at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerAdapter.body(ServerImpl.java:5382)
at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)
Caused by: java.io.InvalidClassException: 
org.apache.ignite.examples.datagrid.store.auto.CacheConfig$1; local class 
incompatible: stream classdesc serialVersionUID = -6521855079114363289, local 
class serialVersionUID = 4822828737090860668
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
at 
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1706)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1601)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1874)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1433)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2100)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2024)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1901)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1433)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2100)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2024)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1901)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1433)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:429)
at java.util.ArrayList.readObject(ArrayList.java:783)
at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
at java.lang.reflect.Method.invoke(Method.java:620)
at 
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1099)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2000)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1901)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1433)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2100)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2024)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1901)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1433)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2100)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2024)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1901)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1433)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:429)
at 
org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshaller.java:102)
... 7 more
[15:00:35,951][ERROR][tcp-disco-msg-worker-#2%null][TcpDiscoverySpi] Failed to 
unmarshal discovery custom message.
class org.apache.ignite.IgniteCheckedException: Failed to deserialize object 
with given class loader: sun.misc.Launcher$AppClassLoader@490c782
at 
org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshaller.java:105)
at 
org.apache.ignite.marshaller.AbstractMarshaller.unmarshal(AbstractMarshaller.java:68)
at 

[jira] [Comment Edited] (IGNITE-1526) IBM JDK is not fully supported by the platfrom

2015-10-13 Thread Vasilisa Sidorova (JIRA)

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

Vasilisa  Sidorova edited comment on IGNITE-1526 at 10/13/15 2:25 PM:
--

Community 1.5.0 build #319, oracle-java-7 vs ibm-java-7: ComputeFailoverExample 
fails with exception:
{noformat}
Exception in thread "main" class 
org.apache.ignite.cluster.ClusterTopologyException: Failed to failover a job to 
another node (failover SPI returned null) [job=C1 [arg=Stage1 Stage2], 
node=TcpDiscoveryNode [id=745add11-cf54-4976-b9a8-f46d76d8e577, 
addrs=[127.0.0.1], sockAddrs=[/127.0.0.1:47500], discPort=47500, order=1, 
intOrder=1, lastExchangeTime=1444740915117, loc=false, 
ver=1.5.0#20151012-sha1:6844370d, isClient=false]]
at 
org.apache.ignite.internal.util.IgniteUtils$6.apply(IgniteUtils.java:747)
at 
org.apache.ignite.internal.util.IgniteUtils$6.apply(IgniteUtils.java:745)
at 
org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:876)
at 
org.apache.ignite.internal.IgniteComputeImpl.apply(IgniteComputeImpl.java:338)
at 
org.apache.ignite.examples.computegrid.failover.ComputeFailoverExample.main(ComputeFailoverExample.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
at java.lang.reflect.Method.invoke(Method.java:620)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Caused by: class 
org.apache.ignite.internal.cluster.ClusterTopologyCheckedException: Failed to 
failover a job to another node (failover SPI returned null) [job=C1 [arg=Stage1 
Stage2], node=TcpDiscoveryNode [id=745add11-cf54-4976-b9a8-f46d76d8e577, 
addrs=[127.0.0.1], sockAddrs=[/127.0.0.1:47500], discPort=47500, order=1, 
intOrder=1, lastExchangeTime=1444740915117, loc=false, 
ver=1.5.0#20151012-sha1:6844370d, isClient=false]]
at 
org.apache.ignite.internal.processors.task.GridTaskWorker.failover(GridTaskWorker.java:1049)
at 
org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:841)
at 
org.apache.ignite.internal.processors.task.GridTaskProcessor.processJobExecuteResponse(GridTaskProcessor.java:995)
at 
org.apache.ignite.internal.processors.task.GridTaskProcessor$JobMessageListener.onMessage(GridTaskProcessor.java:1219)
at 
org.apache.ignite.internal.managers.communication.GridIoManager$GridCommunicationMessageSet.unwind(GridIoManager.java:2302)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.unwindMessageSet(GridIoManager.java:992)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$1700(GridIoManager.java:106)
at 
org.apache.ignite.internal.managers.communication.GridIoManager$6.run(GridIoManager.java:961)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1157)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:627)
at java.lang.Thread.run(Thread.java:809)
Caused by: class org.apache.ignite.compute.ComputeJobFailoverException: 
Expected example job exception.
at 
org.apache.ignite.examples.computegrid.failover.ComputeFailoverExample$CheckPointJob.apply(ComputeFailoverExample.java:128)
at 
org.apache.ignite.examples.computegrid.failover.ComputeFailoverExample$CheckPointJob.apply(ComputeFailoverExample.java:69)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor$C1.execute(GridClosureProcessor.java:1698)
at 
org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:509)
at 
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6371)
at 
org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:503)
at 
org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:456)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
at 
org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1166)
at 
org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:1776)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:811)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$1500(GridIoManager.java:106)
at 
org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:774)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 

[jira] [Comment Edited] (IGNITE-1526) IBM JDK is not fully supported by the platfrom

2015-10-12 Thread Sergey Kozlov (JIRA)

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

Sergey Kozlov edited comment on IGNITE-1526 at 10/12/15 12:48 PM:
--

1. I ran two nodes: 
 under Oracle JDK7: bin\ignite.bat examples\config\example-ignite.xml -v 
-J-Dignite.marsh.optimized.useDefaultSUID=false
 under Oracle JDK8:  bin\ignite.bat examples\config\example-ignite.xml -v 
-J-Dignite.marsh.optimized.useDefaultSUID=false
2. Build and compile examples in IDEA under IBM JDK7
3. Run EventsExample and get following on nodes:
{noformat}
[15:28:11,524][SEVERE][tcp-disco-msg-worker-#2%null][TcpDiscoverySpi] Failed to 
unmarshal discovery custom message.
class org.apache.ignite.IgniteCheckedException: Failed to deserialize object 
with given class loader: sun.misc.Launcher$AppClassLoader@18b4aac2
at 
org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshaller.java:105)
at 
org.apache.ignite.marshaller.AbstractMarshaller.unmarshal(AbstractMarshaller.java:68)
at 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryCustomEventMessage.message(TcpDiscoveryCustomEventMessage.java:78)
at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.notifyDiscoveryListener(ServerImpl.java:4340)
at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processCustomMessage(ServerImpl.java:4299)
at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2125)
at 
org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerAdapter.body(ServerImpl.java:5382)
at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)
Caused by: java.io.InvalidClassException: 
org.apache.ignite.internal.util.lang.GridFunc$3; local class incompatible: 
stream classdesc serialVersionUID
 = 1419527628989531832, local class serialVersionUID = 6101914246981105862
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:621)
at 
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1623)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1774)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at 
org.apache.ignite.internal.processors.continuous.StartRequestData.readExternal(StartRequestData.java:258)
at 
java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1842)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1799)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at 
org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshaller.java:102)
... 7 more
[15:28:50,548][INFO][grid-timeout-worker-#33%null%][IgniteKernal]
{noformat}

Similar issues found for MessagingPingPongExample and 
MessagingPingPongListenActor


was (Author: skozlov):
1. I ran two nodes: 
 under Oracle JDK7: bin\ignite.bat examples\config\example-ignite.xml -v 
-J-Dignite.marsh.optimized.useDefaultSUID=false
 under Oracle JDK8:  bin\ignite.bat examples\config\example-ignite.xml -v 
-J-Dignite.marsh.optimized.useDefaultSUID=false
2. Build and compile examples in IDEA under IBM JDK7
3. Run EventsExample and get following on nodes:
{noformat}
[15:28:11,524][SEVERE][tcp-disco-msg-worker-#2%null][TcpDiscoverySpi] Failed to 
unmarshal discovery custom message.
class org.apache.ignite.IgniteCheckedException: Failed to deserialize object 
with given class loader: sun.misc.Launcher$AppClassLoader@18b4aac2
at 
org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshaller.java:105)
at 
org.apache.ignite.marshaller.AbstractMarshaller.unmarshal(AbstractMarshaller.java:68)
at 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryCustomEventMessage.message(TcpDiscoveryCustomEventMessage.java:78)
at 

[jira] [Comment Edited] (IGNITE-1526) IBM JDK is not fully supported by the platfrom

2015-10-12 Thread Sergey Kozlov (JIRA)

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

Sergey Kozlov edited comment on IGNITE-1526 at 10/12/15 1:19 PM:
-

Another failure found:
1. Run 1 node under Oracle JDK7 (bin\ignite.bat 
examples\config\example-ignite.xml -v 
-J-Dignite.marsh.optimized.useDefaultSUID=false)
2. Run ComputeFibonacciContinuationExample (IBM JDK7) and got exception:

{noformat}
Exception in thread "main" class org.apache.ignite.IgniteException: Failed to 
find class with given class loader for unmarshalling (make sure same version of 
all classes are available on all nodes or enable peer-class-loading): 
sun.misc.Launcher$AppClassLoader@ceddcebd
at 
org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:881)
at 
org.apache.ignite.internal.IgniteComputeImpl.apply(IgniteComputeImpl.java:338)
at 
org.apache.ignite.examples.computegrid.ComputeFibonacciContinuationExample.main(ComputeFibonacciContinuationExample.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
at java.lang.reflect.Method.invoke(Method.java:620)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to find class 
with given class loader for unmarshalling (make sure same version of all 
classes are available on all nodes or enable peer-class-loading): 
sun.misc.Launcher$AppClassLoader@ceddcebd
at 
org.apache.ignite.marshaller.optimized.OptimizedMarshaller.unmarshal(OptimizedMarshaller.java:246)
at 
org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:762)
at 
org.apache.ignite.internal.processors.task.GridTaskProcessor.processJobExecuteResponse(GridTaskProcessor.java:995)
at 
org.apache.ignite.internal.processors.task.GridTaskProcessor$JobMessageListener.onMessage(GridTaskProcessor.java:1219)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:811)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$1500(GridIoManager.java:106)
at 
org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:774)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1157)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:627)
at java.lang.Thread.run(Thread.java:809)
Caused by: java.lang.ClassNotFoundException: Optimized stream class checksum 
mismatch (is same version of marshalled class present on all nodes?) 
[expected=-21474, actual=26922, cls=class java.math.BigInteger]
at 
org.apache.ignite.marshaller.optimized.OptimizedClassDescriptor.verifyChecksum(OptimizedClassDescriptor.java:824)
at 
org.apache.ignite.marshaller.optimized.OptimizedClassDescriptor.read(OptimizedClassDescriptor.java:806)
at 
org.apache.ignite.marshaller.optimized.OptimizedObjectInputStream.readObjectOverride(OptimizedObjectInputStream.java:315)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:414)
at 
org.apache.ignite.marshaller.optimized.OptimizedMarshaller.unmarshal(OptimizedMarshaller.java:240)
... 9 more
{noformat}


was (Author: skozlov):
Another failure found:
1. Run 1 node under Oracle JDK7 (bin\ignite.bat 
examples\config\example-ignite.xml -v 
-J-Dignite.marsh.optimized.useDefaultSUID=false)
2. Run ComputeFibonacciContinuationExample and got exception:

{noformat}
Exception in thread "main" class org.apache.ignite.IgniteException: Failed to 
find class with given class loader for unmarshalling (make sure same version of 
all classes are available on all nodes or enable peer-class-loading): 
sun.misc.Launcher$AppClassLoader@ceddcebd
at 
org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:881)
at 
org.apache.ignite.internal.IgniteComputeImpl.apply(IgniteComputeImpl.java:338)
at 
org.apache.ignite.examples.computegrid.ComputeFibonacciContinuationExample.main(ComputeFibonacciContinuationExample.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
at java.lang.reflect.Method.invoke(Method.java:620)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to find class 
with given 

[jira] [Comment Edited] (IGNITE-1526) IBM JDK is not fully supported by the platfrom

2015-09-30 Thread Andrey Gura (JIRA)

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

Andrey Gura edited comment on IGNITE-1526 at 9/30/15 10:15 AM:
---

{{serialVersionUID}} was added to some anonymous classes in {{ignite-core}}. 
Discovery works, but requires additional testing.

{{OptimizedMarshaller}} uses JDK {{serialVersionUID}} for classes that 
implement {{Serializable}} interface. It is incorrect behavior for cases with 
different JVMs in cluster. In order to provide backward compatibility this code 
will execute only if special flag switched on via system properties. Otherwise, 
another mechanism will be used for checksum (based on {{serialVersionUID}}) 
calculation. {{IgniteCacheFullApiMultiJvmSelfTestSuite}} with 
{{OptimizedMarshaller}} passed successfully with Oracle JDK on local node and 
IBM JDK on remote nodes.

{{IgniteCacheFullApiMultiJvmSelfTestSuite}} with {{PortableMarshaller}} passed 
almost successfully with different JDKs. But there is one problem in some tests:

{noformat}
class org.apache.ignite.IgniteException: Duplicate ID [id=-1996663899, 
oldCls=org.apache.ignite.testframework.junits.multijvm.IgniteProcessProxy$LocalNodeCallable,
 
newCls=org.apache.ignite.testframework.junits.multijvm.IgniteClusterProcessProxy$LocalNodeCallable
at 
org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:881)
at 
org.apache.ignite.internal.IgniteComputeImpl.call(IgniteComputeImpl.java:355)
at 
org.apache.ignite.testframework.junits.multijvm.IgniteClusterProcessProxy.localNode(IgniteClusterProcessProxy.java:87)
at 
org.apache.ignite.internal.processors.cache.GridCacheAbstractFullApiSelfTest.testEvictExpired(GridCacheAbstractFullApiSelfTest.java:3176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at 
org.apache.ignite.testframework.junits.GridAbstractTest.runTestInternal(GridAbstractTest.java:1670)
at 
org.apache.ignite.testframework.junits.GridAbstractTest.access$000(GridAbstractTest.java:111)
at 
org.apache.ignite.testframework.junits.GridAbstractTest$6.run(GridAbstractTest.java:1608)
Caused by: class org.apache.ignite.IgniteCheckedException: Duplicate ID 
[id=-1996663899, 
oldCls=org.apache.ignite.testframework.junits.multijvm.IgniteProcessProxy$LocalNodeCallable,
 
newCls=org.apache.ignite.testframework.junits.multijvm.IgniteClusterProcessProxy$LocalNodeCallable
at 
org.apache.ignite.internal.MarshallerContextAdapter.registerClass(MarshallerContextAdapter.java:163)
at 
org.apache.ignite.internal.portable.PortableContext.registerUserClassDescriptor(PortableContext.java:549)
at 
org.apache.ignite.internal.portable.PortableContext.registerClassDescriptor(PortableContext.java:528)
at 
org.apache.ignite.internal.portable.PortableContext.descriptorForClass(PortableContext.java:443)
at 
org.apache.ignite.internal.portable.PortableWriterExImpl.marshal(PortableWriterExImpl.java:194)
at 
org.apache.ignite.internal.portable.PortableWriterExImpl.doWriteObject(PortableWriterExImpl.java:534)
at 
org.apache.ignite.internal.portable.PortableWriterExImpl.writeObject(PortableWriterExImpl.java:1471)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.writeExternal(GridClosureProcessor.java:1803)
at 
org.apache.ignite.internal.portable.PortableClassDescriptor.write(PortableClassDescriptor.java:543)
at 
org.apache.ignite.internal.portable.PortableWriterExImpl.marshal(PortableWriterExImpl.java:261)
at 
org.apache.ignite.internal.portable.GridPortableMarshaller.marshal(GridPortableMarshaller.java:228)
at 
org.apache.ignite.internal.portable.api.PortableMarshaller.marshal(PortableMarshaller.java:317)
at 
org.apache.ignite.internal.processors.task.GridTaskWorker.sendRequest(GridTaskWorker.java:1203)
at 
org.apache.ignite.internal.processors.task.GridTaskWorker.processMappedJobs(GridTaskWorker.java:609)
at 
org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:501)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
at 
org.apache.ignite.internal.processors.task.GridTaskProcessor.startTask(GridTaskProcessor.java:678)
at 
org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:403)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor.callAsync(GridClosureProcessor.java:583)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor.callAsync(GridClosureProcessor.java:423)
at 

[jira] [Comment Edited] (IGNITE-1526) IBM JDK is not fully supported by the platfrom

2015-09-30 Thread Denis Magda (JIRA)

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

Denis Magda edited comment on IGNITE-1526 at 9/30/15 11:39 AM:
---

+1 to Vladimir suggestion.

In regards to {{OptimizedMarshaller}} we shouldn't rely on it in the 
heterogeneous scenario. That's why we can leave it's implementation as is.

In the heterogeneous scenario the user will use {{PortableMarshaller}}. 
{{JdkMarshaller}} will be used for the rest of core modules.


was (Author: dmagda):
+1 to Vladimir suggestion.

In regards to {{OptimizedMarshaller}} we shouldn't rely on it in the 
heterogeneous scenario. That's why we can live it's implementation as is.

In the heterogeneous scenario the user will use {{PortableMarshaller}}. 
{{JdkMarshaller}} will be used for the rest of core modules.

> IBM JDK is not fully supported by the platfrom
> --
>
> Key: IGNITE-1526
> URL: https://issues.apache.org/jira/browse/IGNITE-1526
> Project: Ignite
>  Issue Type: Bug
>Reporter: Denis Magda
>Assignee: Andrey Gura
>Priority: Blocker
> Fix For: ignite-1.5
>
>
> There are several issue related to IBM JDK.
> 1) It's not possible to compile the platform using IBM JDK ver 1.7;
> 2) Besides of the fact that two IBM nodes can connect to each other some 
> functionality still doesn't work. As an example 
> {{CacheClientPortablePutGetExample}} fails with the following stack trace
> {noformat}
> [14:38:56,930][ERROR][grid-nio-worker-0-#26%null%][TcpCommunicationSpi] 
> Caught unhandled exception in NIO worker thread (restart the node).
> class org.apache.ignite.IgniteException: Invalid field type: 0
>   at 
> org.gridgain.grid.internal.communication.PortableDirectMessageReader.readRemovedField(PortableDirectMessageReader.java:670)
>   at 
> org.gridgain.grid.internal.communication.PortableDirectMessageReader.readFieldHeader(PortableDirectMessageReader.java:520)
>   at 
> org.gridgain.grid.internal.communication.PortableDirectMessageReader.readMessage(PortableDirectMessageReader.java:339)
>   at 
> org.apache.ignite.internal.managers.communication.GridIoMessage.readFrom(GridIoMessage.java:248)
>   at 
> org.apache.ignite.internal.util.nio.GridDirectParser.decode(GridDirectParser.java:76)
>   at 
> org.apache.ignite.internal.util.nio.GridNioCodecFilter.onMessageReceived(GridNioCodecFilter.java:103)
>   at 
> org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:107)
>   at 
> org.apache.ignite.internal.util.nio.GridConnectionBytesVerifyFilter.onMessageReceived(GridConnectionBytesVerifyFilter.java:122)
>   at 
> org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:107)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$HeadFilter.onMessageReceived(GridNioServer.java:2078)
>   at 
> org.apache.ignite.internal.util.nio.GridNioFilterChain.onMessageReceived(GridNioFilterChain.java:172)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$DirectNioClientWorker.processRead(GridNioServer.java:858)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeys(GridNioServer.java:1397)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:1339)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1223)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:108)
>   at java.lang.Thread.run(Thread.java:801)
> {noformat}
> 3) Oracle JVM based server node fails to connect to IBM server node producing 
> the stack trace below. Tested with JDK and Portable marshallers.
> {noformat}
> [13:47:33,935][SEVERE][tcp-disco-msg-worker-#2%null][TcpDiscoverySpi] Failed 
> to
> unmarshal discovery data for component: 0
> class org.apache.ignite.IgniteCheckedException: Failed to deserialize object 
> wit
> h given class loader: sun.misc.Launcher$AppClassLoader@56092666
> at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshalle
> r.java:105)
> at 
> org.apache.ignite.marshaller.AbstractMarshaller.unmarshal(AbstractMar
> shaller.java:68)
> at 
> org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.onExchange(TcpDis
> coverySpi.java:1697)
> at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.proc
> essNodeAddedMessage(ServerImpl.java:3258)
> at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.proc
> essMessage(ServerImpl.java:1993)
> at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerAdapter.b
> 

[jira] [Comment Edited] (IGNITE-1526) IBM JDK is not fully supported by the platfrom

2015-09-30 Thread Andrey Gura (JIRA)

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

Andrey Gura edited comment on IGNITE-1526 at 9/30/15 10:00 AM:
---

{{serialVersionUID}} was added to some anonymous classes in {{ignite-core}}. 
Discovery works, but requires additional testing.

{{OptimizedMarshaller}} uses JDK {{serialVersionUID}} for classes that 
implement {{Serializable}} interface. It is incorrect behavior for cases with 
different JVMs in cluster. In order to provide backward compatibility this code 
will execute only if special flag switched on via system properties. Otherwise, 
another mechanism will be used for checksum (based on {{serialVersionUID}}) 
calculation. {{IgniteCacheFullApiMultiJvmSelfTestSuite}} with 
{{OptimizedMarshaller}} passed successfully with Oracle JDK on local node and 
IBM JDK on remote nodes.

{{IgniteCacheFullApiMultiJvmSelfTestSuite}} with {{PortableMarshaller}} passed 
almost successfully with different JDKs. But there is one problem in some tests:

{noformat}
class org.apache.ignite.IgniteException: Duplicate ID [id=-1996663899, 
oldCls=org.apache.ignite.testframework.junits.multijvm.IgniteProcessProxy$LocalNodeCallable,
 
newCls=org.apache.ignite.testframework.junits.multijvm.IgniteClusterProcessProxy$LocalNodeCallable
at 
org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:881)
at 
org.apache.ignite.internal.IgniteComputeImpl.call(IgniteComputeImpl.java:355)
at 
org.apache.ignite.testframework.junits.multijvm.IgniteClusterProcessProxy.localNode(IgniteClusterProcessProxy.java:87)
at 
org.apache.ignite.internal.processors.cache.GridCacheAbstractFullApiSelfTest.testEvictExpired(GridCacheAbstractFullApiSelfTest.java:3176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at 
org.apache.ignite.testframework.junits.GridAbstractTest.runTestInternal(GridAbstractTest.java:1670)
at 
org.apache.ignite.testframework.junits.GridAbstractTest.access$000(GridAbstractTest.java:111)
at 
org.apache.ignite.testframework.junits.GridAbstractTest$6.run(GridAbstractTest.java:1608)
Caused by: class org.apache.ignite.IgniteCheckedException: Duplicate ID 
[id=-1996663899, 
oldCls=org.apache.ignite.testframework.junits.multijvm.IgniteProcessProxy$LocalNodeCallable,
 
newCls=org.apache.ignite.testframework.junits.multijvm.IgniteClusterProcessProxy$LocalNodeCallable
at 
org.apache.ignite.internal.MarshallerContextAdapter.registerClass(MarshallerContextAdapter.java:163)
at 
org.apache.ignite.internal.portable.PortableContext.registerUserClassDescriptor(PortableContext.java:549)
at 
org.apache.ignite.internal.portable.PortableContext.registerClassDescriptor(PortableContext.java:528)
at 
org.apache.ignite.internal.portable.PortableContext.descriptorForClass(PortableContext.java:443)
at 
org.apache.ignite.internal.portable.PortableWriterExImpl.marshal(PortableWriterExImpl.java:194)
at 
org.apache.ignite.internal.portable.PortableWriterExImpl.doWriteObject(PortableWriterExImpl.java:534)
at 
org.apache.ignite.internal.portable.PortableWriterExImpl.writeObject(PortableWriterExImpl.java:1471)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.writeExternal(GridClosureProcessor.java:1803)
at 
org.apache.ignite.internal.portable.PortableClassDescriptor.write(PortableClassDescriptor.java:543)
at 
org.apache.ignite.internal.portable.PortableWriterExImpl.marshal(PortableWriterExImpl.java:261)
at 
org.apache.ignite.internal.portable.GridPortableMarshaller.marshal(GridPortableMarshaller.java:228)
at 
org.apache.ignite.internal.portable.api.PortableMarshaller.marshal(PortableMarshaller.java:317)
at 
org.apache.ignite.internal.processors.task.GridTaskWorker.sendRequest(GridTaskWorker.java:1203)
at 
org.apache.ignite.internal.processors.task.GridTaskWorker.processMappedJobs(GridTaskWorker.java:609)
at 
org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:501)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
at 
org.apache.ignite.internal.processors.task.GridTaskProcessor.startTask(GridTaskProcessor.java:678)
at 
org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:403)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor.callAsync(GridClosureProcessor.java:583)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor.callAsync(GridClosureProcessor.java:423)
at 

[jira] [Comment Edited] (IGNITE-1526) IBM JDK is not fully supported by the platfrom

2015-09-30 Thread Vladimir Ozerov (JIRA)

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

Vladimir Ozerov edited comment on IGNITE-1526 at 9/30/15 10:13 AM:
---

String.hashCode() is a very nice candidate for ID computation because it is 
cached inside String instance. Manual ID computation will lead to ~5-10% 
slowdown, we already saw this in .Net where we have to calculate IDs by hand. 

On the other hand, it is true that different JVMs might calculate it 
differently, and some of them might even decide not to cache it. I would stick 
with current implementation by default, and add  ability to fallback to manual 
ID calculation via system property. 


was (Author: vozerov):
String.hashCode() is a very nice candidate for ID computation because it si 
cached inside String string instance. Manual ID computation will lead to ~5-10% 
slowdown, we already saw this in .Net where we have to calculate IDs by hand. 

On the other hand, it is true that different JVMs might calculate it 
differently, and some of them might even decide not to cache it. I would stick 
with current implementation by default, and add  ability to fallback to manual 
ID calculation via system property. 

> IBM JDK is not fully supported by the platfrom
> --
>
> Key: IGNITE-1526
> URL: https://issues.apache.org/jira/browse/IGNITE-1526
> Project: Ignite
>  Issue Type: Bug
>Reporter: Denis Magda
>Assignee: Andrey Gura
>Priority: Blocker
> Fix For: ignite-1.5
>
>
> There are several issue related to IBM JDK.
> 1) It's not possible to compile the platform using IBM JDK ver 1.7;
> 2) Besides of the fact that two IBM nodes can connect to each other some 
> functionality still doesn't work. As an example 
> {{CacheClientPortablePutGetExample}} fails with the following stack trace
> {noformat}
> [14:38:56,930][ERROR][grid-nio-worker-0-#26%null%][TcpCommunicationSpi] 
> Caught unhandled exception in NIO worker thread (restart the node).
> class org.apache.ignite.IgniteException: Invalid field type: 0
>   at 
> org.gridgain.grid.internal.communication.PortableDirectMessageReader.readRemovedField(PortableDirectMessageReader.java:670)
>   at 
> org.gridgain.grid.internal.communication.PortableDirectMessageReader.readFieldHeader(PortableDirectMessageReader.java:520)
>   at 
> org.gridgain.grid.internal.communication.PortableDirectMessageReader.readMessage(PortableDirectMessageReader.java:339)
>   at 
> org.apache.ignite.internal.managers.communication.GridIoMessage.readFrom(GridIoMessage.java:248)
>   at 
> org.apache.ignite.internal.util.nio.GridDirectParser.decode(GridDirectParser.java:76)
>   at 
> org.apache.ignite.internal.util.nio.GridNioCodecFilter.onMessageReceived(GridNioCodecFilter.java:103)
>   at 
> org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:107)
>   at 
> org.apache.ignite.internal.util.nio.GridConnectionBytesVerifyFilter.onMessageReceived(GridConnectionBytesVerifyFilter.java:122)
>   at 
> org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:107)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$HeadFilter.onMessageReceived(GridNioServer.java:2078)
>   at 
> org.apache.ignite.internal.util.nio.GridNioFilterChain.onMessageReceived(GridNioFilterChain.java:172)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$DirectNioClientWorker.processRead(GridNioServer.java:858)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeys(GridNioServer.java:1397)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:1339)
>   at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1223)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:108)
>   at java.lang.Thread.run(Thread.java:801)
> {noformat}
> 3) Oracle JVM based server node fails to connect to IBM server node producing 
> the stack trace below. Tested with JDK and Portable marshallers.
> {noformat}
> [13:47:33,935][SEVERE][tcp-disco-msg-worker-#2%null][TcpDiscoverySpi] Failed 
> to
> unmarshal discovery data for component: 0
> class org.apache.ignite.IgniteCheckedException: Failed to deserialize object 
> wit
> h given class loader: sun.misc.Launcher$AppClassLoader@56092666
> at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshalle
> r.java:105)
> at 
> org.apache.ignite.marshaller.AbstractMarshaller.unmarshal(AbstractMar
> shaller.java:68)
> at 
> 

[jira] [Comment Edited] (IGNITE-1526) IBM JDK is not fully supported by the platfrom

2015-09-29 Thread Andrey Gura (JIRA)

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

Andrey Gura edited comment on IGNITE-1526 at 9/29/15 7:13 PM:
--

{{serialVersionUID}} was added to some anonymous classes in {{ignite-core}}. 
Discovery works, but requires additional testing.

{{OptimizedMarshaller}} uses JDK {{serialVersionUID}} for classes that 
implement {{Serializable}} interface. It is incorrect behavior for cases with 
different JVMs in cluster. In order to provide backward compatibility this code 
will execute only if special flag switched on via system properties. Otherwise, 
another mechanism will be used for checksum (based on {{serialVersionUID}}) 
calculation. {{IgniteCacheFullApiMultiJvmSelfTestSuite}} with 
{{OptimizedMarshaller}} passed successfully with Oracle JDK on local node and 
IBM JDK on remote nodes.

{{IgniteCacheFullApiMultiJvmSelfTestSuite}} with {{PortableMarshaller}} passed 
almost successfully with different JDKs. But there is one problem in some tests:

{noformat}
class org.apache.ignite.IgniteException: Duplicate ID [id=-1996663899, 
oldCls=org.apache.ignite.testframework.junits.multijvm.IgniteProcessProxy$LocalNodeCallable,
 
newCls=org.apache.ignite.testframework.junits.multijvm.IgniteClusterProcessProxy$LocalNodeCallable
at 
org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:881)
at 
org.apache.ignite.internal.IgniteComputeImpl.call(IgniteComputeImpl.java:355)
at 
org.apache.ignite.testframework.junits.multijvm.IgniteClusterProcessProxy.localNode(IgniteClusterProcessProxy.java:87)
at 
org.apache.ignite.internal.processors.cache.GridCacheAbstractFullApiSelfTest.testEvictExpired(GridCacheAbstractFullApiSelfTest.java:3176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at 
org.apache.ignite.testframework.junits.GridAbstractTest.runTestInternal(GridAbstractTest.java:1670)
at 
org.apache.ignite.testframework.junits.GridAbstractTest.access$000(GridAbstractTest.java:111)
at 
org.apache.ignite.testframework.junits.GridAbstractTest$6.run(GridAbstractTest.java:1608)
Caused by: class org.apache.ignite.IgniteCheckedException: Duplicate ID 
[id=-1996663899, 
oldCls=org.apache.ignite.testframework.junits.multijvm.IgniteProcessProxy$LocalNodeCallable,
 
newCls=org.apache.ignite.testframework.junits.multijvm.IgniteClusterProcessProxy$LocalNodeCallable
at 
org.apache.ignite.internal.MarshallerContextAdapter.registerClass(MarshallerContextAdapter.java:163)
at 
org.apache.ignite.internal.portable.PortableContext.registerUserClassDescriptor(PortableContext.java:549)
at 
org.apache.ignite.internal.portable.PortableContext.registerClassDescriptor(PortableContext.java:528)
at 
org.apache.ignite.internal.portable.PortableContext.descriptorForClass(PortableContext.java:443)
at 
org.apache.ignite.internal.portable.PortableWriterExImpl.marshal(PortableWriterExImpl.java:194)
at 
org.apache.ignite.internal.portable.PortableWriterExImpl.doWriteObject(PortableWriterExImpl.java:534)
at 
org.apache.ignite.internal.portable.PortableWriterExImpl.writeObject(PortableWriterExImpl.java:1471)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.writeExternal(GridClosureProcessor.java:1803)
at 
org.apache.ignite.internal.portable.PortableClassDescriptor.write(PortableClassDescriptor.java:543)
at 
org.apache.ignite.internal.portable.PortableWriterExImpl.marshal(PortableWriterExImpl.java:261)
at 
org.apache.ignite.internal.portable.GridPortableMarshaller.marshal(GridPortableMarshaller.java:228)
at 
org.apache.ignite.internal.portable.api.PortableMarshaller.marshal(PortableMarshaller.java:317)
at 
org.apache.ignite.internal.processors.task.GridTaskWorker.sendRequest(GridTaskWorker.java:1203)
at 
org.apache.ignite.internal.processors.task.GridTaskWorker.processMappedJobs(GridTaskWorker.java:609)
at 
org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:501)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
at 
org.apache.ignite.internal.processors.task.GridTaskProcessor.startTask(GridTaskProcessor.java:678)
at 
org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:403)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor.callAsync(GridClosureProcessor.java:583)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor.callAsync(GridClosureProcessor.java:423)
at 

[jira] [Comment Edited] (IGNITE-1526) IBM JDK is not fully supported by the platfrom

2015-09-29 Thread Andrey Gura (JIRA)

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

Andrey Gura edited comment on IGNITE-1526 at 9/29/15 7:12 PM:
--

{{serialVersionUID}} was added to some anonymous classes in {{ignite-core}}. 
Discovery works, but requires additional testing.

{{OptimizedMarshaller}} uses JDK {{serialVersionUID}} for classes that 
implement {{Serializable}} interface. It is incorrect behavior for cases with 
different JVMs in cluster. In order to provide backward compatibility this code 
will execute only if special flag switched on via system properties. Otherwise, 
another mechanism will be used for checksum (based on {{serialVersionUID}}) 
calculation. {{IgniteCacheFullApiMultiJvmSelfTestSuite}} with 
{{OptimizedMarshaller}} passed successfully with Oracle JDK on lolcal node and 
IBM JDK on remote nodes.

{{IgniteCacheFullApiMultiJvmSelfTestSuite}} with {{PortableMarshaller}} passed 
almost successfully with different JDKs. But there is one problem in some tests:

{noformat}
class org.apache.ignite.IgniteException: Duplicate ID [id=-1996663899, 
oldCls=org.apache.ignite.testframework.junits.multijvm.IgniteProcessProxy$LocalNodeCallable,
 
newCls=org.apache.ignite.testframework.junits.multijvm.IgniteClusterProcessProxy$LocalNodeCallable
at 
org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:881)
at 
org.apache.ignite.internal.IgniteComputeImpl.call(IgniteComputeImpl.java:355)
at 
org.apache.ignite.testframework.junits.multijvm.IgniteClusterProcessProxy.localNode(IgniteClusterProcessProxy.java:87)
at 
org.apache.ignite.internal.processors.cache.GridCacheAbstractFullApiSelfTest.testEvictExpired(GridCacheAbstractFullApiSelfTest.java:3176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at 
org.apache.ignite.testframework.junits.GridAbstractTest.runTestInternal(GridAbstractTest.java:1670)
at 
org.apache.ignite.testframework.junits.GridAbstractTest.access$000(GridAbstractTest.java:111)
at 
org.apache.ignite.testframework.junits.GridAbstractTest$6.run(GridAbstractTest.java:1608)
Caused by: class org.apache.ignite.IgniteCheckedException: Duplicate ID 
[id=-1996663899, 
oldCls=org.apache.ignite.testframework.junits.multijvm.IgniteProcessProxy$LocalNodeCallable,
 
newCls=org.apache.ignite.testframework.junits.multijvm.IgniteClusterProcessProxy$LocalNodeCallable
at 
org.apache.ignite.internal.MarshallerContextAdapter.registerClass(MarshallerContextAdapter.java:163)
at 
org.apache.ignite.internal.portable.PortableContext.registerUserClassDescriptor(PortableContext.java:549)
at 
org.apache.ignite.internal.portable.PortableContext.registerClassDescriptor(PortableContext.java:528)
at 
org.apache.ignite.internal.portable.PortableContext.descriptorForClass(PortableContext.java:443)
at 
org.apache.ignite.internal.portable.PortableWriterExImpl.marshal(PortableWriterExImpl.java:194)
at 
org.apache.ignite.internal.portable.PortableWriterExImpl.doWriteObject(PortableWriterExImpl.java:534)
at 
org.apache.ignite.internal.portable.PortableWriterExImpl.writeObject(PortableWriterExImpl.java:1471)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.writeExternal(GridClosureProcessor.java:1803)
at 
org.apache.ignite.internal.portable.PortableClassDescriptor.write(PortableClassDescriptor.java:543)
at 
org.apache.ignite.internal.portable.PortableWriterExImpl.marshal(PortableWriterExImpl.java:261)
at 
org.apache.ignite.internal.portable.GridPortableMarshaller.marshal(GridPortableMarshaller.java:228)
at 
org.apache.ignite.internal.portable.api.PortableMarshaller.marshal(PortableMarshaller.java:317)
at 
org.apache.ignite.internal.processors.task.GridTaskWorker.sendRequest(GridTaskWorker.java:1203)
at 
org.apache.ignite.internal.processors.task.GridTaskWorker.processMappedJobs(GridTaskWorker.java:609)
at 
org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:501)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
at 
org.apache.ignite.internal.processors.task.GridTaskProcessor.startTask(GridTaskProcessor.java:678)
at 
org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:403)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor.callAsync(GridClosureProcessor.java:583)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor.callAsync(GridClosureProcessor.java:423)
at