[ https://issues.apache.org/jira/browse/IGNITE-1526?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14953125#comment-14953125 ]
Sergey Kozlov commented on IGNITE-1526: --------------------------------------- A bit strange case 1. Run 1 node under Oracle JDK7 (bin\ignite.bat examples\config\example-ignite.xml -v -J-Dignite.marsh.optimized.useDefaultSUID=false) 2. Run following examples successively: ComputeReducerExample, ComputeRunnableExample, ComputeTaskMapExample, ComputeTaskSplitExample and then got following exception: {noformat} [16:36:11,921][ERROR][tcp-disco-sock-reader-#10%null][TcpDiscoverySpi] Failed to read message [sock=Socket[addr=/0:0:0:0:0:0:0:1,port=63271,localport=47501], locNodeId=df1b6d29-292a-4c98-9da0-5509d013e364, rmtNodeId=5eb72def-71d4-489d-ac70-0a04bb30f2f1] class org.apache.ignite.IgniteCheckedException: Failed to deserialize object with given class loader: sun.misc.Launcher$AppClassLoader@ef968d1d at org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshaller.java:105) at org.apache.ignite.spi.discovery.tcp.ServerImpl$SocketReader.body(ServerImpl.java:4785) at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62) Caused by: java.io.StreamCorruptedException: invalid type code: 62 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1461) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:429) at org.apache.ignite.internal.util.IgniteUtils.readMap(IgniteUtils.java:4889) at org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoveryNode.readExternal(TcpDiscoveryNode.java:559) at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1940) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1899) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1433) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2093) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2018) 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.ArrayDeque.readObject(ArrayDeque.java:876) 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 java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1099) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1996) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1901) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1433) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2093) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2018) 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) ... 2 more {noformat} > 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 incompatible: stream classdesc serialVersionUID = > -55433 > 49853748590486, local class serialVersionUID = -5664060422647374863 > at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:617) > at > java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:162 > 2) > at > java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517) > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1 > 771) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) > at > org.apache.ignite.internal.processors.continuous.GridContinuousProces > sor$DiscoveryDataItem.readExternal(GridContinuousProcessor.java:1455) > at > java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:183 > 7) > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1 > 796) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) > at > org.apache.ignite.internal.util.IgniteUtils.readList(IgniteUtils.java > :5109) > at > org.apache.ignite.internal.util.IgniteUtils.readCollection(IgniteUtil > s.java:1618) > at > org.apache.ignite.internal.processors.continuous.GridContinuousProces > sor$DiscoveryData.readExternal(GridContinuousProcessor.java:1371) > at > java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:183 > 7) > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1 > 796) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) > at > org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshalle > r.java:102) > ... 6 more > {noformat} > 4) Oracle JVM based client node is partially connected to IBM server node. > The server node updates its topology while the client is hanging with the > stack trace below. Tested with JDK and Portable marshallers.: > {noformat} > "main" prio=6 tid=0x00000000001ee800 nid=0x1f44 waiting on condition > [0x00000000025ce000] > java.lang.Thread.State: WAITING (parking) > at sun.misc.Unsafe.park(Native Method) > - parking to wait for <0x00000007d7ad4478> (a > java.util.concurrent.CountDownLatch$Sync) > at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:994) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303) > at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:236) > at > org.apache.ignite.spi.discovery.tcp.ClientImpl.spiStart(ClientImpl.java:252) > at > org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:1815) > at > org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:252) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:666) > at > org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1485) > at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:908) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1617) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1484) > - locked <0x00000007d7bbb918> (a > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance) > at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:965) > at > org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:892) > at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:784) > at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:705) > at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:576) > at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:546) > at org.apache.ignite.Ignition.start(Ignition.java:346) > {noformat} > IBM SDK implements {{sun.misc.Unsafe}}. However there is no guarantee that it > works the same way Oracle's does. > In all the test the following JDK versions were used: > 1) IBM > java version "1.7.0" > Java(TM) SE Runtime Environment (build pwa6470sr8fp10-20141219_01(SR8 FP10)) > IBM J9 VM (build 2.6, JRE 1.7.0 Windows 7 amd64-64 Compressed References > 2014121 > 6_227497 (JIT enabled, AOT enabled) > J9VM - R26_Java726_SR8_20141216_0955_B227497 > JIT - r11.b07_20141003_74578.05 > GC - R26_Java726_SR8_20141216_0955_B227497_CMPRSS > J9CL - 20141216_227497) > JCL - 20141217_01 based on Oracle jdk7u75-b12 > 2) Oracle > java version "1.7.0_67" > Java(TM) SE Runtime Environment (build 1.7.0_67-b01) > Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode) -- This message was sent by Atlassian JIRA (v6.3.4#6332)