This is an automated email from the ASF dual-hosted git repository. marcuse pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-diff.git
The following commit(s) were added to refs/heads/master by this push: new b933540 Allow diff tool to run in-jvm multiple times, and resolve some conflicting shading b933540 is described below commit b933540469dfccc48e2c35a93cd6807784feb16b Author: Doug Rohrer <droh...@apple.com> AuthorDate: Tue Jan 7 14:58:09 2020 -0500 Allow diff tool to run in-jvm multiple times, and resolve some conflicting shading closes #4 --- .../java/org/apache/cassandra/diff/DiffJob.java | 3 ++ .../java/org/apache/cassandra/diff/Differ.java | 3 ++ .../org/apache/cassandra/diff/JobMetadataDb.java | 33 ++++++++++++++++------ 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/spark-job/src/main/java/org/apache/cassandra/diff/DiffJob.java b/spark-job/src/main/java/org/apache/cassandra/diff/DiffJob.java index bb14c25..26a74e6 100644 --- a/spark-job/src/main/java/org/apache/cassandra/diff/DiffJob.java +++ b/spark-job/src/main/java/org/apache/cassandra/diff/DiffJob.java @@ -149,7 +149,10 @@ public class DiffJob { throw new RuntimeException("Diff job failed", e); } finally { if (sc.isLocal()) + { Differ.shutdown(); + JobMetadataDb.ProgressTracker.resetStatements(); + } } } diff --git a/spark-job/src/main/java/org/apache/cassandra/diff/Differ.java b/spark-job/src/main/java/org/apache/cassandra/diff/Differ.java index 49576a2..2272b44 100644 --- a/spark-job/src/main/java/org/apache/cassandra/diff/Differ.java +++ b/spark-job/src/main/java/org/apache/cassandra/diff/Differ.java @@ -307,14 +307,17 @@ public class Differ implements Serializable if (srcDiffCluster != null) { srcDiffCluster.stop(); srcDiffCluster.close(); + srcDiffCluster = null; } if (targetDiffCluster != null) { targetDiffCluster.stop(); targetDiffCluster.close(); + targetDiffCluster = null; } if (journalSession != null) { journalSession.close(); journalSession.getCluster().close(); + journalSession = null; } COMPARISON_EXECUTOR.shutdown(); } diff --git a/spark-job/src/main/java/org/apache/cassandra/diff/JobMetadataDb.java b/spark-job/src/main/java/org/apache/cassandra/diff/JobMetadataDb.java index 0ac6521..1eb121c 100644 --- a/spark-job/src/main/java/org/apache/cassandra/diff/JobMetadataDb.java +++ b/spark-job/src/main/java/org/apache/cassandra/diff/JobMetadataDb.java @@ -129,6 +129,15 @@ public class JobMetadataDb { } + public static void resetStatements() + { + updateStmt = null; + mismatchStmt = null; + errorSummaryStmt = null; + errorDetailStmt = null; + updateCompleteStmt = null; + } + /** * * @param table @@ -400,15 +409,23 @@ public class JobMetadataDb { public void markNotRunning(UUID jobId) { - logger.info("Marking job {} as not running", jobId); - - ResultSet rs = session.execute(String.format("DELETE FROM %s.%s WHERE job_id = ? IF EXISTS", - keyspace, Schema.RUNNING_JOBS), - jobId); - if (!rs.one().getBool("[applied]")) { - logger.warn("Non-fatal: Unable to mark job %s as not running, check logs for errors " + - "during initialization as there may be no entry for this job in the {} table", + try + { + logger.info("Marking job {} as not running", jobId); + + ResultSet rs = session.execute(String.format("DELETE FROM %s.%s WHERE job_id = ? IF EXISTS", + keyspace, Schema.RUNNING_JOBS), + jobId); + if (!rs.one().getBool("[applied]")) + { + logger.warn("Non-fatal: Unable to mark job %s as not running, check logs for errors " + + "during initialization as there may be no entry for this job in the {} table", jobId, Schema.RUNNING_JOBS); + } + } catch (Exception e) { + // Because this is called from another exception handler, we don't want to lose the original exception + // just because we may not have been able to mark the job as not running. Just log here + logger.error("Could not mark job {} as not running.", e); } } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org