Native Linux server (with management scripts)

There's lots of things people want to see, doesn't make it any better at interoperability if I change existing stuff to something completely different.
well sometimes different is better.. infact in that case its most definitely better because there is no other way (short of me actually doing it from sourc,e compiling and server restarts, but that is overkill when what could be done is a lot simpler and allows for scripting making it much easier for everyone overall), players typing in fake commands directly to chat for all to see because its the only way a hook can be used as you say because its not at all possible to get unknown commands entered to the actual console and passed to a consolehook, not displaying a command prefixed with \ etc that is sent to chat and could be hidden and not sent back and passed to a commandhook... seems ideal

and yet its not going to be possible because of some other server manager ive never even heard of that cannot adapt that is just disappointing. Cannot it not just be an option for those who aren't using this other server manager

but whatever i don't blame you, you do enough for those running servers, more than funpimps are doing.

 
So the memory leak, crash details we discussed earlier are:

Code:
root@:~# 7dtd.sh status one
Instance: one

Status: Running
Open ports:
   25000 (udp)
   25001 (udp)
   25002 (udp)
   27036 (udp)
   57323 (tcp)
   8081 (tcp)
/usr/local/lib/7dtd/common.sh: line 186: 59065 Killed                  nc 127.0.0.1 $TEL_PORT 0<&3
Players:

Game info:
   Server name:    Server
   Password:
   Max players:    64
   World:          Random Gen

Network info:
   Port:           25000
   Public:         true
   Control Panel:  off
   Telnet:         Port 8081, Pass
105 Threads

Memory full, 6204/7999MB, swapping like crazy.

~20 players

And the log is full of this, occuring just before crashing.

Code:
2014.09.14 18:39:26: Removing observed entity 3
2014.09.14 18:39:26: Exited thread_CommWriter: cl=2, ch=1
2014.09.14 18:39:26: Exited thread_CommWriter: cl=2, ch=2
2014.09.14 18:39:26: No objects for the given player ID were deleted 3
2014.09.14 18:39:27: Exited thread_CommReader: cl=2, ch=1
2014.09.14 18:39:27: Exited thread_CommReader: cl=2, ch=2
2014.09.14 18:39:27: OnPlayerDisconnected 3
2014.09.14 18:39:27: No objects for the given player ID were deleted 3
2014.09.14 18:39:27: Exception in MapRendering.RenderSingleChunk(): AllocsFixes.JSON.MalformedJSONException: End of JSON reached before parsing finished
2014.09.14 18:39:27: at AllocsFixes.JSON.Parser.SkipWhitespace (System.String json, System.Int32& offset) [0x00000] in <filename unknown>:0
2014.09.14 18:39:27: at AllocsFixes.JSON.Parser.ParseInternal (System.String json, System.Int32& offset) [0x00000] in <filename unknown>:0
2014.09.14 18:39:27: at AllocsFixes.JSON.Parser.Parse (System.String json) [0x00000] in <filename unknown>:0
2014.09.14 18:39:27: at AllocsFixes.MapRendering.MapRendering.LoadMapInfo () [0x00000] in <filename unknown>:0
2014.09.14 18:39:27: at AllocsFixes.MapRendering.MapRendering..ctor () [0x00000] in <filename unknown>:0
2014.09.14 18:39:27: at AllocsFixes.MapRendering.MapRendering.get_Instance () [0x00000] in <filename unknown>:0
2014.09.14 18:39:27: at AllocsFixes.MapRendering.MapRendering.<RenderSingleChunk>m__0 (System.Object o) [0x00000] in <filename unknown>:0
2014.09.14 18:39:28: Exception in MapRendering.RenderSingleChunk(): AllocsFixes.JSON.MalformedJSONException: End of JSON reached before parsing finished
2014.09.14 18:39:28: at AllocsFixes.JSON.Parser.SkipWhitespace (System.String json, System.Int32& offset) [0x00000] in <filename unknown>:0
2014.09.14 18:39:28: at AllocsFixes.JSON.Parser.ParseInternal (System.String json, System.Int32& offset) [0x00000] in <filename unknown>:0
2014.09.14 18:39:28: at AllocsFixes.JSON.Parser.Parse (System.String json) [0x00000] in <filename unknown>:0
2014.09.14 18:39:28: at AllocsFixes.MapRendering.MapRendering.LoadMapInfo () [0x00000] in <filename unknown>:0
2014.09.14 18:39:28: at AllocsFixes.MapRendering.MapRendering..ctor () [0x00000] in <filename unknown>:0
2014.09.14 18:39:28: at AllocsFixes.MapRendering.MapRendering.get_Instance () [0x00000] in <filename unknown>:0
2014.09.14 18:39:28: at AllocsFixes.MapRendering.MapRendering.<RenderSingleChunk>m__0 (System.Object o) [0x00000] in <filename unknown>:0
2014.09.14 18:39:28: Exception in MapRendering.RenderSingleChunk(): AllocsFixes.JSON.MalformedJSONException: End of JSON reached before parsing finished
2014.09.14 18:39:28: at AllocsFixes.JSON.Parser.SkipWhitespace (System.String json, System.Int32& offset) [0x00000] in <filename unknown>:0
2014.09.14 18:39:28: at AllocsFixes.JSON.Parser.ParseInternal (System.String json, System.Int32& offset) [0x00000] in <filename unknown>:0
2014.09.14 18:39:29: at AllocsFixes.JSON.Parser.Parse (System.String json) [0x00000] in <filename unknown>:0
2014.09.14 18:39:29: at AllocsFixes.MapRendering.MapRendering.LoadMapInfo () [0x00000] in <filename unknown>:0
2014.09.14 18:39:29: at AllocsFixes.MapRendering.MapRendering..ctor () [0x00000] in <filename unknown>:0
2014.09.14 18:39:29: at AllocsFixes.MapRendering.MapRendering.get_Instance () [0x00000] in <filename unknown>:0
2014.09.14 18:39:29: at AllocsFixes.MapRendering.MapRendering.<RenderSingleChunk>m__0 (System.Object o) [0x00000] in <filename unknown>:0
2014.09.14 18:39:29: Exception in MapRendering.RenderSingleChunk(): AllocsFixes.JSON.MalformedJSONException: End of JSON reached before parsing finished
2014.09.14 18:39:29: at AllocsFixes.JSON.Parser.SkipWhitespace (System.String json, System.Int32& offset) [0x00000] in <filename unknown>:0
2014.09.14 18:39:29: at AllocsFixes.JSON.Parser.ParseInternal (System.String json, System.Int32& offset) [0x00000] in <filename unknown>:0
2014.09.14 18:39:29: at AllocsFixes.JSON.Parser.Parse (System.String json) [0x00000] in <filename unknown>:0
2014.09.14 18:39:29: at AllocsFixes.MapRendering.MapRendering.LoadMapInfo () [0x00000] in <filename unknown>:0
2014.09.14 18:39:29: at AllocsFixes.MapRendering.MapRendering..ctor () [0x00000] in <filename unknown>:0
2014.09.14 18:39:30: at AllocsFixes.MapRendering.MapRendering.get_Instance () [0x00000] in <filename unknown>:0
2014.09.14 18:39:30: at AllocsFixes.MapRendering.MapRendering.<RenderSingleChunk>m__0 (System.Object o) [0x00000] in <filename unknown>:0
2014.09.14 18:39:30: Exception in MapRendering.RenderSingleChunk(): AllocsFixes.JSON.MalformedJSONException: End of JSON reached before parsing finished
2014.09.14 18:39:30: at AllocsFixes.JSON.Parser.SkipWhitespace (System.String json, System.Int32& offset) [0x00000] in <filename unknown>:0
2014.09.14 18:39:30: at AllocsFixes.JSON.Parser.ParseInternal (System.String json, System.Int32& offset) [0x00000] in <filename unknown>:0
2014.09.14 18:39:30: at AllocsFixes.JSON.Parser.Parse (System.String json) [0x00000] in <filename unknown>:0
2014.09.14 18:39:30: at AllocsFixes.MapRendering.MapRendering.LoadMapInfo () [0x00000] in <filename unknown>:0
2014.09.14 18:39:30: at AllocsFixes.MapRendering.MapRendering..ctor () [0x00000] in <filename unknown>:0
2014.09.14 18:39:30: at AllocsFixes.MapRendering.MapRendering.get_Instance () [0x00000] in <filename unknown>:0
2014.09.14 18:39:30: at AllocsFixes.MapRendering.MapRendering.<RenderSingleChunk>m__0 (System.Object o) [0x00000] in <filename unknown>:0
2014.09.14 18:39:30: Exception in MapRendering.RenderSingleChunk(): AllocsFixes.JSON.MalformedJSONException: End of JSON reached before parsing finished
2014.09.14 18:39:31: at AllocsFixes.JSON.Parser.SkipWhitespace (System.String json, System.Int32& offset) [0x00000] in <filename unknown>:0
2014.09.14 18:39:31: at AllocsFixes.JSON.Parser.ParseInternal (System.String json, System.Int32& offset) [0x00000] in <filename unknown>:0
2014.09.14 18:39:31: at AllocsFixes.JSON.Parser.Parse (System.String json) [0x00000] in <filename unknown>:0
2014.09.14 18:39:31: at AllocsFixes.MapRendering.MapRendering.LoadMapInfo () [0x00000] in <filename unknown>:0
2014.09.14 18:39:31: at AllocsFixes.MapRendering.MapRendering..ctor () [0x00000] in <filename unknown>:0
2014.09.14 18:39:31: at AllocsFixes.MapRendering.MapRendering.get_Instance () [0x00000] in <filename unknown>:0
2014.09.14 18:39:31: at AllocsFixes.MapRendering.MapRendering.<RenderSingleChunk>m__0 (System.Object o) [0x00000] in <filename unknown>:0
2014.09.14 18:39:31: Exception in MapRendering.RenderSingleChunk(): AllocsFixes.JSON.MalformedJSONException: End of JSON reached before parsing finished
2014.09.14 18:39:31: at AllocsFixes.JSON.Parser.SkipWhitespace (System.String json, System.Int32& offset) [0x00000] in <filename unknown>:0
2014.09.14 18:39:31: at AllocsFixes.JSON.Parser.ParseInternal (System.String json, System.Int32& offset) [0x00000] in <filename unknown>:0
2014.09.14 18:39:31: at AllocsFixes.JSON.Parser.Parse (System.String json) [0x00000] in <filename unknown>:0
2014.09.14 18:39:31: at AllocsFixes.MapRendering.MapRendering.LoadMapInfo () [0x00000] in <filename unknown>:0
2014.09.14 18:39:32: at AllocsFixes.MapRendering.MapRendering..ctor () [0x00000] in <filename unknown>:0
2014.09.14 18:39:32: at AllocsFixes.MapRendering.MapRendering.get_Instance () [0x00000] in <filename unknown>:0
2014.09.14 18:39:32: at AllocsFixes.MapRendering.MapRendering.<RenderSingleChunk>m__0 (System.Object o) [0x00000] in <filename unknown>:0
2014.09.14 18:39:32: Exception in MapRendering.RenderSingleChunk(): AllocsFixes.JSON.MalformedJSONException: End of JSON reached before parsing finished
2014.09.14 18:39:32: at AllocsFixes.JSON.Parser.SkipWhitespace (System.String json, System.Int32& offset) [0x00000] in <filename unknown>:0
A few threads are left after 7dtd.sh kill <instance>

killall /home/sdtd/engine/7DaysToDie.x86 fixes that.

No issues restarting the game, as I run saveworld in 40 minute intervals.

 
Hi all, today i tried to install a 7dtd Linux dedicated server ony Linux Debian 7 Root Server.

I tried it on much ways but allways i got the following errors.

Shell Output:

==============

Code:
root@##########:/usr/local/lib/7dtd/commands# 7dtd.sh updateengine
A newer version of the engine is available.
Local buildid:     0
Available buildid: 375426

Continue? (yn) y
Updating...
Redirecting stderr to '/root/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation
-- type 'quit' to exit --
Loading Steam API...OK.
"@sSteamCmdForcePlatformType" = "windows"

Logging in user 'neojayserver' to Steam Public...Logged in OK
Waiting for license info...OK
ERROR! Failed to install app '294420' (No subscription)
/home/buildbot/buildslave/steam_rel_client_linux/build/src/clientdll/configstore.cpp (1292) : Assertion Failed: Saving local config store failed during shutdown
/home/buildbot/buildslave/steam_rel_client_linux/build/src/clientdll/configstore.cpp (101) : Assertion Failed: ConfigStore (UserLocalConfigStore) is dirty, and being destroyed, we're discarding data
/home/buildbot/buildslave/steam_rel_client_linux/build/src/clientdll/configstore.cpp (1292) : Assertion Failed: Saving local config store failed during shutdown
/home/buildbot/buildslave/steam_rel_client_linux/build/src/clientdll/configstore.cpp (101) : Assertion Failed: ConfigStore (InstallConfigStore) is dirty, and being destroyed, we're discarding data
cp: Aufruf von stat für „/home/sdtd/engine/Install/32bit/SteamworksManaged.dll“ nicht mِglich: Datei oder Verzeichnis nicht gefunden
stderr.txt:

==============

Code:
Assert( Assertion Failed: Saving local config store failed during shutdown ):/home/buildbot/buildslave/steam_rel_client_linux/build/src/clientdll/configstore.cpp:1292

No minidump written, nothing to upload.
Hope someone can help me.

 
Code:
Logging in user 'neojayserver' to Steam Public...Logged in OK
Waiting for license info...OK
ERROR! Failed to install app '294420' (No subscription)
You logged in with an account that does not own 7dtd.

 
Yeah i recognized it,

so i redone the steps with my direct steam account which owns 7dtd.

but i still get the same errors:

Code:
/home/buildbot/buildslave/steam_rel_client_linux/build/src/clientdll/configstore.cpp (1292) : Assertion Failed: Saving local config store failed during shutdown
/home/buildbot/buildslave/steam_rel_client_linux/build/src/clientdll/configstore.cpp (101) : Assertion Failed: ConfigStore (UserLocalConfigStore) is dirty, and being destroyed, we're discarding data
/home/buildbot/buildslave/steam_rel_client_linux/build/src/clientdll/configstore.cpp (1292) : Assertion Failed: Saving local config store failed during shutdown
/home/buildbot/buildslave/steam_rel_client_linux/build/src/clientdll/configstore.cpp (101) : Assertion Failed: ConfigStore (InstallConfigStore) is dirty, and being destroyed, we're discarding data
i also installed steamcmd manually etc.

but i still get those errors.

 
Code:
Logging in user 'neojayserver' to Steam Public...Logged in OK
Waiting for license info...OK
ERROR! Failed to install app '294420' (No subscription)
You logged in with an account that does not own 7dtd.


Ok i´ve found the way to setup working steamcmd and installed the game with my account (the one i used for purchase).

I Could start the server instance, but now i´ve got to much errors and can´t join. Pls Help.

Here´s the log:

http://pastebin.com/14SbijCD

 
Did you fiddle with the instance folder manually? Looks like the permissions are wrong. If there's no data in yet (i.e. you started a new save) I would recommend deleting the "Random Gen" folder in the instance, make sure the instance folder itself has correct permissions (sdtd.sdtd) and then start it again.

 
Did you fiddle with the instance folder manually? Looks like the permissions are wrong. If there's no data in yet (i.e. you started a new save) I would recommend deleting the "Random Gen" folder in the instance, make sure the instance folder itself has correct permissions (sdtd.sdtd) and then start it again.
doesn´t work. same errors

 
Ticket #60 (Hook for player deaths) created by AllocplayerDied <died name> playerKilled <killer name> <killed name>
possible to add in the player position of death? would be useful

 
doesn´t work. same errors
Hm, ok, weird. Right now no idea and I don't really have any free time today. I'll get back to you tomorrow.

possible to add in the player position of death? would be useful
Unfortunately that's not in the log :(

 
Hm, ok, weird. Right now no idea and I don't really have any free time today. I'll get back to you tomorrow.

Unfortunately that's not in the log :(
Can you upload all your server files (all folders and files etc.)

then i can place alle the missing stuff and try it this way.

 
doesn´t work. same errors
I had errors similar to yours when I first tried to install/create a 7dtd server. Just like you I installed steamcmd and other stuff manually which, at least in my case, broke tons of dependencies, set the wrong folder permissions and so on. I ended up doing a clean reinstall of everything using only the scripts provided by Alloc; worked like a charm and was done in ten minutes, so if it is possible for you I would advise you to simple do a clean reinstall. :)

 
Can you upload all your server files (all folders and files etc.) then i can place alle the missing stuff and try it this way.
Nope, I won't upload copyrighted material.

We can try to figure out what exactly is wrong with your setup tomorrow. (Or you might do as cynexit said: Install with the scripts instead of using steamcmd manually)

 
I am getting some exceptions here and there, maybe you could state if any of them are important Alloc :D

2014.09.16 19:38:24: No objects for the given player ID were deleted 2182014.09.16 19:38:25: NullReferenceException: Object reference not set to an instance of an object

2014.09.16 19:38:25: at ConnectionManager.RemovePlayer (Int32 _clientId, Boolean _bShutdown) [0x00000] in <filename unknown>:0

2014.09.16 19:38:25: at StaticDirectories+scl0001.MoveNext () [0x00000] in <filename unknown>:0

2014.09.16 19:38:25: Telnet connection from: 127.0.0.1:44396

2014.09.15 20:22:52: Updating player inventory - player id: 7110502014.09.15 20:22:54: EAC UserStatusHandler callback. Status: Disconnected GUID: 76561198152123456 ReqKick: True

2014.09.15 20:22:54: EAC kicks player bitchboom!, status Disconnected

2014.09.15 20:22:54: NullReferenceException: Object reference not set to an instance of an object

2014.09.15 20:22:54: at StaticDirectories+scl0001.MoveNext () [0x00000] in <filename unknown>:0
 
Weird server crashing sometimes after a player disconnects...

2014.09.17 02:36:14: GMSG: John Doe: cya

2014.09.17 02:36:16: Updating player inventory - player id: 182382

2014.09.17 02:36:23: Updating player inventory - player id: 153396

2014.09.17 02:36:23: Freeing user John Doe

2014.09.17 02:36:23: Fallback handler could not load library /home/sdtd/engine/7DaysToDie_Data/Mono/x86/SteamworksNative

2014.09.17 02:36:23: Player John Doe disconnected after 81.2 minutes

2014.09.17 02:36:23: Player set to offline: 76561198001001111

2014.09.17 02:36:23: Removing player with id clientId=3, entityId=153396

2014.09.17 02:36:23: GMSG: John Doe left the game

2014.09.17 02:36:23: Removing observed entity 5

2014.09.17 02:36:23: Exited thread_CommWriter: cl=3, ch=1

2014.09.17 02:36:23: No objects for the given player ID were deleted 3

2014.09.17 02:36:23: Exited thread_CommWriter: cl=3, ch=2

2014.09.17 02:36:23: Exited thread_CommReader: cl=3, ch=1

2014.09.17 02:36:23: Exited thread_CommReader: cl=3, ch=2

2014.09.17 02:36:23: OnPlayerDisconnected 3

2014.09.17 02:36:23: No objects for the given player ID were deleted 3

Hm, ok, weird. Right now no idea and I don't really have any free time today. I'll get back to you tomorrow.

Unfortunately that's not in the log :(
Do you pass on any of these suggestions onto funpimps for things they could add? The player chat is my biggest beaf as I have to do steamid lookup, when it would be a huge amount of sense if the steamid (or atleast playerid) was passed to the chat logs, players can change name anytime they like, making for continuity screwup unless you log every name changes aswel.. just gets messy.

 
Also I've gotten disconnected from the server without actually disconnecting myself... and noticed in the log file the console never does something like "Player <name> disconnected after 48.6 minutes" before disconnecting me on these occasions, it just does the other stuff like

"Player set to offline: <steamid>"

 
hi Alloc,

(maybe a noob question ^^')What do you think about running a server in 64bits? Is it possible? and what could we expect from performance gain?

Thx again for that awesome script/mod :D

 
I am getting some exceptions here and there, maybe you could state if any of them are important Alloc :D
Probably not, but as it's not my code I can't tell for sure ;)

Weird server crashing sometimes after a player disconnects...
No problem shown in the log. Probably something in the core game that triggers on rare occasions but hard to find without any errors in the log ;)

Do you pass on any of these suggestions onto funpimps for things they could add? The player chat is my biggest beaf as I have to do steamid lookup, when it would be a huge amount of sense if the steamid (or atleast playerid) was passed to the chat logs, players can change name anytime they like, making for continuity screwup unless you log every name changes aswel.. just gets messy.
Passing on: let's just say "kinda" ;)

Passing more information to the log in that aspect makes sense, I will see what's possible there.

Also I've gotten disconnected from the server without actually disconnecting myself... and noticed in the log file the console never does something like "Player <name> disconnected after 48.6 minutes" before disconnecting me on these occasions, it just does the other stuff like "Player set to offline: <steamid>"
The "disconnected after" should be normal, if it is not shown that is more of an error ;)

So I do not know why you get disconnected at those times. I would assume it's an client issue, not a server one, as this message can only be shown if the server receives a "disconnect"-package from the client (which would not be there if the server kicked you IIRC).

hi Alloc,(maybe a noob question ^^')What do you think about running a server in 64bits? Is it possible? and what could we expect from performance gain?
Well, for one it would probably allow more players on the server ;) Not sure if it would affect anything else.

Doing so is a matter of having the steamworks integration for 64 bit which currently is not possible. Hope that changes in the really near future though.

 
can you add into the webserver api a way to get a players friend list maybe shown through the player inventory or just something separate. Its not super needed but I have some playertext commands that they can use to see who owns a region they are standing in among other things etc, and would be useful to have that extra info.

Also is it safe to update engine for new 9.3 hotfix patch? or any script update for the new 9.3 needed?

I still desire player /text commands being hidden and passed onto a textcommandHook :)

 
can you add into the webserver api a way to get a players friend list maybe shown through the player inventory or just something separate. Its not super needed but I have some playertext commands that they can use to see who owns a region they are standing in among other things etc, and would be useful to have that extra info.
Hm, yeah, that should be good :)

Also is it safe to update engine for new 9.3 hotfix patch? or any script update for the new 9.3 needed?
Should be safe, mod is updated.

 
Back
Top