javawso2wso2-governance-registry

WSO2 Governance Registry lock error


After installation of WSO2 Governance Registry and starting it I get the following errors in wso2carbon.log:

TID: [0] [Greg] [2014-01-08 10:39:08,625]  WARN {java.util.prefs.FileSystemPreferences} -  Could not lock System prefs.Unix error code 0. {java.util.prefs.FileSystemPreferences}
TID: [0] [Greg] [2014-01-08 10:39:08,625]  WARN {java.util.prefs.FileSystemPreferences} -  Couldn't flush system prefs: java.util.prefs.BackingStoreException: Couldn't get file lock. {java.util.prefs.FileSystemPreferences}

These errors get repeated every 30s. Unfortunately the log does not specify which file it's trying to lock.

I tried finding all files on the filesystem with exclusive locks on them using find /opt/wso2 -type f -exec lsof {} \; | grep W but I couldn't find any. Also I tried grepping through the WSO2 GR source code, but no where I could find a reference to this error. There is a bug reported on the WSO2 Jira (https://wso2.org/jira/browse/REGISTRY-1863), but that wasn't helpful either.

Can anyone point me in the right direction or give any clues as to where to get more information?


Solution

  • We found that this is a bug in the Java installation manual. It seems the JVM needs write access to the /etc/.java/.systemPrefs directory, which it cannot access when run as a non-root user, see: http://bugs.java.com/view_bug.do?bug_id=4838770

    I solved this problem by changing ownership of the /etc/.java/.systemPrefs directory to wso2:wso2 using

    sudo chown -R wso2:wso2 /etc/.java/.systemPrefs
    

    The file will still be writable by root (as root can write to any file), but if you need multiple users to be able to write to this file you might set up a file ACL as well using:

    sudo setfacl -R -m u:wso2:rw /etc/.java/.systemPrefs