You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Andrey Gura (JIRA)" <ji...@apache.org> on 2015/10/19 12:10:05 UTC

[jira] [Assigned] (IGNITE-1722) Many examples fail if they are running with JdkMarshaller in the cluster with different vendors and versions jvm

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

Andrey Gura reassigned IGNITE-1722:
-----------------------------------

    Assignee: Andrey Gura

> Many examples fail if they are running with JdkMarshaller in the cluster with different vendors and versions jvm
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-1722
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1722
>             Project: Ignite
>          Issue Type: Bug
>          Components: general
>    Affects Versions: 1.5
>         Environment: Ubuntu 14.04, community 1.5.0 build #319
>            Reporter: Vasilisa  Sidorova
>            Assignee: Andrey Gura
>             Fix For: 1.5
>
>
> ENVIRONMENT
> --------------------------------------------
> ibm-java-7 -version: 
> {noformat}
> java version "1.7.0"
> Java(TM) SE Runtime Environment (build pxa6470_27sr3fp10-20150708_01(SR3 FP10))
> IBM J9 VM (build 2.7, JRE 1.7.0 Linux amd64-64 Compressed References 20150630_255653 (JIT enabled, AOT enabled)
> J9VM - R27_Java727_SR3_20150630_2236_B255653
> JIT  - tr.r13.java_20150623_94888.01
> GC   - R27_Java727_SR3_20150630_2236_B255653_CMPRSS
> J9CL - 20150630_255653)
> JCL - 20150628_01 based on Oracle jdk7u85-b15
> {noformat}
> oracle-java-7 -version:
> {noformat}
> java version "1.7.0_80" 
> Java(TM) SE Runtime Environment (build 1.7.0_80-b15) 
> Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
> {noformat}
> ---------------------------------------------
> DESCRIPTION
> ---------------------------------------------
> When default optimizedMarshaller is changed into JdkMarshaller in example-ignite.xml and cluster with different vendors and versions jvm is started then most of Compute examples (ClusterGroupExample, CreditRiskExample, ComputeAsyncExample, ComputeBroadcastExample, ComputeCallableExample, ComputeClosureExample, ComputeReducerExample, ComputeRunnableExample), CacheAffinityExample, CacheContinuousQueryExample, IgniteAtomicLongExample, IgniteExecutorServiceExample, EventsExample fail during running in this cluster
> ---------------------------------------------
> STEPS FOR REPRODUCE
> ---------------------------------------------
> # Build examples project in IDE (for example, for the ibm-java-7 jvm)
> # In the example-ignite.xml change property from:
> {noformat}
> <property name="marshaller">
>             <bean class="org.apache.ignite.marshaller.optimized.OptimizedMarshaller"> -->
>                 <!-- Set to false to allow non-serializable objects in examples, default is true. -->
>                 <!-- <property name="requireSerializable" value="false"/>
>             </bean>
>         </property>
> {noformat}
> to
> {noformat}
> <property name="marshaller">
>         <bean class="org.apache.ignite.marshaller.jdk.JdkMarshaller"/>
>     </property>
> {noformat}
> # Run ExampleNodeStartup on the ibm-java-7 jvm 
> # In the same cluster run second ExampleNodeStartup (or corresponding node from command line) on the, for example, oracle-java-7 jvm
> # For example, run CreditRiskExample on the ibm-java-7 jvm
> ---------------------------------------------
> ACTUAL RESULT
> ---------------------------------------------
> Example is failed with exception:
> {noformat}
> [18:32:50,486][ERROR][ignite-#19%sys-null%][GridTaskWorker] Failed to obtain remote job result policy for result from ComputeTask.result(..) method (will fail the whole task): GridJobResultImpl [job=C2 [], sib=GridJobSiblingImpl [sesId=4e238417051-f0bdd2e0-2e1b-40c9-b395-5adeea3abb80, jobId=6e238417051-b4bcdc8a-d015-4add-a605-63dff152b030, nodeId=b4bcdc8a-d015-4add-a605-63dff152b030, isJobDone=false], jobCtx=GridJobContextImpl [jobId=6e238417051-b4bcdc8a-d015-4add-a605-63dff152b030, timeoutObj=null, attrs={}], node=TcpDiscoveryNode [id=b4bcdc8a-d015-4add-a605-63dff152b030, addrs=[127.0.0.1], sockAddrs=[/127.0.0.1:47501], discPort=47501, order=4, intOrder=3, lastExchangeTime=1445009569431, loc=false, ver=1.5.0#20151012-sha1:6844370d, isClient=false], ex=class o.a.i.IgniteException: Failed to deserialize object with given class loader: sun.misc.Launcher$AppClassLoader@501d5ebc, hasRes=true, isCancelled=false, isOccupied=true]
> class org.apache.ignite.IgniteException: Remote job threw user exception (override or implement ComputeTask.result(..) method if you would like to have automatic failover for this exception).
> 	at org.apache.ignite.compute.ComputeTaskAdapter.result(ComputeTaskAdapter.java:101)
> 	at org.apache.ignite.internal.processors.closure.GridClosureProcessor$T3.result(GridClosureProcessor.java:1246)
> 	at org.apache.ignite.internal.processors.task.GridTaskWorker$3.apply(GridTaskWorker.java:903)
> 	at org.apache.ignite.internal.processors.task.GridTaskWorker$3.apply(GridTaskWorker.java:896)
> 	at org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6403)
> 	at org.apache.ignite.internal.processors.task.GridTaskWorker.result(GridTaskWorker.java:896)
> 	at org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:792)
> 	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: class org.apache.ignite.IgniteException: Failed to deserialize object with given class loader: sun.misc.Launcher$AppClassLoader@501d5ebc
> 	at org.apache.ignite.internal.processors.job.GridJobWorker.initialize(GridJobWorker.java:424)
> 	at org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1094)
> 	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)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to deserialize object with given class loader: sun.misc.Launcher$AppClassLoader@501d5ebc
> 	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.internal.processors.job.GridJobWorker.initialize(GridJobWorker.java:409)
> 	... 8 more
> Caused by: java.io.InvalidClassException: org.apache.ignite.examples.computegrid.montecarlo.CreditRiskExample$2; local class incompatible: stream classdesc serialVersionUID = 1895801581034216497, local class serialVersionUID = 9086725335444863242
> 	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:617)
> 	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
> 	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
> 	at org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.readExternal(GridClosureProcessor.java:1808)
> 	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1837)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
> 	at org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshaller.java:102)
> 	... 10 more
> >>> Finished calculating portfolio risk [risk=499581.9554895319, time=2728ms]
> [18:32:53] Ignite node stopped OK [uptime=00:00:02:841]
> Exception in thread "main" class org.apache.ignite.IgniteException: Failed to deserialize object with given class loader: sun.misc.Launcher$AppClassLoader@501d5ebc
> 	at org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:881)
> 	at org.apache.ignite.internal.IgniteComputeImpl.call(IgniteComputeImpl.java:408)
> 	at org.apache.ignite.examples.computegrid.montecarlo.CreditRiskExample.main(CreditRiskExample.java:85)
> 	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.IgniteCheckedException: Failed to deserialize object with given class loader: sun.misc.Launcher$AppClassLoader@501d5ebc
> 	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.internal.processors.job.GridJobWorker.initialize(GridJobWorker.java:409)
> 	at org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1094)
> 	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)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: java.io.InvalidClassException: org.apache.ignite.examples.computegrid.montecarlo.CreditRiskExample$2; local class incompatible: stream classdesc serialVersionUID = 1895801581034216497, local class serialVersionUID = 9086725335444863242
> 	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:617)
> 	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
> 	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
> 	at org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.readExternal(GridClosureProcessor.java:1808)
> 	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1837)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
> 	at org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshaller.java:102)
> 	... 10 more
> {noformat}
> There is exception in the remote (second) node console:
> {noformat}
> [18:32:50,466][ERROR][ignite-#7%pub-null%][GridJobWorker] Failed to initialize job [jobId=6e238417051-b4bcdc8a-d015-4add-a605-63dff152b030, ses=GridJobSessionImpl [ses=GridTaskSessionImpl [taskName=o.a.i.examples.computegrid.montecarlo.CreditRiskExample$2, dep=GridDeployment [ts=1445009556695, depMode=SHARED, clsLdr=sun.misc.Launcher$AppClassLoader@501d5ebc, clsLdrId=35ff7417051-b4bcdc8a-d015-4add-a605-63dff152b030, userVer=0, loc=true, sampleClsName=java.util.HashMap, pendingUndeploy=false, undeployed=false, usage=1], taskClsName=o.a.i.examples.computegrid.montecarlo.CreditRiskExample$2, sesId=4e238417051-f0bdd2e0-2e1b-40c9-b395-5adeea3abb80, startTime=1445009570408, endTime=9223372036854775807, taskNodeId=f0bdd2e0-2e1b-40c9-b395-5adeea3abb80, clsLdr=sun.misc.Launcher$AppClassLoader@501d5ebc, closed=false, cpSpi=null, failSpi=null, loadSpi=null, usage=1, fullSup=false, subjId=f0bdd2e0-2e1b-40c9-b395-5adeea3abb80, mapFut=IgniteFuture [orig=GridFutureAdapter [resFlag=0, res=null, startTime=1445009570454, endTime=0, ignoreInterrupts=false, lsnr=null, state=INIT]]], jobId=6e238417051-b4bcdc8a-d015-4add-a605-63dff152b030]]
> class org.apache.ignite.IgniteCheckedException: Failed to deserialize object with given class loader: sun.misc.Launcher$AppClassLoader@501d5ebc
> 	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.internal.processors.job.GridJobWorker.initialize(GridJobWorker.java:409)
> 	at org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1094)
> 	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)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: java.io.InvalidClassException: org.apache.ignite.examples.computegrid.montecarlo.CreditRiskExample$2; local class incompatible: stream classdesc serialVersionUID = 1895801581034216497, local class serialVersionUID = 9086725335444863242
> 	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:617)
> 	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
> 	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
> 	at org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.readExternal(GridClosureProcessor.java:1808)
> 	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1837)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
> 	at org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshaller.java:102)
> 	... 10 more
> {noformat}
> ---------------------------------------------
> EXPECTED RESULT
> ---------------------------------------------
> Example is passed without any exceptions
> --------------------------------------------
> ADDITIONAL INFO
> --------------------------------------------
> # Isn't reproducible for optimized and portable marshallers
> # Isn't reproducible for cluster were all jvm are identical
> # Reproducible, at least, for clusters with next list of jvm: 
> ## oracle-java-7 + ibm-java-7
> ## oracle-java-7 + openjdk-7
> ## oracle-java-7 + oracle-java-8
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)