You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by mr...@apache.org on 2014/02/04 08:44:16 UTC
svn commit: r1564224 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/plugins/document/
test/java/org/apache/jackrabbit/oak/plugins/document/
test/java/org/apache/jackrabbit/oak/plugins/document/impl/
test/java/org/apache/ja...
Author: mreutegg
Date: Tue Feb 4 07:44:15 2014
New Revision: 1564224
URL: http://svn.apache.org/r1564224
Log:
OAK-1382: oak-core tests may run out of memory
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BackgroundWriteTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobReferenceTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitQueueTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentSplitTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/impl/DocumentMKConcurrentAddTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/impl/command/ConcurrentWriteMultipleMkMongoTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/ClusterPermissionsTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java?rev=1564224&r1=1564223&r2=1564224&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java Tue Feb 4 07:44:15 2014
@@ -1606,6 +1606,9 @@ public final class DocumentNodeStore
if (nodeStore != null) {
nodeStore.runBackgroundOperations();
delay = nodeStore.getAsyncDelay();
+ } else {
+ // node store not in use anymore
+ break;
}
}
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BackgroundWriteTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BackgroundWriteTest.java?rev=1564224&r1=1564223&r2=1564224&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BackgroundWriteTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BackgroundWriteTest.java Tue Feb 4 07:44:15 2014
@@ -53,6 +53,7 @@ public class BackgroundWriteTest {
pending.put(p, r);
}
mk.runBackgroundOperations();
+ mk.dispose();
}
private static final class TestStore extends MemoryDocumentStore {
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobReferenceTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobReferenceTest.java?rev=1564224&r1=1564223&r2=1564224&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobReferenceTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobReferenceTest.java Tue Feb 4 07:44:15 2014
@@ -51,6 +51,7 @@ public class BlobReferenceTest {
set.remove(b.toString());
}
assertTrue(set.isEmpty());
+ s.dispose();
}
static InputStream randomStream(int seed, int size) {
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitQueueTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitQueueTest.java?rev=1564224&r1=1564223&r2=1564224&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitQueueTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/CommitQueueTest.java Tue Feb 4 07:44:15 2014
@@ -103,6 +103,7 @@ public class CommitQueueTest {
}
running.set(false);
observer.close();
+ store.dispose();
for (Exception e : exceptions) {
throw e;
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentSplitTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentSplitTest.java?rev=1564224&r1=1564223&r2=1564224&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentSplitTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentSplitTest.java Tue Feb 4 07:44:15 2014
@@ -211,6 +211,9 @@ public class DocumentSplitTest extends B
}
previous = entry.getKey();
}
+ mk1.dispose();
+ mk2.dispose();
+ mk3.dispose();
}
@Test // OAK-1233
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/impl/DocumentMKConcurrentAddTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/impl/DocumentMKConcurrentAddTest.java?rev=1564224&r1=1564223&r2=1564224&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/impl/DocumentMKConcurrentAddTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/impl/DocumentMKConcurrentAddTest.java Tue Feb 4 07:44:15 2014
@@ -25,7 +25,6 @@ import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
-import org.apache.jackrabbit.mk.api.MicroKernel;
import org.apache.jackrabbit.oak.plugins.document.AbstractMongoConnectionTest;
import org.apache.jackrabbit.oak.plugins.document.DocumentMK;
import org.apache.jackrabbit.oak.plugins.document.MongoUtils;
@@ -40,23 +39,23 @@ import com.mongodb.DB;
*/
public class DocumentMKConcurrentAddTest extends AbstractMongoConnectionTest {
+ private static final int CACHE_SIZE = 8 * 1024 * 1024;
private static final int NB_THREADS = 16;
- private List<MongoConnection> connections = new ArrayList<MongoConnection>();
+ private List<DocumentMK> mks = new ArrayList<DocumentMK>();
- private MicroKernel createMicroKernel() throws Exception {
+ private DocumentMK createMicroKernel() throws Exception {
MongoConnection connection = MongoUtils.getConnection();
- connections.add(connection);
DB mongoDB = connection.getDB();
- return new DocumentMK.Builder().setMongoDB(mongoDB).open();
+ return new DocumentMK.Builder().memoryCacheSize(CACHE_SIZE).setMongoDB(mongoDB).open();
}
@After
- public void closeConnections() {
- for (MongoConnection mc : connections) {
- mc.close();
+ public void closeMKs() {
+ for (DocumentMK mk : mks) {
+ mk.dispose();
}
- connections.clear();
+ mks.clear();
}
/**
@@ -72,7 +71,8 @@ public class DocumentMKConcurrentAddTest
List<Callable<String>> cs = new LinkedList<Callable<String>>();
for (int i = 0; i < NB_THREADS; i++) {
// each callable has its own microkernel
- final MicroKernel mk = createMicroKernel();
+ final DocumentMK mk = createMicroKernel();
+ mks.add(mk);
// diff for adding one node and one child node
final List<String> stmts = new LinkedList<String>();
stmts.add("+\"node" + i + "\":{}");
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/impl/command/ConcurrentWriteMultipleMkMongoTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/impl/command/ConcurrentWriteMultipleMkMongoTest.java?rev=1564224&r1=1564223&r2=1564224&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/impl/command/ConcurrentWriteMultipleMkMongoTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/impl/command/ConcurrentWriteMultipleMkMongoTest.java Tue Feb 4 07:44:15 2014
@@ -16,6 +16,8 @@
*/
package org.apache.jackrabbit.oak.plugins.document.impl.command;
+import java.util.ArrayList;
+import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
@@ -51,15 +53,20 @@ public class ConcurrentWriteMultipleMkMo
String[] prefixes = new String[]{"a", "b", "c", "d", "e", "f"};
ExecutorService executor = Executors.newFixedThreadPool(numberOfMks);
+ List<DocumentMK> mks = new ArrayList<DocumentMK>();
for (int i = 0; i < numberOfMks; i++) {
String diff = buildPyramidDiff("/", 0, numberOfChildren,
numberOfNodes, prefixes[i], new StringBuilder()).toString();
DocumentMK mk = new DocumentMK.Builder().open();
+ mks.add(mk);
GenericWriteTask task = new GenericWriteTask("mk-" + i, mk, diff, 10);
executor.execute(task);
}
executor.shutdown();
executor.awaitTermination(10, TimeUnit.MINUTES);
+ for (DocumentMK mk : mks) {
+ mk.dispose();
+ }
}
private StringBuilder buildPyramidDiff(String startingPoint,
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/ClusterPermissionsTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/ClusterPermissionsTest.java?rev=1564224&r1=1564223&r2=1564224&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/ClusterPermissionsTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/ClusterPermissionsTest.java Tue Feb 4 07:44:15 2014
@@ -51,6 +51,7 @@ import org.apache.jackrabbit.oak.spi.sec
import org.apache.jackrabbit.oak.spi.security.authorization.AuthorizationConfiguration;
import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal;
import org.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -61,6 +62,8 @@ import static org.junit.Assert.assertTru
public class ClusterPermissionsTest {
+ private DocumentMK mk1;
+ private DocumentMK mk2;
private ContentRepository contentRepository1;
private ContentRepository contentRepository2;
private UserManager userManager1;
@@ -84,10 +87,10 @@ public class ClusterPermissionsTest {
builder = new DocumentMK.Builder();
builder.setDocumentStore(ds).setBlobStore(bs).setAsyncDelay(1);
- DocumentMK mk1 = builder.setClusterId(1).open();
+ mk1 = builder.setClusterId(1).open();
builder = new DocumentMK.Builder();
builder.setDocumentStore(ds).setBlobStore(bs).setAsyncDelay(1);
- DocumentMK mk2 = builder.setClusterId(2).open();
+ mk2 = builder.setClusterId(2).open();
Oak oak = new Oak(mk1)
.with(new InitialContent())
@@ -119,6 +122,12 @@ public class ClusterPermissionsTest {
aclMgr2 = securityProvider2.getConfiguration(AuthorizationConfiguration.class).getAccessControlManager(root2, namePathMapper);
}
+ @After
+ public void after() {
+ mk1.dispose();
+ mk2.dispose();
+ }
+
protected ConfigurationParameters getSecurityConfigParameters() {
return ConfigurationParameters.EMPTY;
}