Native Linux server (with management scripts)

Hi.

Iam getting endless lines of this ever since server started:

2018-11-20T15:00:14 17032.761 INF [EAC] Log: [EAC Server] [info] [Cerberus] [backend] Connection established.2018-11-20T15:02:15 17152.788 INF [EAC] Log: [EAC Server] [info] [Cerberus] [backend] Disconnected.

2018-11-20T15:04:15 17272.907 INF [EAC] Log: [EAC Server] [info] [Cerberus] [backend] Connection established.

2018-11-20T15:06:15 17392.932 INF [EAC] Log: [EAC Server] [info] [Cerberus] [backend] Disconnected.

2018-11-20T15:08:15 17513.052 INF [EAC] Log: [EAC Server] [info] [Cerberus] [backend] Connection established.

2018-11-20T15:10:15 17633.077 INF [EAC] Log: [EAC Server] [info] [Cerberus] [backend] Disconnected.
Anyone knows whats this about?

 
Found path: /home/sdtd/engine/7DaysToDieServer.x86_64Mono path[0] = '/home/sdtd/engine/7DaysToDieServer_Data/Managed'

Mono config path = '/home/sdtd/engine/7DaysToDieServer_Data/Mono/etc'

Receiving unhandled NULL exception

#0 0x007ffc2c52d5c0 in funlockfile

#1 0x007ffc2c52db80 in mono_shared_area

#2 0x007ffc2c52dc40 in mono_perfcounters_init

#3 0x007ffc2c52dc50 in mono_debugger_check_runtime_version

#4 0x007ffc2c52dcc0 in mono_print_method_from_ip

#5 0x007ffc2c52dd10 in operator new[](unsigned long, std::nothrow_t const&)

#6 0x007ffc2c52de60 in operator new[](unsigned long, std::nothrow_t const&)

#7 0x007ffc2c52df10 in operator new[](unsigned long, std::nothrow_t const&)

Receiving unhandled NULL exception

#0 0x007ffc2c528680 in funlockfile

#1 0x007ffc2c528c40 in mono_string_hash

#2 0x007ffc2c528c70 in mono_jit_info_table_find

#3 0x007ffc2c528cd0 in mono_pmip

#4 0x007ffc2c528d20 in operator new[](unsigned long, std::nothrow_t const&)

#5 0x007ffc2c52d550 in operator new[](unsigned long, std::nothrow_t const&)

#6 0x007ffc2c52d560 in mono_amd64_throw_exception

#7 0x007ffc2c52d590 in mono_print_method_from_ip

#8 0x007ffc2c52d5c0 in funlockfile

#9 0x007ffc2c52db80 in mono_shared_area

#10 0x007ffc2c52dc40 in mono_perfcounters_init

#11 0x007ffc2c52dc50 in mono_debugger_check_runtime_version

#12 0x007ffc2c52dcc0 in mono_print_method_from_ip

#13 0x007ffc2c52dd10 in operator new[](unsigned long, std::nothrow_t const&)

#14 0x007ffc2c52de60 in operator new[](unsigned long, std::nothrow_t const&)

#15 0x007ffc2c52df10 in operator new[](unsigned long, std::nothrow_t const&)
I'll post in the bug report thread as it does seem a more generic issue.

 
Generating a 16x16 km map on my dedicated Ubuntu server results in 16 GB of Ram filled up (my whole Ram) and then the process stops:

Code:
2018-11-20T19:38:47 3649.208 INF WorldGenerator:Exporting Generated Data: Writing Heightmap to file 92%
2018-11-20T19:38:49 3651.208 INF WorldGenerator:Exporting Generated Data: Writing Heightmap to file 94%
2018-11-20T19:38:51 3653.208 INF WorldGenerator:Exporting Generated Data: Writing Heightmap to file 96%
2018-11-20T19:38:53 3655.208 INF WorldGenerator:Exporting Generated Data: Writing Heightmap to file 98%
OutOfMemoryException: Out of memory
 at (wrapper managed-to-native) object:__icall_wrapper_mono_array_new_specific (intptr,int)
 at VacuumShaders.TextureExtensions.TGA.EncodeToTGA (UnityEngine.Texture2D _texture) [0x00000] in <filename unknown>:0 
 at Utils.SaveTextureAsTGA (UnityEngine.Texture2D _texture, System.String _fileName) [0x00000] in <filename unknown>:0 
 at WorldGenerationEngine.GenerationManager+<ExportGeneratedWorldData>c__Iterator0.MoveNext () [0x00000] in <filename unknown>:0 
 at UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) [0x00000] in <filename unknown>:0 
UnityEngine.MonoBehaviour:StartCoroutineManaged2(IEnumerator)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
WorldGenerationEngine.GenerationManager:<onFinish>m__0(TaskInfo)
ThreadManager:UpdateMainThreadTasks()
GameManager:gmUpdate()
GameManager:Update()

(Filename:  Line: -1)
Guess we have to wait until the tools are adapted for such large maps.

 
Reminder: This is not a 7 Days To Die bug report thread.

This is only about my Linux server management scripts.

 
Reminder: This is not a 7 Days To Die bug report thread.This is only about my Linux server management scripts.
I was not sure if it is a bug, a RWG bug or just my oversized expectation to get Linux dedicated server running (and generating) such a large map. So not really a bug report (yet), just an information.

PS: And i dont know which type of bug that would be :)

 
Last edited by a moderator:
I'll be waiting with bated breath for the update to the scripts! I am not all that familiar with steam cmd and I have been pretty spoiled by these in the past.

I love these scripts by the way! Fantastic work!

 
mine didnt crash immediately it got to the end then this:
2018-11-19T18:38:38 13.476 INF Started thread ChunkCalc

2018-11-19T18:38:38 13.476 INF Started thread ChunkRegeneration

2018-11-19T18:38:38 13.581 INF World.Load: Random Gen

2018-11-19T18:38:38 13.583 INF Loading base world file header...

NullReferenceException: Object reference not set to an instance of an object

at World.LoadWorld (System.String _sWorldName, Boolean _fixedSizeCC) [0x00000] in <filename unknown>:0

at GameManager+<createWorld>c__Iterator7.MoveNext () [0x00000] in <filename unknown>:0

at UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) [0x00000] in <filename unknown>:0

Mine shows as running just stuck at initializing.
I had the same problem but i got it to work with some adjustments. Open the config.xml of the instance and change the following:

1) change <property name="GameMode" value="GameModeSurvivalMP"/> into <property name="GameMode" value="GameModeSurvival"/>

2) change <property name="GameWorld" value="Random Gen"/> into <property name="GameWorld" value="RWG"/>

3) change <property name="ServerDisabledNetworkProtocols" value="SteamNetworking"/> into <property name="ServerDisabledNetworkProtocols" value=""/> (you need SteamNetworking at least if you have set a passwrod for your server

4) add line <property name="PartySharedKillRange" value="100"/>

5) add line <property name="ServerVisibility" value="2"/> (2 means public, 1 only shown to friends, 0 not listed)

6) add line <property name="WorldGenSeed" value="yourSeed"/>

After that the server started, created the map and i was able to join.

Dunno about the MapRendering thing.

 
I had the same problem but i got it to work with some adjustments. Open the config.xml of the instance and change the following:
Yeah, the instance editor isn't updated yet so needs manual fixes to the config when you use it.

3) change <property name="ServerDisabledNetworkProtocols" value="SteamNetworking"/> into <property name="ServerDisabledNetworkProtocols" value=""/> (you need SteamNetworking at least if you have set a passwrod for your server
Hm, password should not affect using LiteNetLib. Our testers have been doing this for months. Can you disable SteamNetworking again and create a bug report with a log from both client and server after failed login with password?

I'll be waiting with bated breath for the update to the scripts! I am not all that familiar with steam cmd and I have been pretty spoiled by these in the past.
I love these scripts by the way! Fantastic work!
Thanks :)

And you can already use the old ones with the new release, just have to fix the config.xml according to Mornus' post above whenever you used the instance editor from the scripts.

 
The network protocols are what the game client is using to communicate with the server?

Is there a good/better/best type to use? I am totally lost on this part of the settings and just leave whatever is in place stock.

Thank you for all of your work on this! :) 7 Days to Die has been my favorite game for many years and running my own home server for myself and some friends to play on has been fun for quite some time now!

 
I am using the linux 7dtd server setup from here.. https://7dtd.illy.bz/wiki

When I use commands..

sudo 7dtd.sh updateengine --experimental

or

sudo 7dtd.sh updateengine --branch -beta

I just get told that the engine is on the newest build on the selected branch "latest_experimental" (local: 3321792, remote: 3321792) and won't seem to update. I have read the wiki extensively but there seems to be no documentation on these command variables.

Can anyone help me with the proper command line so I can update my server to the latest_experimental for A17?

Thanks!

Grampy

 
Well looks like i figured out my own problem.

In looking for why I was having an issue i was looking at the updateengine.sh file when i noticed that there was a --check command. When performing that command it showed me a list of version available for 7 Day to die server and it turns out I seem to be on the latest version of the experimental. However I have no idea how I got on the latest. Puzzling and please disregard this post if you haven't already. user error! =)

Grampy

 
Hm, password should not affect using LiteNetLib. Our testers have been doing this for months. Can you disable SteamNetworking again and create a bug report with a log from both client and server after failed login with password?
Well i have to admit, that i didn't try it at the time of my post. I have read it in the bug thread of b197.

But as requested here the logs from client and sever.

Client complete log: https://pastebin.com/UXx7V77h

Important lines i think???!!!

Code:
2018-11-23T20:08:21 10.213 INF WorldStaticData.Init() needed 2.377s
2018-11-23T20:08:21 10.475 INF [steamworks.NET] Login ok.
2018-11-23T20:08:21 10.779 INF AchievementManager: Received stats and achievements from Steam
2018-11-23T20:08:24 13.382 INF Started thread ServerBrowserListUpdater
2018-11-23T20:08:27 16.152 INF Connecting to server 192.168.178.22:25000...
2018-11-23T20:08:27 16.154 INF NET: LiteNetLib trying to connect to: 192.168.178.22:25000
2018-11-23T20:08:27 16.160 INF Exited thread ServerBrowserListUpdater
2018-11-23T20:08:27 16.250 INF NET: LiteNetLib: Connection failed: ConnectionRejected
2018-11-23T20:08:27 16.251 INF NET: Steam NW trying to connect to: 192.168.178.22:25000
2018-11-23T20:08:27 16.251 INF [steamworks.NET] NET: Resolving SteamID for IP 192.168.178.22:25000
2018-11-23T20:08:27 16.282 INF [steamworks.NET] NET: Connecting to SteamID XXXXXXXXX 
2018-11-23T20:08:42 31.318 INF [steamworks.NET] NET: P2PSessionConnectFail to: XXXXXXXXX - Error: k_EP2PSessionErrorTimeout
2018-11-23T20:08:42 31.464 ERR [NET] Connection to server failed: Connection timed out
Server (shows nothing at connection attempt, but here startup log)

https://pastebin.com/AtKaKrux

 
Not sure if this was discussed on this thread or not, i didn't search, but it seems that the --check command doesn't report accurately the builds issued by steamCMD. I am not a coder/programmer but looking at the updateengine.sh script the --check seems to generate a file called 7dtd.appinfo in the /tmp/ directory. From that point on it just continues to look at this file it seems. If you delete file/tmp/7dtd.appinfo and then do a --check command again it seems to see the correct information. However I still had to run the --force to get it to update the server.

Just thought I would post this for FYI. If its a know issue or not an issue then I apologize for the post in advance. =)

Grampy

 
[uPDATED April 2019] I am now using Alloc's build for my servers. So I'm updating this with as a reference to anyone that want's to run it without Alloc's fixes included.

[OLD Method Dec 2018: My Setup Prior to switching over to Alloc's build]

This is just a basic quick set of shell scripts I created to quickly get the A17 builds running without much fuss and also puts the output log into a tmux session with a tail -f command. So you can activly see the console log as it runs and generates the world files. I did this because i wanted a quick and dirty way to get the A17 builds up and running without fooling around with to many config files for LGSM.

I use TMUX to do this

Install tmux with ...

Code:
sudo apt-get install tmux
I realize this stuff is very rough but it's something I just threw together quickly. This update script adds the -beta operand to pull down the A17 experimental build.

update.sh

Code:
steamcmd +login anonymous +force_install_dir /home/sduser/sdtdservers +app_update 294420 -beta latest_experimental -validate +exit
Make sure to create the "Log" directory and update the location of SDTDLog before you start the server. first run may generate an error due to the server not having a log file to copy yet but subsequent runs will work as the log file will be generated/moved/linked to the current running log.

sdtdserver.sh

Code:
#!/bin/bash

SDTDData="/home/sduser/sdtdservers/7DaysToDieServer_Data"
SDTDLog="/home/sduser/sdtdservers/Log"

for f in $SDTDData/output_log*.txt; do mv $f $SDTDLog; done
rm $SDTDLog/output-atrum.log

tmux new -d -s sdtdserver "./startserver.sh -configfile=atrum.xml"
sleep 2

ln -s $SDTDData/output_log*.txt $SDTDLog/output-atrum.log

tmux new -d -s sdtdloger "/usr/bin/tail -F $SDTDLog/output-atrum.log"
you can call the output log using ./monitor

monitor.sh

Code:
tmux attach -t sdtdloger
can kill the server and monitor sessions using ./killserver.sh

killserver.sh

Code:
tmux kill-session -t sdtdserver
tmux kill-session -t sdtdloger
make sure to chmod 755 the 4 files.

Code:
chmod 755 update.sh
chmod 755 sdtdserver.sh
chmod 755 monitor.sh
chmod 755 killserver.sh
to update the server issue ./update.sh

to start the server (after editing your custom config file) issue ./sdtdserver.sh

to watch the log issue ./monitor.sh

to kill the server and the log watching session issue ./killserver.sh

while your in the monitor session you can press CTRL B followed by Left Shift " to break the screen in half at the horizon. This puts you at a console prompt in the lower window to do other things with. Often i will start an htop session in the lower window so i can see processor utilization and memory usage on 7DaysToDiesServer.x86_64.

NOTE: CTRL B followed by Left Shift % (while in the montior session) breaks the screen into two vertical sessions.

 
Last edited by a moderator:
The network protocols are what the game client is using to communicate with the server?Is there a good/better/best type to use? I am totally lost on this part of the settings and just leave whatever is in place stock.
The default (disabling SteamNetworking) is good to go (that's why it is default ;) ) for typical dedicated servers. LiteNetLib typically performs better than SteamNetworking. The only reason to use SteamNetworking would be if your server is behind a NAT router and you don't want to / can't open the required ports. Though in that case outside people will still only be able to connect to your server once someone connected locally and the others are on this persons friends list.

I am using the linux 7dtd server setup from here.. https://7dtd.illy.bz/wiki
When I use commands..

sudo 7dtd.sh updateengine --experimental

or

sudo 7dtd.sh updateengine --branch -beta

I just get told that the engine is on the newest build on the selected branch "latest_experimental" (local: 3321792, remote: 3321792) and won't seem to update. I have read the wiki extensively but there seems to be no documentation on these command variables.
The second command is wrong, it would be "--branch latest_experimental". Though your first version is preferred for switching exp/stable branches. Adding "--force" always makes sure to update to whatever Steam provides, even if update detection fails for some unknown reason. Update detection checks are only performed every 10 minutes, so if you run e.g. "7dtd.sh updateengine --check" just before a new build is put live on Steam and then another time after a new build is live within 10 minutes from the first execution you'll still get the old data. Unfortunately SteamCMD has some bugs here that this timeout stuff tries to work around.

Well i have to admit, that i didn't try it at the time of my post. I have read it in the bug thread of b197.But as requested here the logs from client and sever.
I assume you always tried to connect by IP and not from the server list. In that case there was a bug in the server that did not show you the password prompt when you tried to login with an invalid / no password and thus it looked like it failed for some unknown reason. This should be fixed in the latest experimental build last night.

 
Yeah, the instance editor isn't updated yet so needs manual fixes to the config when you use it.

Any time frame on when the new update scripts will be available for all the config changes that were made for A17? My version is still v110. Just curious.

Grampy
 
I just updated my linux based dedicated server to A17 and was wondering if there are new or changed property names for the config file that reflect the new settings available in game. For example. You can now control how zombies move during the day, night, when feral and during bloodmoon.

 
Just released v111, which should work fine with A17. Still thinking about removing the instance editor, it's a pain in the ass to keep updated and also makes it incompatible with different versions of the game (e.g. when switching back to A16 now).

Sorry for the long delay, was kinda bad timing on the A17 release for me :(

 
Hey Alloc

Don't know if I'm doing something wrong or if this is a bug but I have some weird behaviour. I had a server on A17.1 b9 and tried updating to the latest stable version.

NulGaiu.png


Then I tried with the --force parameter, it downloaded some stuff from steam and now I get this message.

Engine is already at the newest build on the selected branch "public" (local: 3579269, remote: 3472022)

After this the server refused to boot up but that's most likely because I didn't wipe/change any configs after updating. :D

NulGaiu.jpg

 
Back
Top