JPPF Issue Tracker
JPPF (jppf)
August 04, 2018
icon_milestone.png 22:19 JPPF 5.2.9
A new milestone has been reached
August 01, 2018
icon_milestone.png 22:00 JPPF 4.0
A new milestone has been reached
task_tiny.png 06:16  Task JPPF-438 - Normalize the package names in common and node modules
lolocohen : Issue closed
July 31, 2018
feature_request_tiny.png 07:58  Feature request JPPF-543 - Enable P2P connectivity between drivers to be used only for failover
lolocohen : Issue closed
task_tiny.png 04:57  Task JPPF-541 - Upgrade third-party libraries and update build accordingly
lolocohen : Issue closed
July 25, 2018
bug_report_tiny.png 08:02  Bug report JPPF-542 - Job dispatch expiration does not work in multi-server topology
lolocohen : Issue closed
feature_request_tiny.png 06:39  Feature request JPPF-543 - Enable P2P connectivity between drivers to be used only for failover
lolocohen : Issue created
We propose to add a configuration property in the JPPF driver, to specify that it should route jobs to other drivers only when its number of nodes is at most a given threshold. For example, if we define:
jppf.peers.load.balance.threshold = 3
then the driver will only route jobs to peer drivers when it has less than 3 nodes. The default value would be infinite (say Integer.MAX_VALUE) to preserve the current default behavior. A value of 0 or less would mean that jobs are never routed to a peer driver.
July 24, 2018
bug_report_tiny.png 08:54  Bug report JPPF-542 - Job dispatch expiration does not work in multi-server topology
lolocohen : Issue created
When setting [https://www.jppf.org/doc/6.0/index.php?title=Job_Service_Level_Agreement#Expiration_of_job_dispatches '''job dispatch expiration'''] in a multi-server toplogy where the serers communicate with each other, if a job is dispatched by driver D1 to its peer driver D2, then upon expiration the job is not cancelled is D2 and remains stuck there unless manually cancelled (via the admin console or via API).
July 22, 2018
task_tiny.png 07:01  Task JPPF-541 - Upgrade third-party libraries and update build accordingly
lolocohen : Issue created
It's as good a time as ever to upgrade our third-party libs and try to update the build to avoid having the libraries in the SCM
July 21, 2018
icon_milestone.png 18:43 JPPF 5.2.2
A new milestone has been reached
icon_milestone.png 18:07 JPPF 5.1.6
A new milestone has been reached
icon_milestone.png 12:23 JPPF 5.2.5
A new milestone has been reached
icon_milestone.png 11:22 JPPF 5.2.1
A new milestone has been reached
icon_milestone.png 10:59 JPPF 2.5.5
A new milestone has been reached
icon_milestone.png 10:33 JPPF 5.1.2
A new milestone has been reached
icon_milestone.png 10:09 JPPF 5.1.7
A new milestone has been reached
icon_milestone.png 09:46 JPPF 5.2.7
A new milestone has been reached
icon_milestone.png 09:36 JPPF 4.1
A new milestone has been reached
icon_milestone.png 09:26 JPPF 5.2.3
A new milestone has been reached
icon_milestone.png 09:11 JPPF 5.1.4
A new milestone has been reached
icon_milestone.png 08:23 JPPF 5.2.6
A new milestone has been reached
icon_milestone.png 08:12 JPPF 5.2.4
A new milestone has been reached
icon_milestone.png 07:35 JPPF 5.1.3
A new milestone has been reached
icon_milestone.png 07:11 JPPF 5.1.5
A new milestone has been reached
icon_milestone.png 07:04 JPPF 5.2.8
A new milestone has been reached
icon_milestone.png 06:43 JPPF 4.2
A new milestone has been reached
July 18, 2018
icon_milestone.png 03:27 JPPF 5.2
A new milestone has been reached
icon_milestone.png 03:13 JPPF 3.2
A new milestone has been reached
icon_milestone.png 03:13 JPPF 5.0
A new milestone has been reached
icon_milestone.png 03:00 JPPF 5.1.1
A new milestone has been reached
icon_milestone.png 02:54 JPPF 3.3
A new milestone has been reached
July 13, 2018
feature_request_tiny.png 19:07  Feature request JPPF-17 - Recover from hard failures on the client side
lolocohen : Issue closed
July 12, 2018
feature_request_tiny.png 08:24  Feature request JPPF-540 - Make driver discovery from the client config a built-in driver discovery implementation
lolocohen : Issue closed
July 10, 2018
feature_request_tiny.png 08:24  Feature request JPPF-540 - Make driver discovery from the client config a built-in driver discovery implementation
lolocohen : Issue created
Currently in the JPPF client, the discovery of drivers from the configuration is a separate mechanism from the [https://www.jppf.org/doc/6.0/index.php?title=Custom_discovery_of_remote_drivers '''driver discovery'''] extension. We want to make it a built-in default implementation instead.
July 09, 2018
feature_request_tiny.png 07:37  Feature request JPPF-526 - Enable NIO-based recovery/heartbeat mechanism
lolocohen : Issue closed
July 03, 2018
enhancement_tiny.png 08:13  Enhancement JPPF-539 - Location API - Maven central location
lolocohen : Issue closed
enhancement_tiny.png 06:17  Enhancement JPPF-539 - Location API - Maven central location
lolocohen : Issue created
We propose to add a new implementation of the [https://www.jppf.org/javadoc/6.0/index.html?org/jppf/location/Location.html '''Location'''] interface, named MavenCentralLocation. This class inherits from [https://www.jppf.org/javadoc/6.0/index.html?org/jppf/location/URLLocation.html '''URLLocation'''] and merely add constructors to allow specifying artifacts to download from Maven central in the form "groupId:artifactId:version".

Example:
// create a Maven central location with default "jar" extension/packaging
Location loc = new MavenCentralLocation("org.jppf:jppf-node:5.2.9");
// download from Maven central and copy to the file lib/jppf-node-5.2.9.jar
loc.copyTo(new FileLocation("lib/jppf-node-5.2.9.jar"));
Additionally, the documentation section on the lcoation API should be moved from the "Development guide > Task objects" page to its own page under "Development guide"
July 02, 2018
feature_request_tiny.png 19:36  Feature request JPPF-526 - Enable NIO-based recovery/heartbeat mechanism
lolocohen : Issue closed
June 28, 2018
bug_report_tiny.png 07:23  Bug report JPPF-538 - Deadlock after call of hasAvailableConnection
lolocohen : Issue closed
June 27, 2018
bug_report_tiny.png 17:02  Bug report JPPF-538 - Deadlock after call of hasAvailableConnection
igor2 : Issue created
Hi,

we get sometimes the following deadlock, when we send new tasks to our jppf server. Our code checks before the start, if there are any available connections to jppf server by JPPFClient#hasAvailableConnection. In case that there are no connections available the task is canceled.

Sometimes our application hangs in this process. jstack shows that there is a deadlock between TaskQueueChecker-thread and the thread, where hasAvailableConnection is called.
Java stack information:
===================================================
"ChannelsExecutor-0001":
at org.jppf.client.balancer.queue.TaskQueueChecker$2.run(TaskQueueChecker.java:177)
- waiting to lock <0x000000064db25c90> (a org.jppf.utils.collections.SetSortedMap)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
"TaskQueueChecker":
at org.jppf.utils.ThreadSynchronization.wakeUp(ThreadSynchronization.java:70)
- waiting to lock <0x000000064db238d8> (a org.jppf.client.balancer.JobManagerClient)
at org.jppf.client.AbstractGenericClient.statusChanged(AbstractGenericClient.java:435)
at org.jppf.client.AbstractJPPFClientConnection.fireStatusChanged(AbstractJPPFClientConnection.java:118)
at org.jppf.client.AbstractJPPFClientConnection.setStatus(AbstractJPPFClientConnection.java:98)
at org.jppf.client.JPPFClientConnectionImpl.setStatus(JPPFClientConnectionImpl.java:34)
at org.jppf.client.AbstractJPPFClientConnection.processStatusChanged(AbstractJPPFClientConnection.java:171)
at org.jppf.client.AbstractJPPFClientConnection.taskServerConnectionStatusChanged(AbstractJPPFClientConnection.java:158)
at org.jppf.client.JPPFClientConnectionImpl$2.statusChanged(JPPFClientConnectionImpl.java:87)
at org.jppf.client.AbstractClientConnectionHandler.fireStatusChanged(AbstractClientConnectionHandler.java:156)
at org.jppf.client.AbstractClientConnectionHandler.setStatus(AbstractClientConnectionHandler.java:123)
at org.jppf.client.balancer.ChannelWrapperRemote.setStatus(ChannelWrapperRemote.java:100)
at org.jppf.client.balancer.ChannelWrapperRemote.submit(ChannelWrapperRemote.java:125)
at org.jppf.client.balancer.ChannelWrapperRemote.submit(ChannelWrapperRemote.java:39)
at org.jppf.client.balancer.queue.TaskQueueChecker.dispatchJobToChannel(TaskQueueChecker.java:301)
- locked <0x000000064db26ab0> (a org.jppf.client.balancer.ChannelWrapperRemote)
at org.jppf.client.balancer.queue.TaskQueueChecker.dispatch(TaskQueueChecker.java:233)
- locked <0x000000064db25c90> (a org.jppf.utils.collections.SetSortedMap)
at org.jppf.client.balancer.queue.TaskQueueChecker.run(TaskQueueChecker.java:201)
at java.lang.Thread.run(Thread.java:748)
"__ejb-thread-pool16":
at org.jppf.client.balancer.queue.TaskQueueChecker.hasIdleChannel(TaskQueueChecker.java:190)
- waiting to lock <0x000000064db25c90> (a org.jppf.utils.collections.SetSortedMap)
at org.jppf.client.balancer.JobManagerClient.hasAvailableConnection(JobManagerClient.java:385)
- locked <0x000000064db238d8> (a org.jppf.client.balancer.JobManagerClient)
at org.jppf.client.AbstractGenericClient.hasAvailableConnection(AbstractGenericClient.java:421)
at de.eagle.platform.outbound.sendout.JPPFGridStrategy2.connect(JPPFGridStrategy2.java:62)
- locked <0x000000064dec04b8> (a java.lang.Class for de.eagle.platform.outbound.sendout.JPPFGridStrategy2)
at de.eagle.platform.outbound.sendout.Grid.connect(Grid.java:33)
at de.eagle.platform.outbound.sendout.SendoutJob.execute(SendoutJob.java:69)
at de.eagle.jobcontrol.server.JobLauncher.startJob(JobLauncher.java:57)
at sun.reflect.GeneratedMethodAccessor141.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081)
at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1153)
at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4836)
at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:656)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:836)
at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608)
at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:73)
at org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:52)
at sun.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:895)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:835)
at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140)
at sun.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:895)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:835)
at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:374)
at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4808)
at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4796)
at com.sun.ejb.containers.EjbAsyncTask.call(EjbAsyncTask.java:101)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Show moreaction_add_small.png