I mount two file systems (Filesystem3) inside a unit test.
When I unmount the first file system:
Runtime.getRuntime().exec(new String[] { "bash", "-c", "umount " + mountPointOfFirstFs) });
I get a segfault:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x000000015e23acec, pid=18758, tid=35075
#
# JRE version: 7.0_15-b03
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.7-b01 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# C [libjavafs.jnilib+0xfcec] get_env+0x2c
....
....
This seems to be because of the code in native_impl.c after it returns from the fuse_main loop inside the function Java_fuse_FuseMount_mount. The function cleans up the threadgroup, fuseFS and associated classes from the java env.
If I edit native_impl.c so that I return immediately after the fuse_main function finishes I can avoid the segfault, and unmount both FileSystems. I assume, however, that this creates a memory leak.
(Note: I am assuming that was the suggested method for unmounting, judging by the other github issue #5)
I mount two file systems (Filesystem3) inside a unit test.
When I unmount the first file system:
Runtime.getRuntime().exec(new String[] { "bash", "-c", "umount " + mountPointOfFirstFs) });I get a segfault:
This seems to be because of the code in
native_impl.cafter it returns from thefuse_mainloop inside the functionJava_fuse_FuseMount_mount. The function cleans up the threadgroup, fuseFS and associated classes from the java env.If I edit
native_impl.cso that I return immediately after thefuse_mainfunction finishes I can avoid the segfault, and unmount both FileSystems. I assume, however, that this creates a memory leak.(Note: I am assuming that was the suggested method for unmounting, judging by the other github issue #5)