Bug ID | 942178 |
---|---|
Summary | NFS4 Java file lock problem with kernel 3.16.7-24.1 |
Classification | openSUSE |
Product | openSUSE Distribution |
Version | 13.2 |
Hardware | x86-64 |
OS | openSUSE 13.2 |
Status | NEW |
Severity | Major |
Priority | P5 - None |
Component | Kernel |
Assignee | kernel-maintainers@forge.provo.novell.com |
Reporter | timo.boehme@ontochem.com |
QA Contact | qa-bugs@suse.de |
Found By | --- |
Blocker | --- |
When locking a file on a NFS4 mounted file system via Java FileLock class under Linux kernel 3.16.7-24.1 this is not recognized by another Java program on another OpenSuse computer with kernel 3.16.7-21.1. Going back to kernel 3.16.7-21.1 all is fine. The NFS4 file system is mounted as rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=XXX.XXX.XXX.XXX,local_lock=none,addr=XXX.XXX.XXX.XXX on both machines. According to http://stackoverflow.com/questions/23562369/is-a-filelock-a-posix-advisory-fcntl-lock the Java FileLock class (Sun Java 6) uses POSIX fcntl locks. The problem is critical because the standard Java Logging implementation is now broken. The implementation tests if it can exclusively lock the .lck file which secures a lock file. If the machine with kernel 3.16.7-24.1 created this file (and locked it) the other machine gets nevertheless an exclusive lock on the .lck file assuming it created the file and moves the lock file from the first process away. Somehow it seems like the local_lock parameter is set to another value than 'none' despite the fact that the mount option was 'none'.