安装并启动 WSO2 Governance Registry 后,我在 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}
这些错误每 30 秒重复一次。不幸的是,日志没有指定它试图锁定哪个文件。
我尝试使用 find/opt/wso2 -type f -exec lsof {}\; 查找文件系统上所有具有独占锁的文件; | grep W
但我找不到。我还尝试通过 WSO2 GR 源代码进行 grepping,但没有在哪里可以找到对此错误的引用。 WSO2 Jira ( https://wso2.org/jira/browse/REGISTRY-1863 ) 上报告了一个错误,但这也没有帮助。
任何人都可以指出正确的方向或提供有关从何处获取更多信息的任何线索吗?
最佳答案
我们发现这是 Java 安装手册中的错误。似乎 JVM 需要对 /etc/.java/.systemPrefs
目录的写入权限,当以非根用户身份运行时它无法访问该目录,请参阅:http://bugs.java.com/view_bug.do?bug_id=4838770
我通过使用
将/etc/.java/.systemPrefs
目录的所有权更改为 wso2:wso2
解决了这个问题
sudo chown -R wso2:wso2 /etc/.java/.systemPrefs
该文件仍可由 root 写入(因为 root 可以写入任何文件),但如果您需要多个用户能够写入该文件,您也可以使用以下方式设置文件 ACL:
sudo setfacl -R -m u:wso2:rw /etc/.java/.systemPrefs
关于java - WSO2 治理注册表锁定错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21000145/