• 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

@all: Regarding the animals: I'll have a look when we get closer to A16 stable, currently just too busy with fixing stuff etc ;)

Permissions and everything work. The console shows the OpenID getting passed"2017-06-18T10:40:07 99.985 INF Steam OpenID login from 71.xx.xx.xx:55594 with ID 76561197986258927, permission level 0"

But the web page on 8082 returns "Not logged in." after the OpenID transaction.

Anyone else experienced this?
I don't see why it would fail if it says that you got the permission level assigned correctly. *Unless* you have cookies turned off that is ;)

Edit: I've noticed the error INF Steam certificate error: RemoteCertificateChainErrors, which appears to be coming from the steamcommunity.com response.Is there a certificate I need to update on Debian to make it work? the ca-certificates package is already up to date.
No, the error is "normal" as it simply can't validate the certificate chain.

 
@all: Regarding the animals: I'll have a look when we get closer to A16 stable, currently just too busy with fixing stuff etc ;)


I don't see why it would fail if it says that you got the permission level assigned correctly. *Unless* you have cookies turned off that is ;)

No, the error is "normal" as it simply can't validate the certificate chain.
It seems to be only broken in my particular setup using google compute VMs.

I created a test box using a hyper-v VM, A15.2 works fine, and when I upgrade it to A16 it still works.

I'll have to compare all the installed packages.

 
Last edited by a moderator:
No issues at all on my end with A16. Also the whole web handling hasn't been changed and changes in A16 can't have any impact on this stuff either.

 
I replicated the issue with a fresh Google compute VM.

Their Debian 8 image is so stripped down and lightweight that it seems to be missing something.

Everything else about the server runs great. Once a new release comes out or people get bored with the server, I'll try again on Debian 9.

 
Have you checked if your browser accepts the session id cookie for the page? That's the only thing I can imagine where it could fail. If the game runs it shouldn't have any other external dependencies that would break something like that.

 
Have you checked if your browser accepts the session id cookie for the page? That's the only thing I can imagine where it could fail. If the game runs it shouldn't have any other external dependencies that would break something like that.
I have, it works perfectly fine on a full fat Debian 8 installation.

I used firefox's developer tools to check and verify that the session and cookies were being set the exact same way on both servers. (The working and non-working server.)

And line 239 of Web.cs in the source is where it should be passed off.

I agree, it's supposed to work without external dependencies.

The only possibility I can think of right now is a very scenario-specific Mono bug - possibly related to the core OS/kernel (???)

Edit: I've also checked with browsers outside my internal network, and from completely different computers.

 
Last edited by a moderator:
You didn't answer the question though ;)

Does it set the cookie on the server with the issue or does it not?

 
Yeah, this looks fine. Does it also send the cookie to the server on the following requests?

 
It seems to send a new cookie every time I attempt to login.

Not sure if this is intended behavior?

7dtd_cookie2.JPG

The working server doesn't seem to do this...

 
Well, if you log in again you will get a new session, that's ok. That should also happen if you were to relogin on the working server, it's just that you normally wouldn't do that ;)

The interesting part here is that the browser does indeed seem to send the session cookie with the requests, so that's fine too. No idea currently what would cause your issue :(

 
There is an exe called LP2DB - List Players 2 DB - it runs under mono on linux or natively in windows.It connects to the server via telnet and periodically (we use 5sec interval) sends the 'lp' command to the server. It then sends an SQL to a local MySQL instance to save the positions and a timestamp according to their Steam ID.

Every minute it also sends a showinventory command for each connected player. This is also saved in the DB and stored with the SteamID and timestamp.

I wrote a player info page using JS Datatables - one of the functions is to click on a player and then view the inventory and navigate via datepicker or increments.

The only thing remaining is the ability to search based on location/date/inventory contents, and a representation on the map of the player tracks, but that will have to wait till I get time.

PM me your email address (or add me on steam with the same name I use here) and we can sort it out, if you want to try it.

Credit goes to Prisma501 for writing the program.

PS: When I said PrismaMod is needed I was mistaken, it is not needed for this functionality.
Is there an update to the LP2DB as it doesnt work with A16.

The current one spams the console with

2017-06-23T11:26:28 44599.792 ERR Error in ApiHandler.HandleRequest(): Handler getplayersonline threw an exception:MissingMethodException: Method not found: 'EntityAlive.get_Stamina'.
 
Last edited by a moderator:
It has to be something in the Google cloud platform.When it comes time to wipe the server, I'll try it on the new distro.
Did you ever sort this out?

I am having the exact same issue on my hosted server.

I have just setup a new Linux Ubuntu server, and I am hosting 7 days to die on it.

Alpha 16 latest.

Alloc's server fixes applied.

Map just won't progress when I try to log in to it.

Same experience as you.

This is my first time setting up a Linux box, so hopefully all is working as it should...

 
Last edited by a moderator:
Does it really say you're not logged in after logging in or do you simply not see any map after logging in?

 
I recently noticed this:

Code:
2017-06-26T10:11:41 0.724 INF [MODS] Start loading
2017-06-26T10:11:41 0.725 INF [MODS] Trying to load from Allocs_CommandExtensions
Non platform assembly: /home/sdtd/engine/Mods/Allocs_CommandExtensions/AllocsCommands.dll (this message is harmless)
2017-06-26T10:11:41 0.739 INF [MODS] Loaded Mod: Allocs command extensions (12)
2017-06-26T10:11:41 0.740 INF [MODS] Trying to load from Allocs_CommonFunc
Non platform assembly: /home/sdtd/engine/Mods/Allocs_CommonFunc/7dtd-server-fixes.dll (this message is harmless)
2017-06-26T10:11:41 0.741 INF [MODS] Found ModAPI, creating instance
2017-06-26T10:11:41 0.741 INF [MODS] Loaded Mod: Allocs server fixes (14)
2017-06-26T10:11:41 0.741 INF [MODS] Trying to load from Allocs_WebAndMapRendering
Non platform assembly: /home/sdtd/engine/Mods/Allocs_WebAndMapRendering/MapRendering.dll (this message is harmless)
2017-06-26T10:11:41 0.742 INF [MODS] Found ModAPI, creating instance
2017-06-26T10:11:41 0.742 INF [MODS] Loaded Mod: Allocs MapRendering and Webinterface (19)
2017-06-26T10:11:41 0.743 INF [MODS] Trying to load from CoppisAdditions
Non platform assembly: /home/sdtd/engine/Mods/CoppisAdditions/CoppisAdditions.dll (this message is harmless)
2017-06-26T10:11:41 0.744 INF [MODS] Found ModAPI, creating instance
2017-06-26T10:11:41 0.744 INF [MODS] Loaded Mod: Coppis command additions (2)
2017-06-26T10:11:41 0.744 INF [MODS] Trying to load from ServerTools
Non platform assembly: /home/sdtd/engine/Mods/ServerTools/ServerTools.dll (this message is harmless)
2017-06-26T10:11:41 0.745 INF [MODS] Found ModAPI, creating instance
2017-06-26T10:11:41 0.745 INF [MODS] Loaded Mod: Server Tools (3.7)
2017-06-26T10:11:41 0.745 INF [MODS] Loading done
2017-06-26T10:11:41 0.755 INF Loading permissions file at '/home/sdtd/instances/OZCOOPI/admins.xml'
2017-06-26T10:11:41 0.788 INF Loading permissions file done.
2017-06-26T10:11:41 0.837 INF SdtdLog: No config found
[b]2017-06-26T10:11:41 0.839 INF[/b] Failed to register the log file writer: Sharing violation on path /home/sdtd/engine/sdtd.log
2017-06-26T10:11:41 0.841 INF   at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0
 at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] in <filename unknown>:0
 at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
 at System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding, Int32 bufferSize) [0x00000] in <filename unknown>:0
 at System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding) [0x00000] in <filename unknown>:0
 at (wrapper remoting-invoke-with-check) System.IO.StreamWriter:.ctor (string,bool,System.Text.Encoding)
 at SdtdLog.Init () [0x00000] in <filename unknown>:0
UMA Overlay loading took 2956 ms


(Filename: /home/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 37)


UMA Slot loading took 3 ms
don't know where this belongs to, so i post it here.

This only happens to the second instance starting. in the first the log looks like this:

Code:
2017-06-26T03:16:05 0.784 INF [MODS] Loading done
2017-06-26T03:16:05 0.795 INF Loading permissions file at '/home/sdtd/instances/OZCOOPII/admins.xml'
2017-06-26T03:16:05 0.831 INF Loading permissions file done.
[b]2017-06-26T03:16:05 0.880 INF[/b] SdtdLog: No config found
UMA Overlay loading took 5006 ms


(Filename: /home/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 37)


UMA Slot loading took 3 ms
The instance itself seems to run fine.

 
Oh yeah, it's for the log-channel system the console guys added. It doesn't hurt, iirc by default nothing is enabled to go there anyway.

 
really? because, there is something going into it...

Code:
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$
2017-06-26T10:18:02 25318.201 INF Started thread TelnetClientReceive_127.0.0.1:36722
2017-06-26T10:18:02 25318.202 INF Telnet connection from: 127.0.0.1:36724
2017-06-26T10:18:02 25318.202 INF Started thread TelnetClientSend_127.0.0.1:36722
2017-06-26T10:18:02 25318.202 INF Started thread TelnetClientSend_127.0.0.1:36724
2017-06-26T10:18:02 25318.202 INF Started thread TelnetClientReceive_127.0.0.1:36724
2017-06-26T10:18:02 25318.203 INF Telnet connection from: 127.0.0.1:36726
2017-06-26T10:18:02 25318.203 INF Started thread TelnetClientReceive_127.0.0.1:36726
2017-06-26T10:18:02 25318.203 INF Telnet connection from: 127.0.0.1:36728
2017-06-26T10:18:02 25318.203 INF Started thread TelnetClientSend_127.0.0.1:36726
2017-06-26T10:18:02 25318.204 INF Started thread TelnetClientReceive_127.0.0.1:36728
2017-06-26T10:18:02 25318.204 INF Started thread TelnetClientSend_127.0.0.1:36728
2017-06-26T10:18:02 25318.211 INF Executing command 'lp' by Telnet from 127.0.0.1:36722
2017-06-26T10:18:02 25318.259 INF Executing command 'lp' by Telnet from 127.0.0.1:36724
2017-06-26T10:18:02 25318.309 INF Executing command 'lp' by Telnet from 127.0.0.1:36726
2017-06-26T10:18:02 25318.360 INF Executing command 'lp' by Telnet from 127.0.0.1:36728
2017-06-26T10:18:03 25319.201 INF Exited thread TelnetClientSend_127.0.0.1:36726
2017-06-26T10:18:03 25319.201 INF Telnet connection closed: 127.0.0.1:36722
2017-06-26T10:18:03 25319.202 INF Exited thread TelnetClientSend_127.0.0.1:36724
2017-06-26T10:18:03 25319.202 INF Telnet connection closed: 127.0.0.1:36728
2017-06-26T10:18:03 25319.202 INF Exited thread TelnetClientSend_127.0.0.1:36728
2017-06-26T10:18:03 25319.202 INF Telnet connection closed: 127.0.0.1:36726
2017-06-26T10:18:03 25319.202 INF Exited thread TelnetClientReceive_127.0.0.1:36726
2017-06-26T10:18:03 25319.202 INF Exited thread TelnetClientReceive_127.0.0.1:36728
2017-06-26T10:18:03 25319.202 INF Exited thread TelnetClientSend_127.0.0.1:36722
2017-06-26T10:18:03 25319.202 INF Exited thread TelnetClientReceive_127.0.0.1:36722
2017-06-26T10:18:03 25319.203 INF Telnet connection closed: 127.0.0.1:36724
2017-06-26T10:18:03 25319.203 INF Exited thread TelnetClientReceive_127.0.0.1:36724
2017-06-26T10:19:03 25378.695 INF Telnet connection from: 127.0.0.1:39236
2017-06-26T10:19:03 25378.695 INF Started thread TelnetClientReceive_127.0.0.1:39236
2017-06-26T10:19:03 25378.695 INF Started thread TelnetClientSend_127.0.0.1:39236
2017-06-26T10:19:03 25378.696 INF Telnet connection from: 127.0.0.1:39238
2017-06-26T10:19:03 25378.696 INF Started thread TelnetClientSend_127.0.0.1:39238
2017-06-26T10:19:03 25378.696 INF Started thread TelnetClientReceive_127.0.0.1:39238
2017-06-26T10:19:03 25378.702 INF Executing command 'lp' by Telnet from 127.0.0.1:39236
2017-06-26T10:19:03 25378.752 INF Executing command 'lp' by Telnet from 127.0.0.1:39238
Some binary code first and then logs... (from the first instance) i truncated the file and it regrow.

By the way: it would be great to hide all Telnet connections in the logs because sometimes its full of telnet spam.

 
I noticed my map and admins files weren't loading. After reviewing the log, I notice the config files are being loaded from /home/sdtd/.local/share/7DaysToDie/Saves/

Did this change in Alpha 16? is there a way to configure where these files are loaded from? I tried to specify the full path in the config.xml, but it still tried to find the file in .local.

Debian 8.

 
I noticed my map and admins files weren't loading. After reviewing the log, I notice the config files are being loaded from /home/sdtd/.local/share/7DaysToDie/Saves/
Did this change in Alpha 16? is there a way to configure where these files are loaded from? I tried to specify the full path in the config.xml, but it still tried to find the file in .local.

Debian 8.
Wonder how this is related to the mod :(

Anyway, nothing changed and in my tests it still works just fine.

 
Back
Top