Our live server has completely crashed for the second time. By crash I mean that the server becomes completely unavailable. I can not ping it, it no longer serves pages, the forums become inaccessible, and SFS entirely shuts down. The server requires a manual power cycle before it will work again.
Here is the error we're seeing in the logs (actually, there are several hundred of these duplicate errors in the logs):
Code: Select all
2009/04/29 19:29:22.717 - [ SEVERE ] [id: 10] (DbManager.executeQuery): DbManager could not retrive a connection. org.h2.jdbc.JdbcSQLException: IO Exception: java.io.FileNotFoundException: /home/game/SFS_PRO_1.6.6/Server/datastore/__sfscore__.lock.db (Permission denied); /home/game/SFS_PRO_1.6.6/Server/datastore/__sfscore__.lock.db [90031-110]
at org.h2.message.Message.getSQLException(Message.java:107)
at org.h2.message.Message.convertIOException(Message.java:293)
at org.h2.store.fs.FileSystemDisk.openFileOutputStream(FileSystemDisk.java:348)
at org.h2.store.FileLock.save(FileLock.java:206)
at org.h2.store.FileLock.lockFile(FileLock.java:318)
at org.h2.store.FileLock.lock(FileLock.java:130)
at org.h2.engine.Database.open(Database.java:528)
at org.h2.engine.Database.openDatabase(Database.java:223)
at org.h2.engine.Database.<init>(Database.java:218)
at org.h2.engine.Engine.openSession(Engine.java:57)
at org.h2.engine.Engine.openSession(Engine.java:139)
at org.h2.engine.Engine.getSession(Engine.java:119)
at org.h2.server.TcpServerThread.run(TcpServerThread.java:120)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.FileNotFoundException: /home/game/SFS_PRO_1.6.6/Server/datastore/__sfscore__.lock.db (Permission denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
at org.h2.store.fs.FileSystemDisk.openFileOutputStream(FileSystemDisk.java:340)
... 11 more
2009/04/29 19:29:22.718 - [ WARNING ] [id: 10] (AdvancedBuddyListPersister.checkIfTableExists): Could not connect to H2 Engine, buddy list persister may not work!To temporarily correct the problem, I have to stop the server, delete all of the __sfscore__ files and allow SFS to recreate them on restart. Once the __sfscore__ files are recreated, the server runs smoothly. But, after a few days, something repeatedly triggers the same error, and the server crashes hard shortly afterward.
The problem appears to be with permissions regarding the __sfscore__ storage files that pertain to the buddy list and the H2 Database engine. Why are the files suddenly becoming unavailable?
Here is our current buddy list configuration:
Code: Select all
<BuddyList active="true">
<mode>advanced</mode>
<size>30</size>
<maxBuddyVars>10</maxBuddyVars>
<addBuddyPermission>true</addBuddyPermission>
<mutualAddBuddy>true</mutualAddBuddy>
<mutualRemoveBuddy>true</mutualRemoveBuddy>
<offLineBuddyVariables>true</offLineBuddyVariables>
<permissionTimeOut>30</permissionTimeOut>
<ownerListFullErrorMsg>Your buddy list is already full!</ownerListFullErrorMsg>
<targetListFullErrorMsg>The selected character's buddy list is already full!</targetListFullErrorMsg>
</BuddyList>
Update 1:
I wonder if the problems mentioned in these posts are related?
This one mentions the buddy list clearing...
http://forums.smartfoxserver.com/viewto ... base+buddy
This one mentions the buddy list "Going Boom" regarding string variables of length 0 ...
http://forums.smartfoxserver.com/viewto ... base+buddy
Update 2:
I've reviewed this post, but it is NOT the issue. We do NOT have the h2db zone defined in our config file:
http://forums.smartfoxserver.com/viewtopic.php?t=2880
Also, I did try to access the H2 database interface on our remote dedicated server to troubleshoot futher, but the chapter seems to mention that you can't access the interface from a remote machine:
http://www.smartfoxserver.com/docs/inde ... ddedDb.htm
Any ideas? This is a critical error as it has brought down our live server twice now.
Thank you for your support.