Jump to content

Improvements for the dedicated server


Alloc

Recommended Posts

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 ....

Link to comment
Share on other sites

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 :)

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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!

Edited by Gilthanaz (see edit history)
Link to comment
Share on other sites

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 failed

here 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
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 :(

Link to comment
Share on other sites

Got an error trying to render map.

 

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

Link to comment
Share on other sites

Got an error trying to render map.

 

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?

Link to comment
Share on other sites

Got an error trying to render map.

 

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! ;)

Edited by Catalysm (see edit history)
Link to comment
Share on other sites

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!

Link to comment
Share on other sites

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.

Edited by Prisma501 (see edit history)
Link to comment
Share on other sites

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.

Edited by Retsof123 (see edit history)
Link to comment
Share on other sites

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.

 

OK, my bad. This only occurs when starting the server with CBSM already activated. Must remember to deactivate CBSM during initial server startup and only activate once stabilised. Does not affect server restarts. All is well with the world.

Link to comment
Share on other sites

Anyone else has the problem, that on the webmap, I will define them as "not finished connected player" apears with "Player:" all at one spot?

2018-12-28_09h01_46.jpg.0e23078338340ef29ed677a58a9da21c.jpg

Does anyone have a solution how I can delete these empty players from the webmap?

In my savegame folder there are only ~7 player profiles.

Link to comment
Share on other sites

Anyone else has the problem, that on the webmap, I will define them as "not finished connected player" apears with "Player:" all at one spot?

[ATTACH=CONFIG]26738[/ATTACH]

Does anyone have a solution how I can delete these empty players from the webmap?

In my savegame folder there are only ~7 player profiles.

 

Since there is no way to selectively delete player objects from allocs bin whitout api mod, you can just delete /Saves/WorldName/SeedName/AllocsPeristentData.bin.

 

It contains info on all players so that will clean up ALL. As soon as your friends connect again and play they will be on webmap again anyways.

 

Cheers

Link to comment
Share on other sites

  • 2 weeks later...

Hey my 7DTD A17 server wont load the December release. The error is no modinfo.xml found, and then the allocs fixes are ignored - but i checked and each of the three folders has a modinfo.xml, so the server isn't seeing them. I am wondering whether the modinfo files should be in a directory one above the dll files and not in the same directory as the dll files as per the modlets for A17 ? Which would mean creating a sub directory for the dll files but i have no idea what that would be called.

Link to comment
Share on other sites

Hey my 7DTD A17 server wont load the December release. The error is no modinfo.xml found, and then the allocs fixes are ignored - but i checked and each of the three folders has a modinfo.xml, so the server isn't seeing them. I am wondering whether the modinfo files should be in a directory one above the dll files and not in the same directory as the dll files as per the modlets for A17 ? Which would mean creating a sub directory for the dll files but i have no idea what that would be called.

 

No, modinfo.xml files need to be next to the .dll files.

 

From what you are describing, your folder structure is bad. It should look similar to this. Mods/ in the root of your server with subfolders for every mod in there.

Link to comment
Share on other sites

Need some help. Went back to version 16.4 and am trying to use the webmap again. I cannot make it work for some reason. Ive checked ports, versions, etc but to no avail. In the log I get;

 

2019-01-15T19:30:35 1.069 INF [MODS] Trying to load from Allocs_WebAndMapRendering
Non platform assembly: C:\******\*************\*********\7d\steamapps\common\7 Days to Die Dedicated Server\Mods\Allocs_WebAndMapRendering\MapRendering.dll (this message is harmless)
2019-01-15T19:30:35 1.073 ERR [MODS] Failed loading DLL
2019-01-15T19:30:35 1.073 EXC The classes in the module cannot be loaded.
ReflectionTypeLoadException: The classes in the module cannot be loaded.
 at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)
 at System.Reflection.Assembly.GetTypes () [0x00000] in <filename unknown>:0 
 at Mod.KH () [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)
Mod:KH()
Mod:LoadFromFolder(String)
ModManager:LoadMods()
GameManager:Awake()

(Filename:  Line: -1)

 

I did get older versions from the website that I believe work with the version I am running but maybe I am missing something.

 

I am running A16.4 (b8) for the game. What is the correct Alloc version I should be using? What else might I be missing here?

Link to comment
Share on other sites

Need some help. Went back to version 16.4 and am trying to use the webmap again. I cannot make it work for some reason. Ive checked ports, versions, etc but to no avail. In the log I get;

 

2019-01-15T19:30:35 1.069 INF [MODS] Trying to load from Allocs_WebAndMapRendering
Non platform assembly: C:\******\*************\*********\7d\steamapps\common\7 Days to Die Dedicated Server\Mods\Allocs_WebAndMapRendering\MapRendering.dll (this message is harmless)
2019-01-15T19:30:35 1.073 ERR [MODS] Failed loading DLL
2019-01-15T19:30:35 1.073 EXC The classes in the module cannot be loaded.
ReflectionTypeLoadException: The classes in the module cannot be loaded.
 at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)
 at System.Reflection.Assembly.GetTypes () [0x00000] in <filename unknown>:0 
 at Mod.KH () [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)
Mod:KH()
Mod:LoadFromFolder(String)
ModManager:LoadMods()
GameManager:Awake()

(Filename:  Line: -1)

 

I did get older versions from the website that I believe work with the version I am running but maybe I am missing something.

 

I am running A16.4 (b8) for the game. What is the correct Alloc version I should be using? What else might I be missing here?

 

rev. 322 (14_17_26) (2018-06-20)

 

http://illy.bz/fi/7dtd/server_fixes_v14_17_26.tar.gz

 

Cheers

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
×
×
  • Create New...