• If you have a mod, tool or prefab, please use the Resources section. Click Mods at the top of the forums.

Improvements for the dedicated server

Seeing something weird with the webserver since A17, maybe you can shed some light on what's happening.

For high pop servers, I get ESOCKETTIMEDOUT / ETIMEDOUT out errors when doing a request. So far, I've only seen it happen on servers with more than 24 people online. I followed up with the affected server owners to try and track it down to see if the server has any network issues or has maxed out on resources but they report it's all fine. Server runs okay for players.

CSMM also doesn't have any network issues, it only happens for those select servers. I've tried doing a manual request to a server when this happens and see the same errors then.

I can't really test this on a dev server because I can't convince 24+ people to join ;p.

Thanks!

 
Last edited by a moderator:
It appears at least some have a problem with the web map not displaying all the admin options (player location, inventory, logs etc.) I updated to rev 336 but no go. webpermissions.xml and serveradmins.xml set correctly I think:
Level: Web function

2000: web.map

0: webapi.GetAnimalsLocation

0: webapi.GetHostileLocation

0: webapi.Null

0: webapi.GetPlayersOnline

0: webapi.GetPlayersLocation

0: webapi.GetPlayerInventory

0: webapi.GetLandClaims

2000: webapi.getstats

2000: webapi.executeconsolecommand

0: webapi.GetLog

2000: webapi.getwebuiupdates

0: webapi.GetServerInfo

0: webapi.GetPlayerList

2000: webapi.getallowedcommands

0: webapi.GetPlayerInventories

0: webapi.viewallclaims

0: webapi.viewallplayers

Level: SteamID (Player name if online)

0: 765611xxxxxxxxx07

For no known reason the webmap started working properly and all the expected check boxes show up. I made no changes *at all* though the options showed following a scheduled restart. However, the server process was restarted many times prior and it made no difference. Weird.

Sorry I don't have anything more concrete to offer.

 
I've installed Allocs because it is available to install from my server host. I can get a map to work, but i cannot get the server to work with envuls CBSM. another thread stated that Allocs isnt ready for a17 and thats my issue. but i find it hard to believe because some parts are working and others are not. mostly i can see things happening on the map, but not a vial of the map itself through cBSM. I am hoping somebody here with more experience can shed some light on this. I've never had a problem with allocs or CBSM connections on previous alpha versions.

https://cbsm.envul.com/view-7-days-to-die-map-18480/?fbclid=IwAR1sP88S5hM5WO4uglq8p4cc74LojWl8P5lgG9b9ZD1t_uO_yFQ_urTSCYY

 
I've installed Allocs because it is available to install from my server host. I can get a map to work, but i cannot get the server to work with envuls CBSM. another thread stated that Allocs isnt ready for a17 and thats my issue. but i find it hard to believe because some parts are working and others are not. mostly i can see things happening on the map, but not a vial of the map itself through cBSM. I am hoping somebody here with more experience can shed some light on this. I've never had a problem with allocs or CBSM connections on previous alpha versions.
https://cbsm.envul.com/view-7-days-to-die-map-18480/?fbclid=IwAR1sP88S5hM5WO4uglq8p4cc74LojWl8P5lgG9b9ZD1t_uO_yFQ_urTSCYY
To be fair even when it supposedly worked back in a15, CBSM was never reliable with the web map.

Just use it directly with IP : Port.

 
Allocs, I'm not sure if I get this right but with the map being pregenerated now is it possible to reveal the entire webmap through a command?

Edit: nevermind, learned the magic of visitmap :bi_polo:

 
Last edited by a moderator:
Hello !

Everybody would be very grateful if you add some explanations in https://7dtd.illy.bz/wiki/Server%20fixes#Download, that version. 322 (14_17_26) (2018-06-20) is the latest build for Alpha 16, and newer builds are ONLY for A17.

A separate download link for rev.322 will also be very useful!

Killed more than an hour today just to understand it. Yeah, it's in release notes, but ....

 
Heh, I'd hazard a guess, but reading the release notes is pretty much required for things like these, no? And it's in bold letters *g* But yeah, it wouldn't hurt either, so if Alloc has time, I suppose it's a good idea ^^

On another note @Alloc: I'm not sure how exactly your mod works, does it have any control over the telnet? That thing is crashing sometimes and can not be recovered without restarting the 7dtd-server. Would it be possible to integrate a watchdog, possibly with a flag? So servermanagers could say: if you don't see traffic for 30 seconds, restart the telnet? Since servermanagers usually ping and request on a five second basis or less, that would totally work out :)

 
Are we getting an update to Alloc's server fixes. The new update is giving an error for the webmap.

2018-12-12T16:13:52 354.224 INF [EAC] Starting EAC server

2018-12-12T16:13:52 354.260 ERR GetString: InvalidCastException LandClaimOfflineDurabilityModifier

2018-12-12T16:13:52 354.261 INF Error in Web.ctor: System.ArgumentException: Path is empty

at System.IO.Directory.CreateDirectory (System.String path) [0x00000] in <filename unknown>:0

at AllocsFixes.NetConnections.Servers.Web.WebPermissions..ctor () [0x00000] in <filename unknown>:0

at AllocsFixes.NetConnections.Servers.Web.WebPermissions.get_Instance () [0x00000] in <filename unknown>:0

at AllocsFixes.NetConnections.Servers.Web.Handlers.PathHandler..ctor (System.String _moduleName, Int32 _defaultPermissionLevel) [0x00000] in <filename unknown>:0

at AllocsFixes.NetConnections.Servers.Web.Handlers.SimpleRedirectHandler..ctor (System.String target, System.String moduleName) [0x00000] in <filename unknown>:0

at AllocsFixes.NetConnections.Servers.Web.Web..ctor () [0x00000] in <filename unknown>:0

 
yeah, looking like an update is requird ^^

** Working fine now, thanks for the quick update ^^

 
Last edited by a moderator:
yeah, looking like an update is requird ^^
** Working fine now, thanks for the quick update ^^
Can confirm that the server crashes with the mod loaded when a player connects. Removing the mod, server starts up normal and players can log on without issues.

Looking forward to the update :D

Thanks for your work!

Edit:

Wow, fastest patch ever! Server starting up fine now, looks good so far. Thanks!

 
Last edited by a moderator:
I've deployed your latest build yesterday and everything looked good and worked :) However, after the scheduled nightly server restart at 5.10 am, the /map sub-directory in the Save directory is suddenly empty and the map thus gone. The other Info is there (Player offline location, claim blocks, ...)
So, is this still an issue for you?

using the "rendermap" command results in an error:
I am also getting this same error
I can also confirm that "rendermap" is not working.
Yeah, rendermap is currently not working. Wondering though what your reasons for using it even are. This was basically only meant for the very first round as people back then added the mod way after starting a save game. This command does not give you any advantage if you run the mod from the start of a new savegame.

login through steam still failedhere the log:

2018-11-23T01:59:10 1092.240 ERR Error validating login:

2018-11-23T01:59:10 1092.241 EXC Error getting response stream (Write: The authentication or decryption has failed.): SendFailure

TlsException: The authentication or decryption has failed.

at Mono.Security.Protocol.Tls.RecordProtocol.ProcessAlert (AlertLevel alertLevel, AlertDescription alertDesc)

at Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback (IAsyncResult asyncResult)

Rethrow as IOException: The authentication or decryption has failed.

at Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback (IAsyncResult asyncResult)

Rethrow as WebException: Error getting response stream (Write: The authentication or decryption has failed.): SendFailure

at System.Net.HttpWebRequest.EndGetRequestStream (IAsyncResult asyncResult)

at System.Net.HttpWebRequest.GetRequestStream ()

at AllocsFixes.NetConnections.Servers.Web.OpenID.Validate (HttpListenerRequest _req)

at AllocsFixes.NetConnections.Servers.Web.Web.DoAuthentication (HttpListenerRequest _req, WebConnection& _con)

AllocsFixes.NetConnections.Servers.Web.Web:HandleRequest(IAsyncResult)

System.Net.ListenerAsyncResult:InvokeCallback(Object)
As I said this must be an issue on your end. What OS are you running? If Linux, what distribution?

little bug in give command: ...
Thanks, fixed :)

* Higher maxZoom
You mean the amount of zoom levels (i.e. zooming further out)? Or zooming further in, even though there's no more detailed pixel data available (it would only scale the 1m per pixel image data)?

* No clustering of Icons on the lowest 3 zoom levels
That requires a change to the JS files: map.js line 83, changing the condition to "zoom > mapinfo.maxzoom - 3" and the value 10 to 0 should do it.

* Update interval for the icons configurable from 100ms+
You mean the player markers? This would be map.js line 285, change the timeout from 4000 to whatever you need. This can heavily increase traffic and thus inflict performance overhead on the server though, especially with public servers. Can make both this and the clustering as a setting on top of the file but it will stay a JS file change.

lots of this in output log
Code:
2018-12-06T17:00:20 263.259 INF Error in GM_SavePlayerData: System.NullReferenceException: Object reference not set to an instance of an object
 at AllocsFixes.PersistentData.Inventory.CreateInvItem (.ItemValue _itemValue, Int32 _count, Int32 _playerId)
 at AllocsFixes.PersistentData.Inventory.ProcessEqu (.Equipment sourceEquipment, Int32 _playerId)
 at AllocsFixes.PersistentData.Inventory.Update (.PlayerDataFile pdf)
 at AllocsFixes.PersistentData.Player.Update (.PlayerDataFile _pdf)
 at AllocsFixes.PlayerDataStuff.GM_SavePlayerData (.ClientInfo _cInfo, .PlayerDataFile _playerDataFile)
With latest mod and latest A17 build? New saves, no old player data or anything like that? Any content mods on the server?

For high pop servers, I get ESOCKETTIMEDOUT / ETIMEDOUT out errors when doing a request. So far, I've only seen it happen on servers with more than 24 people online. I followed up with the affected server owners to try and track it down to see if the server has any network issues or has maxed out on resources but they report it's all fine. Server runs okay for players.
Should have only been an issue in the first experimental, the cause should have been fixed since the second public build.

I've installed Allocs because it is available to install from my server host. I can get a map to work, but i cannot get the server to work with envuls CBSM.
If the map itself works this is on CBSM's end so unfortunately nothing I can help with.

Everybody would be very grateful if you add some explanations in https://7dtd.illy.bz/wiki/Server%20fixes#Download, that version. 322 (14_17_26) (2018-06-20) is the latest build for Alpha 16, and newer builds are ONLY for A17.
What else than putting it in the notes would you like me to do? I don't see how this would be done without cluttering the whole page. Also, as ecv stated ... I expect people who run *servers* to read notes ;)

A separate download link for rev.322 will also be very useful!
There's a section "Old releases" in the "Downloads" section on the page that links to all builds that I uploaded so far.

..., does it have any control over the telnet? That thing is crashing sometimes and can not be recovered without restarting the 7dtd-server. Would it be possible to integrate a watchdog, possibly with a flag? So servermanagers could say: if you don't see traffic for 30 seconds, restart the telnet? Since servermanagers usually ping and request on a five second basis or less, that would totally work out :)
There's nothing like a ""Telnet"-service" in the 7dtd server. It's just a part of the code that handles the TCP sockets for the net console. If there's an issue with that code it needs to be found and fixed, because otherwise it won't even be detectable. But obviously I need some good data, preferrably some repro case, to find that one :(

 
Got an error trying to render map.

Code:
2018-12-12T15:33:24 205.705 INF Error in RenderMap.Run: System.ArgumentException: An element with the same key already exists in the dictionary.
at System.Collections.Generic.Dictionary`2[system.String,ThreadManager+ThreadInfo].Add (System.String key, .ThreadInfo value) [0x00000] in <filename unknown>:0 
at ThreadManager.startThread (System.String _name, .ThreadFunctionDelegate _threadDelegate, .ThreadFunctionDelegate _threadInit, .ThreadFunctionLoopDelegate _threadLoop, .ThreadFunctionEndDelegate _threadEnd, ThreadPriority _threadPriority, System.Object _parameter, .ExitCallbackThread _exitCallback, Boolean _runInMainThread) [0x00000] in <filename unknown>:0 
at ThreadManager.StartThread (System.String _name, .ThreadFunctionDelegate _threadInit, .ThreadFunctionLoopDelegate _threadLoop, .ThreadFunctionEndDelegate _threadEnd, ThreadPriority _threadPriority, System.Object _parameter, .ExitCallbackThread _exitCallback, Boolean _runInMainThread) [0x00000] in <filename unknown>:0 
at RegionFileManager..ctor (System.String _loadDirectory, System.String _saveDirectory, Int32 _maxChunksInCache, Boolean _bSaveOnChunkDrop) [0x00000] in <filename unknown>:0 
at AllocsFixes.MapRendering.MapRendering.RenderFullMap () [0x00000] in <filename unknown>:0 
at AllocsFixes.CustomCommands.RenderMap.Execute (System.Collections.Generic.List`1 _params, CommandSenderInfo _senderInfo) [0x00000] in <filename unknown>:0
 
Got an error trying to render map.

Code:
2018-12-12T15:33:24 205.705 INF Error in RenderMap.Run: System.ArgumentException: An element with the same key already exists in the dictionary.
at System.Collections.Generic.Dictionary`2[system.String,ThreadManager+ThreadInfo].Add (System.String key, .ThreadInfo value) [0x00000] in <filename unknown>:0 
at ThreadManager.startThread (System.String _name, .ThreadFunctionDelegate _threadDelegate, .ThreadFunctionDelegate _threadInit, .ThreadFunctionLoopDelegate _threadLoop, .ThreadFunctionEndDelegate _threadEnd, ThreadPriority _threadPriority, System.Object _parameter, .ExitCallbackThread _exitCallback, Boolean _runInMainThread) [0x00000] in <filename unknown>:0 
at ThreadManager.StartThread (System.String _name, .ThreadFunctionDelegate _threadInit, .ThreadFunctionLoopDelegate _threadLoop, .ThreadFunctionEndDelegate _threadEnd, ThreadPriority _threadPriority, System.Object _parameter, .ExitCallbackThread _exitCallback, Boolean _runInMainThread) [0x00000] in <filename unknown>:0 
at RegionFileManager..ctor (System.String _loadDirectory, System.String _saveDirectory, Int32 _maxChunksInCache, Boolean _bSaveOnChunkDrop) [0x00000] in <filename unknown>:0 
at AllocsFixes.MapRendering.MapRendering.RenderFullMap () [0x00000] in <filename unknown>:0 
at AllocsFixes.CustomCommands.RenderMap.Execute (System.Collections.Generic.List`1 _params, CommandSenderInfo _senderInfo) [0x00000] in <filename unknown>:0
We've got the same error! We didnt find any fix yet :( Anyone?

 
Got an error trying to render map.

Code:
2018-12-12T15:33:24 205.705 INF Error in RenderMap.Run: System.ArgumentException: An element with the same key already exists in the dictionary.
at System.Collections.Generic.Dictionary`2[system.String,ThreadManager+ThreadInfo].Add (System.String key, .ThreadInfo value) [0x00000] in <filename unknown>:0 
at ThreadManager.startThread (System.String _name, .ThreadFunctionDelegate _threadDelegate, .ThreadFunctionDelegate _threadInit, .ThreadFunctionLoopDelegate _threadLoop, .ThreadFunctionEndDelegate _threadEnd, ThreadPriority _threadPriority, System.Object _parameter, .ExitCallbackThread _exitCallback, Boolean _runInMainThread) [0x00000] in <filename unknown>:0 
at ThreadManager.StartThread (System.String _name, .ThreadFunctionDelegate _threadInit, .ThreadFunctionLoopDelegate _threadLoop, .ThreadFunctionEndDelegate _threadEnd, ThreadPriority _threadPriority, System.Object _parameter, .ExitCallbackThread _exitCallback, Boolean _runInMainThread) [0x00000] in <filename unknown>:0 
at RegionFileManager..ctor (System.String _loadDirectory, System.String _saveDirectory, Int32 _maxChunksInCache, Boolean _bSaveOnChunkDrop) [0x00000] in <filename unknown>:0 
at AllocsFixes.MapRendering.MapRendering.RenderFullMap () [0x00000] in <filename unknown>:0 
at AllocsFixes.CustomCommands.RenderMap.Execute (System.Collections.Generic.List`1 _params, CommandSenderInfo _senderInfo) [0x00000] in <filename unknown>:0

We've got the same error! We didnt find any fix yet :( Anyone?
From earlier on this thread:

Yeah, rendermap is currently not working. Wondering though what your reasons for using it even are. This was basically only meant for the very first round as people back then added the mod way after starting a save game. This command does not give you any advantage if you run the mod from the start of a new savegame.
You might be looking for visitmap instead! ;)

 
Last edited by a moderator:
So, is this still an issue for you?<EPIC SNIP>

There's nothing like a ""Telnet"-service" in the 7dtd server. It's just a part of the code that handles the TCP sockets for the net console. If there's an issue with that code it needs to be found and fixed, because otherwise it won't even be detectable. But obviously I need some good data, preferrably some repro case, to find that one :(
Its nice to see that some people can actually deal with megga issues all at once!

 
rlp seems to be broken. SetBlockRPC fails on replacing LCB block with air (only). All other types of blocks are fine to replace with air though.

Cheers

-edit- its some fight over GameManager.ChangeBlocks setBlockRPC's when detecting its a LCB and the setting block to air by RPC by external force. Seems the GameManager wins. Ive managed to find a workaround.

 
Last edited by a moderator:
Hi Alloc,

Do the server fixes need an update? Webserver is fine but getting this error on start up when queied by CBSM:

2018-12-18T15:22:12 378.236 INF Executing command 'listplayers' by Telnet from 67.205.111.132:37284

2018-12-18T15:22:12 378.236 EXC Object reference not set to an instance of an object

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

at ConsoleCmdListPlayers.Execute (System.Collections.Generic.List`1 _params, CommandSenderInfo _senderInfo) [0x00000] in <filename unknown>:0

at SdtdConsole.executeCommand (System.String _command, CommandSenderInfo _senderInfo) [0x00000] in <filename unknown>:0

UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)

UnityEngine.DebugLogHandler:LogException(Exception, Object)

UnityEngine.Logger:LogException(Exception, Object)

UnityEngine.Debug:LogException(Exception)

Logger:masterLogException(Exception)

Logger:Exception(Exception)

Log:Exception(Exception)

SdtdConsole:executeCommand(String, CommandSenderInfo)

SdtdConsole:Update()

Listentities is doing the same thing. No errors when disconnecting CBSM.

 
Last edited by a moderator:
Back
Top