commit | a1bbf6fd19ecbf9fc26b8b77c1729979cb5a2b3c | [log] [tgz] |
---|---|---|
author | zheilbron <zheilbron@gmail.com> | Wed Aug 28 14:42:55 2013 -0700 |
committer | zheilbron <zheilbron@gmail.com> | Wed Aug 28 14:42:55 2013 -0700 |
tree | 9c8239d56795f7010134501ef052fe7bd82a0e2a | |
parent | 06178b176b64c6be37b73397b3c7dc9adcfadbbd [diff] |
close log file before deleting it
diff --git a/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/logging/LogManager.java b/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/logging/LogManager.java index 4803db5..a4b6467 100644 --- a/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/logging/LogManager.java +++ b/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/logging/LogManager.java
@@ -260,7 +260,7 @@ return logFileSize * fileId + offset; } - public void renewLogFiles() { + public void renewLogFiles() throws IOException { terminateLogFlusher(); deleteAllLogFiles(); initializeLogManager(); @@ -275,7 +275,10 @@ } } - private void deleteAllLogFiles() { + private void deleteAllLogFiles() throws IOException { + if (appendChannel != null) { + appendChannel.close(); + } List<Long> logFileIds = getLogFileIds(); for (Long id : logFileIds) { File file = new File(getLogFilePath(id));
diff --git a/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/recovery/RecoveryManager.java b/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/recovery/RecoveryManager.java index 81a73d5..bac60ec 100644 --- a/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/recovery/RecoveryManager.java +++ b/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/recovery/RecoveryManager.java
@@ -438,7 +438,11 @@ } if (isSharpCheckpoint) { - logMgr.renewLogFiles(); + try { + logMgr.renewLogFiles(); + } catch (IOException e) { + throw new HyracksDataException(e); + } } if (isSharpCheckpoint && LOGGER.isLoggable(Level.INFO)) {