2014-01-08 340 views
3

安裝WSO2治理註冊表和啓動它,我得到wso2carbon.log以下錯誤後:WSO2治理註冊表加鎖錯誤

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} 

這些錯誤得到重複每隔30s。不幸的是,日誌沒有指定它試圖鎖定哪個文件。

我試圖用find /opt/wso2 -type f -exec lsof {} \; | grep W找到文件系統上的所有文件,並在其上使用了獨佔鎖,但我找不到任何文件。此外,我嘗試通過WSO2 GR源代碼進行搜索,但沒有找到引用此錯誤的位置。 WSO2 Jira(https://wso2.org/jira/browse/REGISTRY-1863)上報告了一個錯誤,但這也沒有幫助。

任何人都可以指向正確的方向或給出任何線索,以獲取更多信息?

+0

對於SEO的目的,這是值得一提的,這個錯誤有時也表現爲'FileSystemPreferences未能進行鎖定系統首選項。 Unix錯誤代碼0.'或'FileSystemPreferences無法刷新系統首選項:java.util.prefs.BackingStoreException:無法獲取文件鎖定。「 –

回答

5

我們發現這是Java安裝手冊中的一個錯誤。看來JVM需要的/etc/.java/.systemPrefs目錄,當其作爲非root用戶運行它無法訪問的寫訪問,請參閱:http://bugs.java.com/view_bug.do?bug_id=4838770

我通過改變/etc/.java/.systemPrefs目錄的所有權使用

sudo chown -R wso2:wso2 /etc/.java/.systemPrefs 
解決了這個問題 wso2:wso2

該文件將仍然允許root寫入(作爲root可以寫入任何文件),但如果你需要多個用戶能夠寫入該文件,你可以設置一個文件ACL以及使用:

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