Murtadha Hubail has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/2466

Change subject: [NO ISSUE][TX] Fix WAIT_LOG Reading
......................................................................

[NO ISSUE][TX] Fix WAIT_LOG Reading

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
- Fix WAIT_LOG reading.
- Add test case.

Change-Id: I6a8b75152466f96a4b00cc6f2d25582ba65e6013
---
M 
asterixdb/asterix-app/src/test/java/org/apache/asterix/test/txn/LogManagerTest.java
M 
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/LogRecord.java
2 files changed, 24 insertions(+), 5 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/66/2466/1

diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/txn/LogManagerTest.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/txn/LogManagerTest.java
index 6a70a29..af333df 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/txn/LogManagerTest.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/txn/LogManagerTest.java
@@ -19,6 +19,7 @@
 package org.apache.asterix.test.txn;
 
 import java.lang.reflect.Method;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 
@@ -36,6 +37,7 @@
 import org.apache.asterix.common.transactions.ITransactionContext;
 import org.apache.asterix.common.transactions.ITransactionManager;
 import org.apache.asterix.common.transactions.LogRecord;
+import org.apache.asterix.common.transactions.LogSource;
 import org.apache.asterix.common.transactions.LogType;
 import org.apache.asterix.common.transactions.TransactionOptions;
 import org.apache.asterix.common.transactions.TxnId;
@@ -43,6 +45,7 @@
 import org.apache.asterix.metadata.entities.Dataset;
 import org.apache.asterix.test.common.TestTupleReference;
 import org.apache.asterix.transaction.management.service.logging.LogManager;
+import 
org.apache.asterix.transaction.management.service.transaction.TransactionContextFactory;
 import 
org.apache.asterix.transaction.management.service.transaction.TransactionManagementConstants.LockManagerConstants;
 import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallback;
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndex;
@@ -164,6 +167,27 @@
         interruptedLogPageSwitch();
     }
 
+    @Test
+    public void waitLogTest() throws Exception {
+        final INcApplicationContext ncAppCtx = (INcApplicationContext) 
integrationUtil.ncs[0].getApplicationContext();
+        LogRecord logRecord = new LogRecord();
+        final long txnId = 1;
+        logRecord.setTxnCtx(TransactionContextFactory
+                .create(new TxnId(txnId), new 
TransactionOptions(ITransactionManager.AtomicityLevel.ENTITY_LEVEL)));
+        logRecord.setLogSource(LogSource.LOCAL);
+        logRecord.setLogType(LogType.WAIT);
+        logRecord.setTxnId(txnId);
+        logRecord.isFlushed(false);
+        logRecord.computeAndSetLogSize();
+        Thread transactor = new Thread(() -> {
+            final LogManager logManager = (LogManager) 
ncAppCtx.getTransactionSubsystem().getLogManager();
+            logManager.log(logRecord);
+        });
+        transactor.start();
+        transactor.join(TimeUnit.SECONDS.toMillis(30));
+        Assert.assertTrue(logRecord.isFlushed());
+    }
+
     private static ITransactionContext beingTransaction(INcApplicationContext 
ncAppCtx, ILSMIndex index,
             long resourceId) {
         final TxnId txnId = new TxnId(1);
diff --git 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/LogRecord.java
 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/LogRecord.java
index 7e61266..d85fd70 100644
--- 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/LogRecord.java
+++ 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/LogRecord.java
@@ -255,11 +255,6 @@
                 computeAndSetLogSize();
                 break;
             case LogType.WAIT:
-                if (buffer.remaining() < ILogRecord.DS_LEN) {
-                    return RecordReadStatus.TRUNCATED;
-                }
-                datasetId = buffer.getInt();
-                resourceId = 0l;
                 computeAndSetLogSize();
                 break;
             case LogType.JOB_COMMIT:

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2466
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6a8b75152466f96a4b00cc6f2d25582ba65e6013
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail <[email protected]>

Reply via email to