merged issue branch(kisskys/log_cursor_stackoverflow_issue) to master and removed an unnecessary file
diff --git a/asterix-installer/ittest/asterix-lifecycle_backupRestore.adm b/asterix-installer/ittest/asterix-lifecycle_backupRestore.adm
deleted file mode 100644
index 4c4f073..0000000
--- a/asterix-installer/ittest/asterix-lifecycle_backupRestore.adm
+++ /dev/null
@@ -1 +0,0 @@
-{ "DataverseName": "backupDataverse", "DataFormat": "edu.uci.ics.asterix.runtime.formats.NonTaggedDataFormat", "Timestamp": "Mon Jul 08 17:23:56 PDT 2013", "PendingOp": 0 }
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..07f89cb 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
@@ -591,14 +591,14 @@
readDiskLog(lsnValue, logicalLogLocator);
}
- public boolean isMemoryRead(long currentLSN) {
+ public boolean isMemoryRead(long readLSN) {
long flushLSN = lastFlushedLSN.get();
- if ((flushLSN + 1) % logPageSize == 0) {
+ if ((flushLSN + 1) == readLSN) {
return false;
}
long logPageBeginOffset = flushLSN - (flushLSN % logPageSize);
long logPageEndOffset = logPageBeginOffset + logPageSize;
- if (currentLSN > flushLSN || (currentLSN >= logPageBeginOffset && currentLSN < logPageEndOffset)) {
+ if (readLSN > flushLSN || (readLSN >= logPageBeginOffset && readLSN < logPageEndOffset)) {
return true;
} else {
return false;
diff --git a/pom.xml b/pom.xml
index b881842..121b736 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,8 +21,8 @@
<packaging>pom</packaging>
<properties>
- <algebricks.version>0.2.8-SNAPSHOT</algebricks.version>
- <hyracks.version>0.2.8-SNAPSHOT</hyracks.version>
+ <algebricks.version>0.2.9-SNAPSHOT</algebricks.version>
+ <hyracks.version>0.2.9-SNAPSHOT</hyracks.version>
</properties>
<build>