Linux dedicated server bug with persistant storage folder


omano
  • Closed

I noticed a bug when I updated my server today (last update was before caves), I understood the new cave system and so reinstalled completely the server to be sure to avoid any problem with previous version.

I was using the command line parameter -persistent_storage_root Configs and a subfolder called Configs was then created in data/ and configuration files where inside this folder.

It is not working anymore, if you use this command line parameter with only a folder name, it tries to create it under bin/ and then fail to read/save config files, server then stop itself. 

Spoiler

./dontstarve_dedicated_server_nullrenderer -port 15047 -players 64 -persistent_storage_root Configs -cluster Server -shard Master
p11-kit: couldn't load module: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: cannot open shared object file: No such file or directory
PersistRootStorage is now Configs//DoNotStarveTogether/Server/Master/
Starting Up
Version: 166529
Current time: Thu Feb 18 05:38:52 2016

System Name: Linux
Host Name: sd-56097
Release(Kernel) Version: 3.2.0-98-generic
Kernel Build Timestamp: #138-Ubuntu SMP Mon Jan 11 12:33:01 UTC 2016
Machine Arch: x86_64
Don't Starve Together: 166529 LINUX
NNN Build Date: 147
Parsing command line
Command Line Arguments: -port 15047 -players 64 -persistent_storage_root Configs -cluster Server -shard Master
THREAD - started 'GAClient' (4136663872)
CurlRequestManager::ClientThread::Main()
Legacy saves detected. Migrating to new structure...
ProfileIndex:4.41
[Connect] PendingConnection::Reset(true)
Network tick rate: U=15(2), D=0
Network tick rate: U=15(2), D=0
Error trying to change cluster setting (NETWORK->cluster_intention) from '' to 'cooperative'
OnLoadPermissionList: Configs//DoNotStarveTogether/Server/blocklist.txt (Failure)
OnLoadPermissionList: Configs//DoNotStarveTogether/Server/adminlist.txt (Failure)
OnLoadUserIdList: Configs//DoNotStarveTogether/Server/whitelist.txt (Failure)
cGame::InitializeOnMainThread
Renderer initialize: Okay
AnimManager initialize: Okay
Buffers initialize: Okay
cDontStarveGame::DoGameSpecificInitialize()
FMOD Error: An invalid object handle was used.
GameSpecific initialize: Okay
cGame::StartPlaying
LOADING LUA
DoLuaFile scripts/main.lua
DoLuaFile loading buffer scripts/main.lua
scripts/main.lua(166,1) running main.lua
    
Could not load modindex    
ModIndex: Beginning normal load sequence for dedicated server.
    
DownloadMods(0)
[CRITICAL] Failed to save file: Configs//DoNotStarveTogether/Server/Master/save/modindex
[CRITICAL] Fingerprint:hbrjsjvntkdggkflsioqfhginfnnnpeiddjlioijddrjsjvnpjdggkfltmoqfhgiejnnnpeiofjlioijldrjsjvnsmdggkfltioqfhgipgnnnpeingjlioijaerjsjvnnkdggkflghoqfhgingnnnpeipdjlioijacrjsjvntkdggkfllioqfhgiofnnnpeioejlioijmdrjsjvnjkdggkflghoqfhgiejnnnpeingjlioijbdrjsjvnojdggkflkhoqfhgiofnnnpeimejlioijlhrjsjvnrmdggkfljioqfhgiqgnnnpeioejlioijbdrjsjvnojdggkfltmoqfhgiqgnnnpeildjlioijcerjsjvnjkdggkfltmoqfhgigfnnnpeijdjlioijadrjsjvnvkdggkflsioqfhgipfnnnpeipdjlioijmerjsjvn.
[CRITICAL] Failed to save file: Configs//DoNotStarveTogether/Server/Master/save/modindex
[CRITICAL] Fingerprint:hbrjsjvntkdggkflsioqfhginfnnnpeiddjlioijddrjsjvnpjdggkfltmoqfhgiejnnnpeiofjlioijldrjsjvnsmdggkfltioqfhgipgnnnpeingjlioijaerjsjvnnkdggkflghoqfhgingnnnpeipdjlioijacrjsjvntkdggkfllioqfhgiofnnnpeioejlioijmdrjsjvnjkdggkflghoqfhgiejnnnpeingjlioijbdrjsjvnojdggkflkhoqfhgiofnnnpeimejlioijlhrjsjvnrmdggkfljioqfhgiqgnnnpeioejlioijbdrjsjvnojdggkfltmoqfhgiqgnnnpeildjlioijcerjsjvnjkdggkfltmoqfhgigfnnnpeijdjlioijadrjsjvnvkdggkflsioqfhgipfnnnpeipdjlioijmerjsjvn.
FMOD Error: An invalid object handle was used.
LOADING LUA SUCCESS
PlayerDeaths could not load morgue    
PlayerHistory could not load player_history    
bloom_enabled    false    
Could not load saveindex    
OnFilesLoaded()    
OnUpdatePurchaseStateComplete    
    Load FE    
    Load FE: done    
[CRITICAL] Failed to save file: Configs//DoNotStarveTogether/Server/Master/save/modindex
[CRITICAL] Fingerprint:hbrjsjvntkdggkflsioqfhginfnnnpeiddjlioijddrjsjvnpjdggkfltmoqfhgiejnnnpeiofjlioijldrjsjvnsmdggkfltioqfhgipgnnnpeingjlioijaerjsjvnnkdggkflghoqfhgingnnnpeipdjlioijacrjsjvntkdggkfllioqfhgiofnnnpeioejlioijmdrjsjvnjkdggkflghoqfhgiejnnnpeingjlioijbdrjsjvnojdggkflkhoqfhgiofnnnpeimejlioijlhrjsjvnrmdggkfljioqfhgiqgnnnpeioejlioijbdrjsjvnojdggkfltmoqfhgiqgnnnpeildjlioijcerjsjvnjkdggkfltmoqfhgigfnnnpeijdjlioijadrjsjvnvkdggkflsioqfhgipfnnnpeipdjlioijmerjsjvn.
[CRITICAL] Failed to save file: Configs//DoNotStarveTogether/Server/Master/save/boot_modindex
[CRITICAL] Fingerprint:hbrjsjvntkdggkflsioqfhginfnnnpeiddjlioijddrjsjvnpjdggkfltmoqfhgiejnnnpeiofjlioijldrjsjvnsmdggkfltioqfhgipgnnnpeingjlioijaerjsjvnnkdggkflghoqfhgingnnnpeipdjlioijacrjsjvntkdggkfllioqfhgiofnnnpeioejlioijmdrjsjvnjkdggkflghoqfhgiejnnnpeingjlioijbdrjsjvnojdggkflkhoqfhgiofnnnpeimejlioijlhrjsjvnrmdggkfljioqfhgiqgnnnpeioejlioijbdrjsjvnojdggkfltmoqfhgiqgnnnpeildjlioijcerjsjvnjkdggkfltmoqfhgirfnnnpeijdjlioijldrjsjvnijdggkfltjoqfhgigfnnnpeijdjlioijadrjsjvnvkdggkflsioqfhgipfnnnpeipdjlioijmerjsjvn.
ModIndex: Load sequence finished successfully.    
[string "scripts/mainfunctions.lua"]:827: Unable to write to config directory. Please make sure you have permissions for your Klei save folder.
LUA ERROR stack traceback:
=[C]:-1 in (global) assert (C) <-1--1>
scripts/mainfunctions.lua:827 in () ? (Lua) <816-828>

[string "scripts/mainfunctions.lua"]:827: Unable to write to config directory. Please make sure you have permissions for your Klei save folder.
LUA ERROR stack traceback:
    =[C]:-1 in (global) assert (C) <-1--1>
    scripts/mainfunctions.lua:827 in () ? (Lua) <816-828>
    
Reset() returning
[200] Account Failed (6): "E_INVALID_TOKEN"
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!! Your Server Will Not Start !!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
No auth token could be found.
To generate a cluster_token you must
open the console from a logged-in game
client with the tilda key (~ / \ufffd) and type:
TheNet:GenerateClusterToken()
This will create 'cluster_token.txt' in
your client settings directory. Copy this
into your cluster settings directory.
[Connect] PendingConnection::Reset(true)

 

I deleted and reinstalled server then. I found that if you use complete path it works correctly like this -persistent_storage_root /home/user/server_folder/data/Configs it correctly creates a folder called Configs in which folders and files are generated, server then works and you can join it.

 

 


Steps to Reproduce
Start server with command line containing -persistent_storage_root XXX where XXX is the subfolder where you want config files to be stored

Status: Closed

This issue has been closed either because it is not a bug or does not belong in the bug tracker.


  Report Bug


User Feedback


....

Bug is also happening with -persistent_storage_root ./ (creating subfolder in bin/ and failing to read/write config, but it works good with -persistent_storage_root ../ (creating subfolder in main server folder)

Share this comment


Link to comment
Share on other sites
....

Hello Omano,

The argument  -persistent_storage_root  was not meant to be used with a relative Path. By default, the game writes its data in ~/.klei/. This is the storage root.

If you use  -persistent_storage_root, please give it an absolute path, otherwise the path will be resolved from the installation bin (yes it was data before) directory. In order to select the sub-folder in this directory, you should use -cluster XX.


Also, can you check that the bin folder have the permission that the data folder ? Maybe you just need to add write permission to the bin folder.

Thanks for the report

Share this comment


Link to comment
Share on other sites
....

Ok thanks for the reply. with relative path when it was working with the data/ folder everything was fine, but I was just lucky it was working as I understand. The relative path was and is still required for me, but as ../ works fine as a path for now, it is my solution (I needed it to make DST server compatible with Open Game Panel http://www.opengamepanel.org/forum/index.php a project to manage/install game servers) So for now I found everything I needed and DST servers install, configure, and runs fine now in OGP with CAVES supported too with a little trick (the two processes is not helping with Open Game Panel as you need different game server folders for each process/server you start)

edit: bin/ permission were 771 and other folders  are 775 maybe that was the problem but do not think so, my user should still be able to read/write

 

edit2: issue can be closed but I don't have power (or knowledge) to do that.

Edited by omano

Share this comment


Link to comment
Share on other sites
....


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now