Open divxer opened 1 year ago
Caused by: java.io.IOException: Not enough space to fallocate 13 MiB to / unallocated was 0 MiB
looks sus.
Apart from that, this policy has more issues with SpringBoot logging subsystem re-initializing logging twice.
I've been working on a fix for that for a while now. I'll keep you updated
The root cause may lie in https://github.com/OpenHFT/Chronicle-Map/blob/ea/src/main/java/net/openhft/chronicle/hash/impl/VanillaChronicleHash.java
Line 1102-1105. Within a Docker environment, the code below does not properly enter the loop.
private void fallocate(long mappingOffsetInFile, long length) throws IOException {
FileSystem fileSystem = file.toPath().getFileSystem();
long maxSize = 0;
for (FileStore fileStore : fileSystem.getFileStores()) {
long unallocatedSpace = fileStore.getUnallocatedSpace();
if (unallocatedSpace > length * 11 / 10) {
PosixFallocate.fallocate(raf.getFD(), mappingOffsetInFile, length);
return;
}
maxSize = Math.max(maxSize, unallocatedSpace);
}
throw new IOException("Not enough space to fallocate " + (length >> 20) + " MiB to " + fileSystem.getRootDirectories().iterator().next() + " unallocated was " + (maxSize >> 20) + " MiB");
}
Description
Configuration
Runtime (please complete the following information):
Additional context File location of ChronicleMapRetryFailoverPolicy is a volume mounted to the container.