JPPF Issue Tracker
star_faded.png
Please log in to bookmark issues
bug_report_small.png
CLOSED  Bug report JPPF-377  -  Issues in node and server upon client disconnection
Posted Mar 14, 2015 - updated Mar 14, 2015
icon_info.png This issue has been closed with status "Closed" and resolution "RESOLVED".
Issue details
  • Type of issue
    Bug report
  • Status
     
    Closed
  • Assigned to
     lolo4j
  • Progress
       
  • Type of bug
    Not triaged
  • Likelihood
    Not triaged
  • Effect
    Not triaged
  • Posted by
     lolo4j
  • Owned by
    Not owned by anyone
  • Category
    Core
  • Resolution
    RESOLVED
  • Priority
    Normal
  • Reproducability
    Always
  • Severity
    Normal
  • Targetted for
    icon_milestones.png JPPF 3.3.x
Issue description
In the following scenario:
  • nodes have jppf-server.jar, jppf-common.jar and the classes for the tasks in their local classpath, and they are configured with "jppf.classloader.delegation = url"
  • a non-blocking job with getSLA().setCancelUponClientDisconnect(false) is submitted
  • the client is closed or terminated before the job has finished executing
I see the following exception in the node's log:
2015-03-14 08:06:21,274 [ERROR][node processing-2   ][org.jppf.server.node.JPPFContainer.call(211)]: Could not load class 'org.jppf.utils.ObjectSerializerImpl' [object index: 0]
java.lang.ClassNotFoundException: Could not load class 'org.jppf.utils.ObjectSerializerImpl'
  at org.jppf.classloader.AbstractJPPFClassLoader.findClass(AbstractJPPFClassLoader.java:152)
  at org.jppf.classloader.AbstractJPPFClassLoader.loadJPPFClass(AbstractJPPFClassLoader.java:91)
  at org.jppf.utils.SerializationHelperImpl.getSerializer(SerializationHelperImpl.java:58)
  at org.jppf.server.node.JPPFContainer$ObjectDeserializationTask.call(JPPFContainer.java:202)
  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
  at java.lang.Thread.run(Thread.java:662)
I also see this exception in the server's log, which causes the node to reconnect:
2015-03-14 08:11:14,481 [ERROR][NodeJobServer-4     ][org.jppf.server.nio.nodeserver.WaitingResultsState.performTransition(102)]: 
java.lang.NullPointerException
  at org.jppf.server.nio.client.CompletionListener.taskCompleted(CompletionListener.java:78)
  at org.jppf.server.protocol.ServerTaskBundleClient.fireTasksCompleted(ServerTaskBundleClient.java:334)
  at org.jppf.server.protocol.ServerTaskBundleClient.resultReceived(ServerTaskBundleClient.java:216)
  at org.jppf.server.protocol.ServerJob.resultsReceived(ServerJob.java:246)
  at org.jppf.server.protocol.ServerTaskBundleNode.resultsReceived(ServerTaskBundleNode.java:181)
  at org.jppf.server.nio.nodeserver.WaitingResultsState.performTransition(WaitingResultsState.java:83)
  at org.jppf.server.nio.nodeserver.WaitingResultsState.performTransition(WaitingResultsState.java:1)
  at org.jppf.server.nio.StateTransitionTask.run(StateTransitionTask.java:82)
  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
  at java.lang.Thread.run(Thread.java:662)
Steps to reproduce this issue
Follow the scenario explained in the bug description

#4
Comment posted by
 lolo4j
Mar 14, 09:24
The first exception (ClassNotFoundException in the node) is fixed by using the following new property in the node's configuration:
jppf.remote.load.serializer = false
The default value is "true" to preserve the existing behavior
#5
Comment posted by
 lolo4j
Mar 14, 09:30
fixed in branch b3.3 revision 3628