commit | cdd0fd3cde722c5df2ed4b8fb97d45fb0052b009 | [log] [tgz] |
---|---|---|
author | Young-Seok <kisskys@gmail.com> | Tue Jun 25 16:25:58 2013 -0700 |
committer | Young-Seok <kisskys@gmail.com> | Tue Jun 25 16:25:58 2013 -0700 |
tree | 7944647f425ce8ed931ca6b8732ff387e66cfad7 | |
parent | 110916308e39cb300d89ff75d5e4ed4b989f89ab [diff] |
changes to fix the Issue 543 in asterixdb: Incorrect logic in rollback --> StackOverlfowError
diff --git a/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/logging/LogCursor.java b/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/logging/LogCursor.java index 645b613..803a2a9 100644 --- a/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/logging/LogCursor.java +++ b/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/logging/LogCursor.java
@@ -120,7 +120,7 @@ // indicates an absence of logs any further. } - if (logicalLogLocator.getLsn() > logManager.getLastFlushedLsn().get()) { + if (logManager.isMemoryRead(logicalLogLocator.getLsn())) { return next(currentLogLocator); //should read from memory if there is any further log } }
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 d4eb8a4..040800c 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
@@ -593,7 +593,7 @@ public boolean isMemoryRead(long currentLSN) { long flushLSN = lastFlushedLSN.get(); - if ((flushLSN + 1) % logPageSize == 0) { + if ((flushLSN + 1) == currentLSN) { return false; } long logPageBeginOffset = flushLSN - (flushLSN % logPageSize);