<div dir="ltr">Source: libmina-sshd-java<br>Version: 2.12.1-2<br>Severity: normal<br><br>The test org.apache.sshd.sftp.client.extensions.helpers.SpaceAvailableExtensionImplTest.testFileStoreReport() is observed to be failing in some chroots. Failures have been reported on launchpad [1] and in the Debian CI [2]. The test fails with the following exception:<br><br>java.io.IOException: Mount point not found<br>   at java.base/sun.nio.fs.LinuxFileStore.findMountEntry(LinuxFileStore.java:105)<br>        at java.base/sun.nio.fs.UnixFileStore.<init>(UnixFileStore.java:69)<br>     at java.base/sun.nio.fs.LinuxFileStore.<init>(LinuxFileStore.java:49)<br>   at java.base/sun.nio.fs.LinuxFileSystemProvider.getFileStore(LinuxFileSystemProvider.java:51)<br> at java.base/sun.nio.fs.LinuxFileSystemProvider.getFileStore(LinuxFileSystemProvider.java:39)<br> at java.base/sun.nio.fs.UnixFileSystemProvider.getFileStore(UnixFileSystemProvider.java:381)<br>  at java.base/java.nio.file.Files.getFileStore(Files.java:1498)<br><br>I could not reproduce this error in my local chroot. I also do not have access to a chroot where this issue is reproducible at will. However, I do have a theory based on an internet search.<br><br>In particular, because we depend on /proc/mount to derive the FileStore for a file, this kind of a failure could have one of these reasons:<div>a. The chroot has no /proc/mount </div><div>b. The /proc/mount has a lack of information</div><div>c. The chroot needs root permissions to read /proc/mount</div><div><br></div><div>The use of FileStores has been reported to fail in chroot environments in the past [3][4]. I couldn't conclude about the extent to which this issue has been resolved in the openjdk. But [3][5] do suggest a way to avoid this problem.<br><br>We run into this issue while getting the FileStore for a given Path using java.nio.file.Files.getFileStore(Path), which is what SpaceAvailableExtensionImplTest.testFileStoreReport() does. Alternatively, only for the sake of this test, we could use path.getFileSystem().getFileStores() and loop this test through them. This will, of course, run many more unnecessary tests including the current one. But it might be better than skipping this altogether.<br></div><div><br></div><div>I hope to submit a patch.</div><div><br></div><div>[1] <a href="https://launchpadlibrarian.net/736702067/buildlog_ubuntu-oracular-amd64.libmina-sshd-java_2.12.1-2ppa5_BUILDING.txt.gz">https://launchpadlibrarian.net/736702067/buildlog_ubuntu-oracular-amd64.libmina-sshd-java_2.12.1-2ppa5_BUILDING.txt.gz</a></div><div>[2] <a href="https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/libmina-sshd-java.html">https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/libmina-sshd-java.html</a></div><div>[3] <a href="https://mail.openjdk.org/pipermail/nio-dev/2016-October/003915.html">https://mail.openjdk.org/pipermail/nio-dev/2016-October/003915.html</a></div><div>[4] <a href="https://bugs.openjdk.org/browse/JDK-8165323">https://bugs.openjdk.org/browse/JDK-8165323</a></div><div>[5] <a href="https://hg.openjdk.org/jdk9/jdk9/jdk/rev/2e1e4c9c8af2">https://hg.openjdk.org/jdk9/jdk9/jdk/rev/2e1e4c9c8af2</a></div><div><br></div></div>