ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrey Gura (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-1717) NPE during running ScalarCreditRiskExample with portableMarshaller
Date Mon, 19 Oct 2015 18:45:27 GMT

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

Andrey Gura commented on IGNITE-1717:
-------------------------------------

The problem in serialization of {{scala.collection.immutable.List}} class. It overrides serialization
logic in order to prevent original collection mutation (variable {{orig}} is transient in
{{scala.collection.immutable.List$SerializationProxy}}). So the only way to serialize/deserialize
it for {{PortableMarshaller}} is usage of {{OptimizedMarshaller}}. But {{PortableMarshaller}}
in this case always uses own serialization logic and doesn't check that replaced object should
be serialized in different way.

> NPE during running ScalarCreditRiskExample with portableMarshaller
> ------------------------------------------------------------------
>
>                 Key: IGNITE-1717
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1717
>             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
>
>
> ---------------------------------------------
> DESCRIPTION
> ---------------------------------------------
> When default optimizedMarshaller is changed into portableMarshaller in example-ignite.xml
then ScalarCreditRiskExample  is failed with NPE
> ---------------------------------------------
> STEPS FOR REPRODUCE
> ---------------------------------------------
> 1. Build examples project in IDE
> 2.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.internal.portable.api.PortableMarshaller"/>
>         </property>
> {noformat}
> 3. Run ExampleNodeStartup
> 4. Run ScalarCreditRiskExample
> ---------------------------------------------
> ACTUAL RESULT
> ---------------------------------------------
> Example is failed with exception:
> {noformat}
> [13:57:40,936][ERROR][ignite-#18%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=5274c407051-955a7d7a-3558-446d-842f-ca760c8e8b02,
jobId=8274c407051-a6a70d16-43e2-4c1a-b741-19c83132a1c8, nodeId=a6a70d16-43e2-4c1a-b741-19c83132a1c8,
isJobDone=false], jobCtx=GridJobContextImpl [jobId=8274c407051-a6a70d16-43e2-4c1a-b741-19c83132a1c8,
timeoutObj=null, attrs={}], node=TcpDiscoveryNode [id=a6a70d16-43e2-4c1a-b741-19c83132a1c8,
addrs=[0:0:0:0:0:0:0:1%1, 10.0.0.7, 127.0.0.1, 192.168.1.179], sockAddrs=[/10.0.0.7:47500,
/0:0:0:0:0:0:0:1%1:47500, /192.168.1.179:47500, /10.0.0.7:47500, /127.0.0.1:47500, /192.168.1.179:47500],
discPort=47500, order=1, intOrder=1, lastExchangeTime=1444993059563, loc=false, ver=1.5.0#20151012-sha1:6844370d,
isClient=false], ex=class o.a.i.IgniteException: null, 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: null
> 	at org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.execute(GridClosureProcessor.java:1792)
> 	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)
> 	... 6 more
> Caused by: java.lang.NullPointerException
> 	at org.apache.ignite.scalar.examples.CreditRiskManager.calculateCreditRiskMonteCarlo(ScalarCreditRiskExample.scala:163)
> 	at org.apache.ignite.scalar.examples.ScalarCreditRiskExample$$anonfun$org$apache$ignite$scalar$examples$ScalarCreditRiskExample$$closures$1$$anonfun$apply$mcVI$sp$1.apply$mcD$sp(ScalarCreditRiskExample.scala:99)
> 	at org.apache.ignite.scalar.examples.ScalarCreditRiskExample$$anonfun$org$apache$ignite$scalar$examples$ScalarCreditRiskExample$$closures$1$$anonfun$apply$mcVI$sp$1.apply(ScalarCreditRiskExample.scala:99)
> 	at org.apache.ignite.scalar.examples.ScalarCreditRiskExample$$anonfun$org$apache$ignite$scalar$examples$ScalarCreditRiskExample$$closures$1$$anonfun$apply$mcVI$sp$1.apply(ScalarCreditRiskExample.scala:99)
> 	at org.apache.ignite.scalar.lang.ScalarOutClosure.call(ScalarOutClosure.scala:45)
> 	at org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.execute(GridClosureProcessor.java:1789)
> 	... 13 more
> >>> Finished calculating portfolio risk [risk=578073.772516016, time=4440ms]
> [13:57:45] Ignite node stopped OK [uptime=00:00:04:666]
> {noformat}
> ---------------------------------------------
> EXPECTED RESULT
> ---------------------------------------------
> Example is passed without any exceptions



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

Mime
View raw message