mirror of
https://github.com/usatiuk/dhfs.git
synced 2025-10-29 04:57:48 +01:00
Dhfs-app: lazyfs test fixes
This commit is contained in:
@@ -66,7 +66,7 @@ public class DhfsImage implements Future<String> {
|
|||||||
.run("apt update && apt install -y libfuse2 curl gcc")
|
.run("apt update && apt install -y libfuse2 curl gcc")
|
||||||
.copy("/app", "/app")
|
.copy("/app", "/app")
|
||||||
.copy("/libs", "/libs")
|
.copy("/libs", "/libs")
|
||||||
.cmd("java", "-ea", "-Xmx256M", "-XX:TieredStopAtLevel=1",
|
.cmd("java", "-ea", "-Xmx256M", "-XX:TieredStopAtLevel=1","-XX:+UseParallelGC",
|
||||||
"--add-exports", "java.base/sun.nio.ch=ALL-UNNAMED",
|
"--add-exports", "java.base/sun.nio.ch=ALL-UNNAMED",
|
||||||
"--add-exports", "java.base/jdk.internal.access=ALL-UNNAMED",
|
"--add-exports", "java.base/jdk.internal.access=ALL-UNNAMED",
|
||||||
"--add-opens=java.base/java.nio=ALL-UNNAMED",
|
"--add-opens=java.base/java.nio=ALL-UNNAMED",
|
||||||
@@ -75,7 +75,6 @@ public class DhfsImage implements Future<String> {
|
|||||||
"-Ddhfs.objects.deletion.delay=0",
|
"-Ddhfs.objects.deletion.delay=0",
|
||||||
"-Ddhfs.objects.deletion.can-delete-retry-delay=1000",
|
"-Ddhfs.objects.deletion.can-delete-retry-delay=1000",
|
||||||
"-Ddhfs.objects.ref_verification=true",
|
"-Ddhfs.objects.ref_verification=true",
|
||||||
"-Ddhfs.objects.write_log=true",
|
|
||||||
"-Ddhfs.objects.sync.timeout=10",
|
"-Ddhfs.objects.sync.timeout=10",
|
||||||
"-Ddhfs.objects.sync.ping.timeout=5",
|
"-Ddhfs.objects.sync.ping.timeout=5",
|
||||||
"-Ddhfs.objects.reconnect_interval=1s",
|
"-Ddhfs.objects.reconnect_interval=1s",
|
||||||
|
|||||||
@@ -173,7 +173,6 @@ public class LazyFs {
|
|||||||
var cmd = "echo \"lazyfs::crash::timing=after::op=write::from_rgx=*\" > " + fifoPath();
|
var cmd = "echo \"lazyfs::crash::timing=after::op=write::from_rgx=*\" > " + fifoPath();
|
||||||
Log.info("Running command: " + cmd);
|
Log.info("Running command: " + cmd);
|
||||||
Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", cmd}).waitFor();
|
Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", cmd}).waitFor();
|
||||||
stop();
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
@@ -182,11 +181,7 @@ public class LazyFs {
|
|||||||
public void stop() {
|
public void stop() {
|
||||||
try {
|
try {
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
if (fs == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", "fusermount3 -u " + mountRoot}).waitFor();
|
Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", "fusermount3 -u " + mountRoot}).waitFor();
|
||||||
fs = null;
|
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ public class LazyFsIT {
|
|||||||
try {
|
try {
|
||||||
Log.info("Writing to container 1");
|
Log.info("Writing to container 1");
|
||||||
barrier.countDown();
|
barrier.countDown();
|
||||||
container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test1; done");
|
container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test1; sleep 0.01; done");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
@@ -163,10 +163,11 @@ public class LazyFsIT {
|
|||||||
Thread.sleep(3000);
|
Thread.sleep(3000);
|
||||||
Log.info("Killing");
|
Log.info("Killing");
|
||||||
lazyFs1.crash();
|
lazyFs1.crash();
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Caused by: org.lmdbjava"), 5, TimeUnit.SECONDS);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Caused by: org.lmdbjava"), 60, TimeUnit.SECONDS);
|
||||||
var client = DockerClientFactory.instance().client();
|
var client = DockerClientFactory.instance().client();
|
||||||
client.killContainerCmd(container1.getContainerId()).exec();
|
client.killContainerCmd(container1.getContainerId()).exec();
|
||||||
container1.stop();
|
container1.stop();
|
||||||
|
lazyFs1.stop();
|
||||||
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS);
|
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS);
|
||||||
Log.info("Restart");
|
Log.info("Restart");
|
||||||
switch (crashType) {
|
switch (crashType) {
|
||||||
@@ -186,7 +187,7 @@ public class LazyFsIT {
|
|||||||
try {
|
try {
|
||||||
Log.info("Writing to container 1");
|
Log.info("Writing to container 1");
|
||||||
barrier.countDown();
|
barrier.countDown();
|
||||||
container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test2; done");
|
container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test2; sleep 0.01; done");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
@@ -196,7 +197,7 @@ public class LazyFsIT {
|
|||||||
Thread.sleep(3000);
|
Thread.sleep(3000);
|
||||||
lazyFs1.crash();
|
lazyFs1.crash();
|
||||||
}
|
}
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Caused by: org.lmdbjava"), 5, TimeUnit.SECONDS);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Caused by: org.lmdbjava"), 60, TimeUnit.SECONDS);
|
||||||
client.killContainerCmd(container1.getContainerId()).exec();
|
client.killContainerCmd(container1.getContainerId()).exec();
|
||||||
container1.stop();
|
container1.stop();
|
||||||
lazyFs1.stop();
|
lazyFs1.stop();
|
||||||
@@ -223,7 +224,7 @@ public class LazyFsIT {
|
|||||||
try {
|
try {
|
||||||
Log.info("Writing to container 1");
|
Log.info("Writing to container 1");
|
||||||
barrier.countDown();
|
barrier.countDown();
|
||||||
container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test$counter; done");
|
container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test$counter; sleep 0.01; done");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
@@ -232,10 +233,11 @@ public class LazyFsIT {
|
|||||||
Thread.sleep(3000);
|
Thread.sleep(3000);
|
||||||
Log.info("Killing");
|
Log.info("Killing");
|
||||||
lazyFs1.crash();
|
lazyFs1.crash();
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Caused by: org.lmdbjava"), 5, TimeUnit.SECONDS);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Caused by: org.lmdbjava"), 60, TimeUnit.SECONDS);
|
||||||
var client = DockerClientFactory.instance().client();
|
var client = DockerClientFactory.instance().client();
|
||||||
client.killContainerCmd(container1.getContainerId()).exec();
|
client.killContainerCmd(container1.getContainerId()).exec();
|
||||||
container1.stop();
|
container1.stop();
|
||||||
|
lazyFs1.stop();
|
||||||
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS);
|
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS);
|
||||||
Log.info("Restart");
|
Log.info("Restart");
|
||||||
switch (crashType) {
|
switch (crashType) {
|
||||||
@@ -255,7 +257,7 @@ public class LazyFsIT {
|
|||||||
try {
|
try {
|
||||||
Log.info("Writing to container 1");
|
Log.info("Writing to container 1");
|
||||||
barrier.countDown();
|
barrier.countDown();
|
||||||
container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/2test$counter; done");
|
container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/2test$counter; sleep 0.01; done");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
@@ -265,7 +267,7 @@ public class LazyFsIT {
|
|||||||
Thread.sleep(3000);
|
Thread.sleep(3000);
|
||||||
lazyFs1.crash();
|
lazyFs1.crash();
|
||||||
}
|
}
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Caused by: org.lmdbjava"), 5, TimeUnit.SECONDS);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Caused by: org.lmdbjava"), 60, TimeUnit.SECONDS);
|
||||||
client.killContainerCmd(container1.getContainerId()).exec();
|
client.killContainerCmd(container1.getContainerId()).exec();
|
||||||
container1.stop();
|
container1.stop();
|
||||||
lazyFs1.stop();
|
lazyFs1.stop();
|
||||||
@@ -291,18 +293,20 @@ public class LazyFsIT {
|
|||||||
try {
|
try {
|
||||||
Log.info("Writing to container 1");
|
Log.info("Writing to container 1");
|
||||||
barrier.countDown();
|
barrier.countDown();
|
||||||
container1.execInContainer("/bin/sh", "-c", "counter=0; while [ ! -f /tmp/stopprinting1 ]; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test1; done");
|
container1.execInContainer("/bin/sh", "-c", "counter=0; while [ ! -f /tmp/stopprinting1 ]; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test1; sleep 0.01; done");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
barrier.await();
|
barrier.await();
|
||||||
|
Thread.sleep(1000);
|
||||||
Log.info("Killing");
|
Log.info("Killing");
|
||||||
lazyFs2.crash();
|
lazyFs2.crash();
|
||||||
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Caused by: org.lmdbjava"), 5, TimeUnit.SECONDS);
|
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Caused by: org.lmdbjava"), 60, TimeUnit.SECONDS);
|
||||||
var client = DockerClientFactory.instance().client();
|
var client = DockerClientFactory.instance().client();
|
||||||
client.killContainerCmd(container2.getContainerId()).exec();
|
client.killContainerCmd(container2.getContainerId()).exec();
|
||||||
container2.stop();
|
container2.stop();
|
||||||
|
lazyFs2.stop();
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS);
|
||||||
Log.info("Restart");
|
Log.info("Restart");
|
||||||
switch (crashType) {
|
switch (crashType) {
|
||||||
@@ -324,7 +328,7 @@ public class LazyFsIT {
|
|||||||
try {
|
try {
|
||||||
Log.info("Writing to container 1");
|
Log.info("Writing to container 1");
|
||||||
barrier2.countDown();
|
barrier2.countDown();
|
||||||
container1.execInContainer("/bin/sh", "-c", "counter=0; while [ ! -f /tmp/stopprinting2 ]; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test2; done");
|
container1.execInContainer("/bin/sh", "-c", "counter=0; while [ ! -f /tmp/stopprinting2 ]; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test2; sleep 0.01; done");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
@@ -335,7 +339,7 @@ public class LazyFsIT {
|
|||||||
Thread.sleep(2000);
|
Thread.sleep(2000);
|
||||||
lazyFs2.crash();
|
lazyFs2.crash();
|
||||||
}
|
}
|
||||||
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Caused by: org.lmdbjava"), 30, TimeUnit.SECONDS);
|
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Caused by: org.lmdbjava"), 60, TimeUnit.SECONDS);
|
||||||
client.killContainerCmd(container2.getContainerId()).exec();
|
client.killContainerCmd(container2.getContainerId()).exec();
|
||||||
container2.stop();
|
container2.stop();
|
||||||
lazyFs2.stop();
|
lazyFs2.stop();
|
||||||
@@ -363,19 +367,20 @@ public class LazyFsIT {
|
|||||||
try {
|
try {
|
||||||
Log.info("Writing to container 1");
|
Log.info("Writing to container 1");
|
||||||
barrier.countDown();
|
barrier.countDown();
|
||||||
container1.execInContainer("/bin/sh", "-c", "counter=0; while [ ! -f /tmp/stopprinting1 ]; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test$counter; done");
|
container1.execInContainer("/bin/sh", "-c", "counter=0; while [ ! -f /tmp/stopprinting1 ]; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test$counter; sleep 0.01; done");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
barrier.await();
|
barrier.await();
|
||||||
Thread.sleep(3000);
|
Thread.sleep(1000);
|
||||||
Log.info("Killing");
|
Log.info("Killing");
|
||||||
lazyFs2.crash();
|
lazyFs2.crash();
|
||||||
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Caused by: org.lmdbjava"), 5, TimeUnit.SECONDS);
|
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Caused by: org.lmdbjava"), 60, TimeUnit.SECONDS);
|
||||||
var client = DockerClientFactory.instance().client();
|
var client = DockerClientFactory.instance().client();
|
||||||
client.killContainerCmd(container2.getContainerId()).exec();
|
client.killContainerCmd(container2.getContainerId()).exec();
|
||||||
container2.stop();
|
container2.stop();
|
||||||
|
lazyFs2.stop();
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS);
|
||||||
Log.info("Restart");
|
Log.info("Restart");
|
||||||
switch (crashType) {
|
switch (crashType) {
|
||||||
@@ -397,7 +402,7 @@ public class LazyFsIT {
|
|||||||
try {
|
try {
|
||||||
Log.info("Writing to container 1");
|
Log.info("Writing to container 1");
|
||||||
barrier2.countDown();
|
barrier2.countDown();
|
||||||
container1.execInContainer("/bin/sh", "-c", "counter=0; while [ ! -f /tmp/stopprinting2 ]; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/2test$counter; done");
|
container1.execInContainer("/bin/sh", "-c", "counter=0; while [ ! -f /tmp/stopprinting2 ]; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/2test$counter; sleep 0.01; done");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
@@ -408,7 +413,7 @@ public class LazyFsIT {
|
|||||||
Thread.sleep(2000);
|
Thread.sleep(2000);
|
||||||
lazyFs2.crash();
|
lazyFs2.crash();
|
||||||
}
|
}
|
||||||
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Caused by: org.lmdbjava"), 30, TimeUnit.SECONDS);
|
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Caused by: org.lmdbjava"), 60, TimeUnit.SECONDS);
|
||||||
client.killContainerCmd(container2.getContainerId()).exec();
|
client.killContainerCmd(container2.getContainerId()).exec();
|
||||||
container2.stop();
|
container2.stop();
|
||||||
lazyFs2.stop();
|
lazyFs2.stop();
|
||||||
|
|||||||
Reference in New Issue
Block a user