JPPF Issue Tracker
JPPF (jppf)
April 19, 2017
bug_report_tiny.png 18:50  Bug report JPPF-500 - Node Persistent Data Casting error
lolocohen : Assignee changed: lolo4j
bug_report_tiny.png 11:16  Bug report JPPF-500 - Node Persistent Data Casting error
steveoh444 : Description updated
bug_report_tiny.png 11:14  Bug report JPPF-500 - Node Persistent Data Casting error
steveoh444 : Issue created
Referring to the Snippet in [http://www.jppf.org/forums/index.php?topic=748.0] i made up a Task wich is using [https://github.com/brettwooldridge/HikariCP HikariCP] as ConnectionPool.
When start the Client code everything is fine. But when i want to start it again i get following Output:


cd C:\Users\swende01\Documents\NetBeansProjects\JPPFDBm; "JAVA_HOME=C:\\Program Files\\Java\\jdk1.8.0_121" cmd /c "\"\"C:\\Program Files\\NetBeans 8.2\\java\\maven\\bin\\mvn.bat\" -Dexec.args=\"-Xmx64m -Dlog4j.configuration=log4j.properties -Djppf.config=jppf.properties -Djava.util.logging.config.file=config/logging.properties -classpath %classpath de.itout.jppf.test.jppfdbm.Runner\" -Dexec.executable=\"C:\\Program Files\\Java\\jdk1.8.0_121\\bin\\java.exe\" -Dmaven.ext.class.path=\"C:\\Program Files\\NetBeans 8.2\\java\\maven-nblib\\netbeans-eventspy.jar\" -Dfile.encoding=UTF-8 -Djava.net.useSystemProxies=true process-classes org.codehaus.mojo:exec-maven-plugin:1.2.1:exec\""
Scanning for projects...

------------------------------------------------------------------------
Building JPPFDBm 1.0-SNAPSHOT
------------------------------------------------------------------------

--- maven-resources-plugin:2.5:resources (default-resources) @ JPPFDBm ---
[debug] execute contextualize
Using 'UTF-8' encoding to copy filtered resources.
skip non existing resourceDirectory C:\Users\swende01\Documents\NetBeansProjects\JPPFDBm\src\main\resources

--- maven-compiler-plugin:2.3.2:compile (default-compile) @ JPPFDBm ---
Nothing to compile - all classes are up to date

--- exec-maven-plugin:1.2.1:exec (default-cli) @ JPPFDBm ---
log4j:WARN No appenders could be found for logger (org.jppf.utils.JPPFConfiguration).
log4j:WARN Please initialize the log4j system properly.
client process id: 1088, uuid: BDB1A448-26B2-738A-C31A-AF1B490F1FFE
[client: jppf_discovery-1-1 - ClassServer] Attempting connection to the class server at localhost:11111
[client: jppf_discovery-1-1 - ClassServer] Reconnected to the class server
[client: jppf_discovery-1-1 - TasksServer] Attempting connection to the task server at localhost:11111
[client: jppf_discovery-1-1 - TasksServer] Reconnected to the JPPF task server
[client: jppf_discovery-1-2 - ClassServer] Attempting connection to the class server at localhost:11111
[client: jppf_discovery-1-2 - ClassServer] Reconnected to the class server
[client: jppf_discovery-1-2 - TasksServer] Attempting connection to the task server at localhost:11111
[client: jppf_discovery-1-2 - TasksServer] Reconnected to the JPPF task server
[client: jppf_discovery-1-3 - ClassServer] Attempting connection to the class server at localhost:11111
[client: jppf_discovery-1-3 - ClassServer] Reconnected to the class server
[client: jppf_discovery-1-3 - TasksServer] Attempting connection to the task server at localhost:11111
[client: jppf_discovery-1-3 - TasksServer] Reconnected to the JPPF task server
[client: jppf_discovery-1-4 - ClassServer] Attempting connection to the class server at localhost:11111
[client: jppf_discovery-1-4 - ClassServer] Reconnected to the class server
[client: jppf_discovery-1-4 - TasksServer] Attempting connection to the task server at localhost:11111
[client: jppf_discovery-1-4 - TasksServer] Reconnected to the JPPF task server
[client: jppf_discovery-1-5 - ClassServer] Attempting connection to the class server at localhost:11111
[client: jppf_discovery-1-5 - ClassServer] Reconnected to the class server
[client: jppf_discovery-1-5 - TasksServer] Attempting connection to the task server at localhost:11111
[client: jppf_discovery-1-5 - TasksServer] Reconnected to the JPPF task server
Doing something while the jobs are executing ...
Results for job 'Template concurrent job 1' :
Template concurrent job 1 - DB task, an exception was raised: com.zaxxer.hikari.HikariDataSource cannot be cast to com.zaxxer.hikari.HikariDataSource
Results for job 'Template concurrent job 2' :
Template concurrent job 2 - DB task, an exception was raised: com.zaxxer.hikari.HikariDataSource cannot be cast to com.zaxxer.hikari.HikariDataSource
Results for job 'Template concurrent job 3' :
Template concurrent job 3 - DB task, an exception was raised: com.zaxxer.hikari.HikariDataSource cannot be cast to com.zaxxer.hikari.HikariDataSource
Results for job 'Template concurrent job 4' :
Template concurrent job 4 - DB task, an exception was raised: com.zaxxer.hikari.HikariDataSource cannot be cast to com.zaxxer.hikari.HikariDataSource
Results for job 'Template concurrent job 5' :
Template concurrent job 5 - DB task, an exception was raised: com.zaxxer.hikari.HikariDataSource cannot be cast to com.zaxxer.hikari.HikariDataSource
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
Total time: 10.582s
Finished at: Wed Apr 19 10:02:18 CEST 2017
Final Memory: 5M/123M
------------------------------------------------------------------------


Maybe the Classloader of the Node gets the bytecode a second time and isnt able to cast the "old" stored object into the new pulled Class?

The main goal is to made up a connectionpool on a node and let the task on the node do something on the database with different clients.


=== The Database ===


CREATE TABLE JPPFTEST (
IDENT numeric(8,0) not null,
RES VARCHAR(255),
CONSTRAINT PK_JPPFTEST PRIMARY KEY
(IDENT));


=== The code of the Task ===


package de.itout.jppf.test.jppfdbm;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import java.io.UnsupportedEncodingException;
import java.net.InetAddress;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.jppf.node.protocol.AbstractTask;
import org.jppf.node.NodeRunner;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author swende01
*/
public class DBTask extends AbstractTask {

@Override
public void run() {
System.out.println("running task:" + this.getId());
System.out.println("calling for datasource");
HikariDataSource ds = getDataSource();
System.out.println("datasource returned");
if (ds == null) {
System.out.println("datasource==null");
}
try {
Connection conn = ds.getConnection();
System.out.println("connection created");
if (conn == null) {
System.out.println("conn==null");
}
String res = calculateHash();
Statement stmt = conn.createStatement();
if (stmt == null) {
System.out.println("stmt==null");
}
String host = InetAddress.getLocalHost().getHostName();
System.out.println("host:" + host);
String q = "INSERT INTO JPPFTEST VALUES ("+getNextID(conn)+",'" + res + "')";
System.out.println(q);
stmt.executeUpdate(q);
stmt.close();
stmt = null;
conn.close();
conn = null;
setResult(res);
} catch (Exception ex) {
System.out.println(ex);
}
}

private int getNextID(Connection con){
Statement stmt = null;
String query = "SELECT MAX(IDENT)+1 FROM JPPFTEST";
try {
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
int id = rs.getInt(1);
return id;
}
} catch (SQLException e) {
System.err.println(e);
} finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException ex) {
System.err.println(ex);
}
}
}
return -1;
}

private String calculateHash() {
System.out.println("Generate Random Numbers...");
double a = Math.random();
double b = Math.random();
System.out.println("Random Numbers are A="+a+" and B="+b);
MessageDigest md;
String result = "";
try {
md = MessageDigest.getInstance("SHA-256");
String text = a+""+b+"there is salt in the sea";
System.out.println("Encrypt the two numbers with a salt ["+text+"]");
md.update(text.getBytes("UTF-8"));
byte[] digest = md.digest();
result = String.format("%064x", new java.math.BigInteger(1, digest));
System.out.println("Encryted text is["+result+"]");
} catch (NoSuchAlgorithmException | UnsupportedEncodingException ex) {
System.err.println(ex);
}
return result;
}

protected static HikariDataSource setUpDataSource() {
HikariConfig config = new HikariConfig();
config.setJdbcUrl("SOMEJDBCURL");
config.setUsername("user");
config.setPassword("pw");
config.addDataSourceProperty("cachePrepStmts", "true");
config.addDataSourceProperty("prepStmtCacheSize", "250");
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");

HikariDataSource dataSource = new HikariDataSource(config);
NodeRunner.setPersistentData("datasource", dataSource);
return dataSource;
}

public synchronized static HikariDataSource getDataSource() {
System.out.println("returning dataSource");
HikariDataSource ds = (HikariDataSource) NodeRunner.getPersistentData("datasource");
if (ds == null) {
System.out.println("setting up dataSource");
ds = setUpDataSource();
}
return ds;
}
}


=== The Client Runner Class ===


/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package de.itout.jppf.test.jppfdbm;

import java.util.ArrayList;
import java.util.List;
import org.jppf.client.*;
import org.jppf.node.protocol.Task;

/**
*
* @author swende01
*/
public class Runner {

public static void main(String[] args) {

// create the JPPFClient. This constructor call causes JPPF to read the configuration file
// and connect with one or multiple JPPF drivers.
try (JPPFClient jppfClient = new JPPFClient()) {

// create a runner instance.
Runner runner = new Runner();

// create and execute a blocking job
// runner.executeBlockingJob(jppfClient);
// create and execute a non-blocking job
//runner.executeNonBlockingJob(jppfClient);
// create and execute 3 jobs concurrently
runner.executeMultipleConcurrentJobs(jppfClient, 5);

} catch (Exception e) {
e.printStackTrace();
}
}

public void executeMultipleConcurrentJobs(final JPPFClient jppfClient, final int numberOfJobs) throws Exception {
// ensure that the client connection pool has as many connections
// as the number of jobs to execute
ensureNumberOfConnections(jppfClient, numberOfJobs);

// this list will hold all the jobs submitted for execution,
// so we can later collect and process their results
final List jobList = new ArrayList<>(numberOfJobs);

// create and submit all the jobs
for (int i = 1; i <= numberOfJobs; i++) {
// create a job with a distinct name
JPPFJob job = createJob("Template concurrent job " + i);

// set the job in non-blocking (or asynchronous) mode.
job.setBlocking(false);

// submit the job for execution, without blocking the current thread
jppfClient.submitJob(job);

// add this job to the list
jobList.add(job);
}

// the non-blocking jobs are submitted asynchronously, we can do anything else in the meantime
System.out.println("Doing something while the jobs are executing ...");

// wait until the jobs are finished and process their results.
for (JPPFJob job : jobList) {
// wait if necessary for the job to complete and collect its results
List> results = job.awaitResults();

// process the job results
processExecutionResults(job.getName(), results);
}
}

/**
* Create a JPPF job that can be submitted for execution.
*
* @param jobName an arbitrary, human-readable name given to the job.
* @return an instance of the {@link org.jppf.client.JPPFJob JPPFJob} class.
* @throws Exception if an error occurs while creating the job or adding
* tasks.
*/
public JPPFJob createJob(final String jobName) throws Exception {
// create a JPPF job
JPPFJob job = new JPPFJob();
// give this job a readable name that we can use to monitor and manage it.
job.setName(jobName);

// add a task to the job.
Task task = job.add(new DBTask());
// provide a user-defined name for the task
task.setId(jobName + " - DB task");

// add more tasks here ...
// there is no guarantee on the order of execution of the tasks,
// however the results are guaranteed to be returned in the same order as the tasks.
return job;
}

/**
* Process the execution results of each submitted task.
*
* @param jobName the name of the job whose results are processed.
* @param results the tasks results after execution on the grid.
*/
public synchronized void processExecutionResults(final String jobName, final List> results) {
// print a results header
System.out.printf("Results for job '%s' :\n", jobName);
// process the results
for (Task task : results) {
String taskName = task.getId();
// if the task execution resulted in an exception
if (task.getThrowable() != null) {
// process the exception here ...
System.out.println(taskName + ", an exception was raised: " + task.getThrowable().getMessage());
} else {
// process the result here ...
System.out.println(taskName + ", execution result: " + task.getResult());
}
}
}

/**
* Ensure that the JPPF client has the desired number of connections.
*
* @param jppfClient the JPPF client which submits the jobs.
* @param numberOfConnections the desired number of connections.
* @throws Exception if any error occurs.
*/
public void ensureNumberOfConnections(final JPPFClient jppfClient, final int numberOfConnections) throws Exception {
// wait until the client has at least one connection pool with at least one avaialable connection
JPPFConnectionPool pool = jppfClient.awaitActiveConnectionPool();

// if the pool doesn't have the expected number of connections, change its size
if (pool.getConnections().size() != numberOfConnections) {
// set the pool size to the desired number of connections
pool.setSize(numberOfConnections);
}

// wait until all desired connections are available (ACTIVE status)
pool.awaitActiveConnections(Operator.AT_LEAST, numberOfConnections);
}
}
bug_report_tiny.png 11:14  Bug report JPPF-500 - Node Persistent Data Casting error
steveoh444 : 'JPPF 5.2.6' added
April 18, 2017
task_tiny.png 06:05  Task JPPF-499 - Simplify client internal code
lolocohen : Issue closed
task_tiny.png 06:05  Task JPPF-499 - Simplify client internal code
lolocohen : Status changed: New ⇒ Closed
task_tiny.png 06:05  Task JPPF-499 - Simplify client internal code
lolocohen : Resolution changed: Not determined ⇒ RESOLVED
task_tiny.png 06:05  Task JPPF-499 - Simplify client internal code
lolocohen : lolo4j ⇒ Not being worked on
April 17, 2017
task_tiny.png 10:06  Task JPPF-499 - Simplify client internal code
lolocohen : Assignee changed: lolo4j
task_tiny.png 10:06  Task JPPF-499 - Simplify client internal code
lolocohen : Issue created
Currently there is too much complexity in the handling of client connections to the drivers and their status. In particular, each JPPFClientConnection implementation holds 2 actual connections, both subclasses of AbstractClientConnectionHandler and each with their status listeners. The main connection status is set either directly or as a combination of the states of the two "sub-connections". In the former case, the sub-connections status becomes inconsistent with that of the main connection.

Overall, this complexity results in many observed problems in the client, especially when running the automated tests: deadlocks, race conditions, failures of the recovery and failover mechanisms.

What we propose is to remove the code that handle the status in the sub-connections (and thus in AbstractClientConnectionHandler) and only keep one source of status and associated events.

Additionally, the abstract class org.jppf.client.balancer.ChannelWrapper, subclassed as ChannelWrapperLocal and ChannelWrapperRemote, holds an executor filed of type ExecutorService defined as a single thread executor in both subclasses. Instead of a separate thread pool for each ChannelWrapper, we should make use of the executor held by the JPPFClient instance, and add proper synchronization if needed.
April 07, 2017
bug_report_tiny.png 08:04  Bug report JPPF-497 - 6.0 JMXDriverConnectionWrapper.restartShutdown(5000L, 0L) restarts the Driver
lolocohen : Status changed: New ⇒ Not a bug
bug_report_tiny.png 08:04  Bug report JPPF-497 - 6.0 JMXDriverConnectionWrapper.restartShutdown(5000L, 0L) restarts the Driver
lolocohen : Issue closed
bug_report_tiny.png 08:04  Bug report JPPF-497 - 6.0 JMXDriverConnectionWrapper.restartShutdown(5000L, 0L) restarts the Driver
lolocohen : Resolution changed: Not determined ⇒ NOT AN ISSUE
bug_report_tiny.png 08:04  Bug report JPPF-497 - 6.0 JMXDriverConnectionWrapper.restartShutdown(5000L, 0L) restarts the Driver
lolocohen : lolo4j ⇒ Not being worked on
bug_report_tiny.png 08:02  Bug report JPPF-498 - Client reconnect to driver failure
lolocohen : Issue closed
bug_report_tiny.png 08:02  Bug report JPPF-498 - Client reconnect to driver failure
lolocohen : Status changed: New ⇒ Closed
bug_report_tiny.png 08:02  Bug report JPPF-498 - Client reconnect to driver failure
lolocohen : Resolution changed: Not determined ⇒ RESOLVED
bug_report_tiny.png 08:02  Bug report JPPF-498 - Client reconnect to driver failure
lolocohen : lolo4j ⇒ Not being worked on
bug_report_tiny.png 07:27  Bug report JPPF-498 - Client reconnect to driver failure
lolocohen : Title updated
April 06, 2017
bug_report_tiny.png 07:03  Bug report JPPF-498 - Client reconnect to driver failure
lolocohen : Assignee changed: lolo4j
April 05, 2017
bug_report_tiny.png 11:49  Bug report JPPF-498 - Client reconnect to driver failure
steveoh444 : Issue created
We Testet this on 2 different machines.

Here the mixed output of client and node:


<[jppf_discovery-1-4 - ClassServer] caught java.io.EOFException: could only read 0 bytes out of 4, will re-initialise ...>
[client: jppf_discovery-1-4 - ClassServer] Attempting connection to the class server at FDAC8040.HR.LOCAL:11111
Apr 05, 2017 11:29:36 AM org.jppf.client.ClassServerDelegateImpl run
WARNING: [jppf_discovery-1-1 - ClassServer] caught java.io.EOFException: could only read 0 bytes out of 4, will re-initialise ...
Apr 05, 2017 11:29:36 AM org.jppf.client.ClassServerDelegateImpl init
INFO: [client: jppf_discovery-1-1 - ClassServer] Attempting connection to the class server at FDAC8040.HR.LOCAL:11111
Apr 05, 2017 11:29:36 AM org.jppf.client.ClassServerDelegateImpl run
WARNING: [jppf_discovery-1-5 - ClassServer] caught java.io.EOFException: could only read 0 bytes out of 4, will re-initialise ...
Apr 05, 2017 11:29:36 AM org.jppf.client.ClassServerDelegateImpl init
INFO: [client: jppf_discovery-1-5 - ClassServer] Attempting connection to the class server at FDAC8040.HR.LOCAL:11111
Apr 05, 2017 11:29:36 AM org.jppf.client.ClassServerDelegateImpl run
WARNING: [jppf_discovery-1-2 - ClassServer] caught java.io.EOFException: could only read 0 bytes out of 4, will re-initialise ...
Apr 05, 2017 11:29:36 AM org.jppf.client.ClassServerDelegateImpl init
INFO: [client: jppf_discovery-1-2 - ClassServer] Attempting connection to the class server at FDAC8040.HR.LOCAL:11111
Apr 05, 2017 11:29:36 AM org.jppf.client.ClassServerDelegateImpl run
WARNING: [jppf_discovery-1-3 - ClassServer] caught java.io.EOFException: could only read 0 bytes out of 4, will re-initialise ...
Apr 05, 2017 11:29:36 AM org.jppf.client.ClassServerDelegateImpl init
INFO: [client: jppf_discovery-1-3 - ClassServer] Attempting connection to the class server at FDAC8040.HR.LOCAL:11111
Apr 05, 2017 11:29:36 AM org.jppf.client.ClassServerDelegateImpl run
WARNING: [jppf_discovery-1-4 - ClassServer] caught java.io.EOFException: could only read 0 bytes out of 4, will re-initialise ...
Apr 05, 2017 11:29:36 AM org.jppf.client.ClassServerDelegateImpl init
INFO: [client: jppf_discovery-1-4 - ClassServer] Attempting connection to the class server at FDAC8040.HR.LOCAL:11111
Attempting connection to the class server at 10.225.120.160:11111
process exited with code 0
Apr 05, 2017 11:29:39 AM GenericClientCommunicatorAdmin close
INFO: java.io.IOException: The connection is not currently established.
java.io.IOException: The connection is not currently established.
at com.sun.jmx.remote.generic.ClientSynchroMessageConnectionImpl.checkState(ClientSynchroMessageConnectionImpl.java:514)
at com.sun.jmx.remote.generic.ClientSynchroMessageConnectionImpl.sendOneWay(ClientSynchroMessageConnectionImpl.java:217)
at javax.management.remote.generic.GenericConnector.close(GenericConnector.java:292)
at javax.management.remote.generic.GenericConnector.close(GenericConnector.java:265)
at javax.management.remote.generic.GenericClientCommunicatorAdmin.doStop(GenericClientCommunicatorAdmin.java:145)
at com.sun.jmx.remote.opt.internal.ClientCommunicatorAdmin.restart(ClientCommunicatorAdmin.java:238)
at com.sun.jmx.remote.opt.internal.ClientCommunicatorAdmin.gotIOException(ClientCommunicatorAdmin.java:133)
at javax.management.remote.generic.GenericConnector$RequestHandler.execute(GenericConnector.java:372)
at com.sun.jmx.remote.generic.ClientSynchroMessageConnectionImpl$RemoteJob.run(ClientSynchroMessageConnectionImpl.java:477)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
resetting with stopJmx=true
node process id: 10724, uuid: A647D6AA-9961-27FF-7EB9-E7F7C8B5E311
Attempting connection to the class server at localhost:11111
resetting with stopJmx=true
node process id: 10724, uuid: A647D6AA-9961-27FF-7EB9-E7F7C8B5E311
Attempting connection to the class server at localhost:11111
resetting with stopJmx=true
node process id: 10724, uuid: A647D6AA-9961-27FF-7EB9-E7F7C8B5E311
Attempting connection to the class server at localhost:11111
resetting with stopJmx=true
node process id: 10724, uuid: A647D6AA-9961-27FF-7EB9-E7F7C8B5E311
Attempting connection to the class server at localhost:11111
resetting with stopJmx=true
node process id: 10724, uuid: A647D6AA-9961-27FF-7EB9-E7F7C8B5E311
Attempting connection to the class server at localhost:11111
resetting with stopJmx=true
node process id: 10724, uuid: A647D6AA-9961-27FF-7EB9-E7F7C8B5E311
Attempting connection to the class server at localhost:11111
resetting with stopJmx=true
node process id: 10724, uuid: A647D6AA-9961-27FF-7EB9-E7F7C8B5E311
Attempting connection to the class server at localhost:11111
resetting with stopJmx=true
node process id: 10724, uuid: A647D6AA-9961-27FF-7EB9-E7F7C8B5E311
Attempting connection to the class server at localhost:11111
resetting with stopJmx=true
node process id: 10724, uuid: A647D6AA-9961-27FF-7EB9-E7F7C8B5E311
Attempting connection to the class server at 10.225.120.160:11111
[client: jppf_discovery-1-1 - ClassServer] Reconnected to the class server
[client: jppf_discovery-1-4 - ClassServer] Reconnected to the class server
[client: jppf_discovery-1-3 - ClassServer] Reconnected to the class server
[client: jppf_discovery-1-5 - ClassServer] Reconnected to the class server
Apr 05, 2017 11:30:41 AM org.jppf.client.ClassServerDelegateImpl init
INFO: [client: jppf_discovery-1-1 - ClassServer] Reconnected to the class server
Apr 05, 2017 11:30:41 AM org.jppf.client.ClassServerDelegateImpl init
INFO: [client: jppf_discovery-1-4 - ClassServer] Reconnected to the class server
Apr 05, 2017 11:30:41 AM org.jppf.client.ClassServerDelegateImpl init
INFO: [client: jppf_discovery-1-3 - ClassServer] Reconnected to the class server
Apr 05, 2017 11:30:41 AM org.jppf.client.ClassServerDelegateImpl init
INFO: [client: jppf_discovery-1-5 - ClassServer] Reconnected to the class server
Apr 05, 2017 11:30:41 AM org.jppf.client.ClassServerDelegateImpl init
INFO: [client: jppf_discovery-1-2 - ClassServer] Reconnected to the class server
[client: jppf_discovery-1-2 - ClassServer] Reconnected to the class server
RemoteClassLoaderConnection: Reconnected to the class server
JPPF Node management initialized on port 12001
Attempting connection to the node server at 10.225.120.160:11111
Reconnected to the node server
Node successfully initialized
Apr 05, 2017 11:31:38 AM org.jppf.client.balancer.ChannelWrapperRemote$RemoteRunnable run
WARNING: java.net.SocketException: Software caused connection abort: socket write error
Apr 05, 2017 11:31:38 AM org.jppf.client.balancer.ChannelWrapperRemote$RemoteRunnable run
SEVERE: future already removed
java.lang.IllegalStateException: future already removed
at org.jppf.client.balancer.ClientJob.taskCompleted(ClientJob.java:327)
at org.jppf.client.balancer.ClientTaskBundle.taskCompleted(ClientTaskBundle.java:174)
at org.jppf.client.balancer.ChannelWrapperRemote$RemoteRunnable.run(ChannelWrapperRemote.java:250)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

Apr 05, 2017 11:31:38 AM org.jppf.client.TaskServerConnectionHandler init
INFO: [client: jppf_discovery-1-3 - TasksServer] Attempting connection to the task server at FDAC8040.HR.LOCAL:11111
Apr 05, 2017 11:31:38 AM org.jppf.client.TaskServerConnectionHandler init
INFO: [client: jppf_discovery-1-3 - TasksServer] Reconnected to the JPPF task server

[client: jppf_discovery-1-3 - TasksServer] Attempting connection to the task server at FDAC8040.HR.LOCAL:11111
java.lang.IllegalStateException: future already removed
at org.jppf.client.balancer.ClientJob.taskCompleted(ClientJob.java:327)
at org.jppf.client.balancer.ClientTaskBundle.taskCompleted(ClientTaskBundle.java:174)
at org.jppf.client.balancer.ChannelWrapperRemote$RemoteRunnable.run(ChannelWrapperRemote.java:250)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
Truncated. see log file for complete stacktrace
>
[client: jppf_discovery-1-3 - TasksServer] Reconnected to the JPPF task server

bug_report_tiny.png 11:49  Bug report JPPF-498 - Client reconnect to driver failure
steveoh444 : 'JPPF 5.2.6' added
enhancement_tiny.png 07:59  Enhancement JPPF-492 - Monitoring API: move collapsed state handling out of TopologyDriver class
lolocohen : Issue closed
enhancement_tiny.png 07:59  Enhancement JPPF-492 - Monitoring API: move collapsed state handling out of TopologyDriver class
lolocohen : Status changed: New ⇒ Closed
enhancement_tiny.png 07:59  Enhancement JPPF-492 - Monitoring API: move collapsed state handling out of TopologyDriver class
lolocohen : Resolution changed: Not determined ⇒ RESOLVED
enhancement_tiny.png 07:59  Enhancement JPPF-492 - Monitoring API: move collapsed state handling out of TopologyDriver class
lolocohen : lolo4j ⇒ Not being worked on
enhancement_tiny.png 07:59  Enhancement JPPF-492 - Monitoring API: move collapsed state handling out of TopologyDriver class
lolocohen : Time spent: No time spent ⇒ 1 hour
enhancement_tiny.png 07:58  Enhancement JPPF-492 - Monitoring API: move collapsed state handling out of TopologyDriver class
lolocohen : Assignee changed: lolo4j
April 04, 2017
bug_report_tiny.png 19:11  Bug report JPPF-497 - 6.0 JMXDriverConnectionWrapper.restartShutdown(5000L, 0L) restarts the Driver
lolocohen : Assignee changed: lolo4j
bug_report_tiny.png 17:28  Bug report JPPF-497 - 6.0 JMXDriverConnectionWrapper.restartShutdown(5000L, 0L) restarts the Driver
steveoh444 : Issue created
In my test with the Nighly Build from 04.04.2017 the restartShutdown of the Driver restarts the Driver instead of shutting it down forever.

The Admin UI Shutdown works.

Exit Code is 2 wich means the org.jppf.server.ShutdownRestartTask what is triggert, musst be set false from the MBean.

I did not test other Releases.

Thanks in advance

Stefan Wendelmann
bug_report_tiny.png 17:28  Bug report JPPF-497 - 6.0 JMXDriverConnectionWrapper.restartShutdown(5000L, 0L) restarts the Driver
steveoh444 : 'JPPF 5.2.6' added
April 02, 2017
icon_build.png 22:00 JPPF 5.2.6
New version released
icon_build.png 21:30 JPPF 5.1.6
New version released
enhancement_tiny.png 06:59  Enhancement JPPF-494 - Extend the driver's JobTaskListener facility
lolocohen : Issue closed
enhancement_tiny.png 06:59  Enhancement JPPF-494 - Extend the driver's JobTaskListener facility
lolocohen : Status changed: New ⇒ Closed
enhancement_tiny.png 06:59  Enhancement JPPF-494 - Extend the driver's JobTaskListener facility
lolocohen : Resolution changed: Not determined ⇒ RESOLVED
enhancement_tiny.png 06:58  Enhancement JPPF-494 - Extend the driver's JobTaskListener facility
lolocohen : 'JPPF trunk' -> 'Done
enhancement_tiny.png 06:58  Enhancement JPPF-494 - Extend the driver's JobTaskListener facility
lolocohen : 'JPPF 5.2.5' -> 'Done
enhancement_tiny.png 06:58  Enhancement JPPF-494 - Extend the driver's JobTaskListener facility
lolocohen : 'JPPF trunk' confirmed
enhancement_tiny.png 06:58  Enhancement JPPF-494 - Extend the driver's JobTaskListener facility
lolocohen : 'JPPF 5.2.5' confirmed
enhancement_tiny.png 06:58  Enhancement JPPF-494 - Extend the driver's JobTaskListener facility
lolocohen : 'JPPF trunk' added
enhancement_tiny.png 06:57  Enhancement JPPF-494 - Extend the driver's JobTaskListener facility
lolocohen : Status changed: Closed ⇒ New
March 10, 2017
icon_build.png 10:00 JPPF 5.2.5
New version released
January 18, 2017
icon_build.png 10:00 JPPF 5.2.4
New version released
January 07, 2017
icon_milestone.png 13:15 JPPF 5.1.5
A new milestone has been reached
January 05, 2017
icon_milestone.png 22:35 JPPF 4.2.4
A new milestone has been reached
November 27, 2016
icon_build.png 11:00 JPPF 5.2.3
New version released
November 13, 2016
icon_milestone.png 08:09 JPPF 5.0.4
A new milestone has been reached
November 09, 2016
icon_milestone.png 17:29 JPPF 5.0.2
A new milestone has been reached
October 16, 2016
icon_milestone.png 01:33 JPPF 4.2.1
A new milestone has been reached
icon_milestone.png 01:29 JPPF 4.2.5
A new milestone has been reached
icon_milestone.png 01:08 JPPF 4.2.3
A new milestone has been reached
October 15, 2016
icon_milestone.png 18:55 JPPF 5.2
A new milestone has been reached
icon_milestone.png 10:41 JPPF 4.1
A new milestone has been reached
icon_milestone.png 08:42 JPPF 5.0
A new milestone has been reached
icon_milestone.png 07:14 JPPF 2.5.5
A new milestone has been reached
October 14, 2016
icon_milestone.png 12:23 JPPF 3.3
A new milestone has been reached
icon_milestone.png 12:01 JPPF 4.0
A new milestone has been reached
Show moreaction_add_small.png