You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@samza.apache.org by pm...@apache.org on 2018/12/11 18:34:58 UTC

samza git commit: Flaky test fix

Repository: samza
Updated Branches:
  refs/heads/master fe40f9e56 -> 9696154ab


Flaky test fix

MockStorageEngine has a static list of incomingMessageEnvelopes, which was a non thread-safe ArrayList.
However in case of parallel restore (recent change), this needs to be a thread-safe list.

This causes a StorageRecoveryTool test to be flaky.

Author: Ray Matharu <rm...@linkedin.com>

Reviewers: Shanthoosh Venkatraman <sv...@linkedin.com>

Closes #851 from rmatharu/flakytestfix


Project: http://git-wip-us.apache.org/repos/asf/samza/repo
Commit: http://git-wip-us.apache.org/repos/asf/samza/commit/9696154a
Tree: http://git-wip-us.apache.org/repos/asf/samza/tree/9696154a
Diff: http://git-wip-us.apache.org/repos/asf/samza/diff/9696154a

Branch: refs/heads/master
Commit: 9696154ab224317af12a4b8a712771c61b585e0d
Parents: fe40f9e
Author: Ray Matharu <rm...@linkedin.com>
Authored: Tue Dec 11 10:34:55 2018 -0800
Committer: Prateek Maheshwari <pm...@apache.org>
Committed: Tue Dec 11 10:34:55 2018 -0800

----------------------------------------------------------------------
 .../test/java/org/apache/samza/storage/MockStorageEngine.java  | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/samza/blob/9696154a/samza-core/src/test/java/org/apache/samza/storage/MockStorageEngine.java
----------------------------------------------------------------------
diff --git a/samza-core/src/test/java/org/apache/samza/storage/MockStorageEngine.java b/samza-core/src/test/java/org/apache/samza/storage/MockStorageEngine.java
index 4f71a54..fda1355 100644
--- a/samza-core/src/test/java/org/apache/samza/storage/MockStorageEngine.java
+++ b/samza-core/src/test/java/org/apache/samza/storage/MockStorageEngine.java
@@ -21,8 +21,10 @@ package org.apache.samza.storage;
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Iterator;
 
+import java.util.List;
 import org.apache.samza.system.IncomingMessageEnvelope;
 import org.apache.samza.system.SystemStreamPartition;
 
@@ -35,7 +37,9 @@ public class MockStorageEngine implements StorageEngine {
   public static String storeName;
   public static File storeDir;
   public static SystemStreamPartition ssp;
-  public static ArrayList<IncomingMessageEnvelope> incomingMessageEnvelopes = new ArrayList<IncomingMessageEnvelope>();
+
+  // Thread-safe list is required because the list is shared across StorageEngine instances
+  public static List<IncomingMessageEnvelope> incomingMessageEnvelopes = Collections.synchronizedList(new ArrayList<>());
   public static StoreProperties storeProperties;
 
   public MockStorageEngine(String storeName, File storeDir, SystemStreamPartition changeLogSystemStreamPartition, StoreProperties properties) {