Jump to content

Alloc

Fun Pimps Staff
  • Posts

    1,550
  • Joined

  • Last visited

  • Days Won

    21

Posts posted by Alloc

  1. I think the only cron implementation I've seen so far that does not have a user column was with Busybox.

    Normally you have the column user between dow and command. Maybe try adding "root" there and see if that works.

     

    @zigstum: Careful about combining sudo with pipes / redirects ;)

    Running "sudo echo test >> /root/shellrestart.txt" as non-root probably won't work as only the command invocation (echo test) will be run within sudo, the redirect is not affected iirc.

  2. hello @Alloc are fixes update coming anytime soon?

     

    =) we are missing our rlp function

    Wrong thread ;)

    Besides that fixing rlp isn't really the highest priority atm as you might guess when looking at things like people unable to even play the game currently ;)

    Might be looking into it soon (maybe even later today) but no promises on that part.

  3. Finally tracked it down. Latest Unity 64-bit uses SSE4, and my CPU only supports SSE3. If I could find a way to force it to use SSE3 instead, I could get it working.

     

    Can't really afford to drop money on new hardware so I'm living with 32-bit and some hard limitations for a while it looks like.

     

    EDIT: Further digging shows that though the CPU's support SSE3, my cpuinfo file is only showing up to SSE2 support.

    Yeah, it's too bad things like this happen ... but after all that CPU is 11 years old. Sometimes you just have to drop support for old stuff if you want to improve things ;)

    SSE4 is also 10 years old by now so at least not too restrictive.

    And most important: You can at least still run it, even though with the 32 bit restriction.

  4. Good point ... didn't really catch my attention as my game VM is still running a rather old Debian which does use init.d ;)

    Of course this has to be updated at some point, just gotta figure out what exactly needs to be done for that. (Btw, the bootstrapper shouldn't be affected a lot by this ... of course it won't be able to create a start script but everything else should be fine)

  5. Alloc, Can you please add a feature to the Web server that can be seen all inventories at once.

    It's on my list already.

     

     

     

    I had to update (and I'm pretty sure I updated to the same version I had before) but it worked for me. <shrug> Maybe the a14 installation on my dedi wiped the mod folder? I didn't really pay attention, but at any rate, re-installing fixed mine.

    Yeah, that has been reported before, so far wasn't able to repro that myself though. Steam fiddling with the mods-folder is the best guess so far though.

  6. This would start the server again yes, but the "dead" instance would still be running as it always does when i look at the processes. I always had to manually kill the old process as it still consumes memory, before i restart.

    Hm, never had that happen with OOMs. Other causes my obviously leave a process running but unusable. Some people wrote nice little scripts for detecting this though.

     

     

     

    root@7DTD:~# 7dtd.sh start Home
    Failed!
    root@7DTD:~# 

    Logs? stdout.log, output_log ... anything?

  7. Would be cool if the server fixes would recognize OOM and restart the server automatically.

    The fixes are part of the server process, they can't do anything like that. The scripts on the other hand could but as there's not even a guarantee to what shows up in the log on such occasions it doesn't make a lot of sense either. Easiest is still just creating a cron job that regularly "starts" the server as it will only do anything if the server is actually no longer running.

     

     

    PS: what about a buff that everybody gets automatically who has greater stack sizes than allowed - it should set speed to 0 until there is no more stack above limit :D

    Something like that might be possible as an option in the future. Combined with a warning to the user this actually sounds quite interesting :)

  8. The actual error is in line 103. No idea why this is happening though, might be related to the still unknown occasional crashes on Unity 5.2.* builds on Linux. Sorry, no further idea right now. But at least it will most likely get better with A14 :)

     

     

     

     

    But there i noticed that every backup had atleast 2.5gb in size, first backup from 19.02.2016 every hour ... but it only has a total of ~53gb currently. I dont see any linking when i ll the directory, so whats going on there ? :o

    That's because the backup (done by rsync) uses hard links. Basically all files that are identical between two (or more) consecutive backups share the same disk area that's why the total backup size doesn't increase as much as it would with all new copies each time :)

     

     

     

    Maybe this just causes my next error message:

    ...
    2016-03-20T21:52:44 122269.979 ERR Could not save file '/home/sdtd/instances/OZCOOPII/Random Gen/A13.6OMEGAROCKZ/Player/76561197972223708.map': Sharing violation on path /home/sdtd/instances/OZCOOPII/Random Gen/A13.6OMEGAROCKZ/Player/76561197972223708.map
    ...

    This doesn't seem to crash the server or anything, just noticed this in the logs.

    This is indeed not critical for the most part (worst case you might lose some of the player map exploration progress) and definitely won't cause any stability issues with the server.

     

     

     

    I had one crash again, while the mentioned cheaters where online.

     

    Native stacktrace:
           /home/sdtd/engine/7DaysToDieServer_Data/Mono/x86/libmono.so(+0x8960f) [0xf6dfe60f]
    ...
    

    Most likely related to the OOM later on.

     

     

     

    Also noticed some other unnormal logs:

     

    2016-03-19T06:13:35 22411.718 INF AIDirector: wandering horde zombie '[type=EntityZombie, name=zombieArlene, id=117886]' reached pitstop and will wander around for awhile looking for trouble.
    Failed setting triangles. Some indices are referencing out of bounds vertices. IndexCount: 744, VertexCount: 161
    
    2016-03-19T06:13:48 22424.129 INF AIDirector: wandering horde zombie '[type=EntityZombie, name=zombieNurse, id=117778]' is being removed from horde control.
    Failed setting triangles. Some indices are referencing out of bounds vertices. IndexCount: 69, VertexCount: 219

    Probably not dramatic either but we'll have a look.

     

     

     

    2016-03-19T06:30:06 23402.768 INF Player with ID 115707 has stack for "shotgunShell" greater than allowed (1767 > 250)
    Couldn't send RPC function 'RPC_RawData'
    ...
    2016-03-19T06:30:32 23428.730 INF [NET] PlayerDisconnected EntityID=115039, PlayerID='76561198204006159', OwnerID='76561198204006159', PlayerName='Moscow'
    

    First line: "Anti-cheat" detection of my mod (player probably used an exploit or just happened to stumble on a bug so he got a stack of an item with a stack size that's not achievable normally).

    "Couldn't send": No harm, player disconnected so the server couldn't send some data.

     

     

     

    ...
    OutOfMemoryException: Out of memory
    ...
    

    This is where it starts to get completely irrelevant: If there's an OOM everything after that is basically just random and the server's no longer in a stable state (and typically crashes at the same instant).

     

     

     

    the Max here is less than 3GB so why out of memory, 32Bit ?

    What the info line shows is just Mono's heap but Unity uses some more resources for it's native stuff so you were more likely at 3.5 GiB or something and typically the limit for 32 bit processes is somewhere around 3.5 to 3.8 GiB.

     

     

    Maybe the excessive cheating is the reason?

    Could have amplified the problems but in the end it's just hitting the memory limit for whatever reason after some playtime ;)

     

     

    Regards,

    Chris

  9. Is the web page the result of a compiled process? How can I make changes?

    No, it's directly served, you can edit it at any time as it's currently not cached.

     

    Is it possible to run the webmap in a standard apache2 instance rather than the embedded mono server?

    Yeah, but you will either have to reverse proxy the API / map requests to the game or modify the files so they access the API / map from a different location (the game server).

     

     

     

     

    My server is 64 bit

    Yeah, the server, but the 7dtd server process most likely is not (that is unless you modified the scripts to start as 64 bit).

  10. No, just vanilla. I have a xui mod running some weeks now but the crashes like this were happening before too. Not often but they happen.

    Have you been monitoring the memory consumption / size of the virtual address space of the process? If you don't get this soon after starting the server but only later on when people have played on it and you only access the web panel after that for the first time it is probably just a memory issue.

     

     

    Currently it uses xhr requests (polling) not web-sockets.

    Ah, ok, gotcha. Yeah, of course this could be done. But I don't see that much of an audience that would benefit from this. Or maybe there would be in terms of server managers or something. Would require a lot of extra time though ;)

    But of course it's open to everyone to have a go at implementing something like that :)

     

     

    edit: by the way, can't you configurate the web-server to push an empty transparent map tile on missing files ? the console 404 warnings ...

    Yeah, probably a good idea.

     

     

    ...

    I hope my english was good enought to explain my thoughts - otherwise i prefer german :D

    Heh, no issues there ;)

    As I said above though ... this would just add another layer of work on my end while not giving any benefit to the integrated web panel. Of course it sounds like a good idea but I suppose someone else will have to have a go at this.

     

     

     

     

    I am also running the dedi mods and the start.sh calls the 32 bit version. Is there a reason for that? ... What is the major diffrence between the 32 and 64 versions other than mem use?

    As has been said a few times these pages: 32 bit is fully working, 64 bit not (probably only the serverlist part, but haven't looked any further).

     

    Do you still have to edit the startdedicated.sh in the /home/sdtd/engine/ dir?

    No, it's not used.

     

     

     

     

    ... features constant falls with the following error:

     

    /usr/local/lib/7dtd/common.sh: line 201: 28650 Dead nc 127.0.0.1 $ TEL_PORT 0 <& 3

    Suppose the server isn't usable at this moment anymore? Probably plain crash (or at least hangup) due to the memory restrictions. 15 slots sounds a bit much for a 32 bit server instance.

  11. will it in future eventually give an command that you can say the server it should pre calculate the complete map so you can start with all rendered?

    Navezgane: Possibly. RWG: Possibly one to specify an area (infinite world can't be "all" rendered).

  12. Stacktrace:
     at (wrapper managed-to-native) UnityEngine.Object.Destroy (UnityEngine.Object,single) <0x00004>
     at (wrapper managed-to-native) UnityEngine.Object.Destroy (UnityEngine.Object,single) <0x00004>
     at UnityEngine.Object.Destroy (UnityEngine.Object) <0x00023>
     at AllocsFixes.NetConnections.Servers.Web.Handlers.ItemIconHandler.LoadIcons () <0x008bb>
    

    Are you running any mods on that server? Especially additional items / item icons?

    No idea why it would crash in the destroy method unless it's already having memory issues at that point.

     

     

    Another thing, i thought about building my own WebInterface (with node.js/socket.io etc.) and how nice it would be to have a native game "web-sockets" like api that runs on localhost:xxx. So web-service and game service would be divided in 2 tiers. I could look into it myself and make my own mod but 1. its long time ago i was into C# (currently only in web based languages) and 2. it would be cool to have something like this from "official" side ;)

    What do you think about this ?

    You mean like the API it already has and the web frontend uses to get the required data? ;)

     

     

     

    So the real question is, what changed? Because I never had to edit this file to run the 64-bit with Alloc's scripts before.[/color]

    Nothing ever changed on the Linux scripts regarding the started executable. It's directly invoked the .x86 executable since the very first release for the native Linux 7dtd build on 2014-06-02.

    You either edited the scripts start-script or you didn't use my scripts to start the server or you never actually ran the 64 bit build ;)

  13. Going to try and customise the build myself to add that in.

    Ticket 60 is referring to the Linux scripts though, no relation to the mod ;)

     

    Just wondering how you debug these libs in Visual Studio?

    I don't. I don't even use VS. I doubt that it's possible to attach a .NET debugger to a non-development build of the game though.

     

    For me it's typically writing code and if something does not work adding a few log prints where applicable.

  14. Can I also be cheeky and ask what your top 3 priorities/fixes/additions will be when you do get time? There is quite the pile of tickets to go through.

    Nah, no real plan. Most likely the first thing would be finally fixing the log tab ;)

     

     

     

    Alloc, I have a request. Can you please reduce the number of failed login attempts on the telnet server to 3? Or give us a command to set number of allowed failed attempts?

     

    And if it's possible, an IP whitelist (for telnet) would go a very long way to help securing the servers.

    No reason why not, just gotta find a place to save this stuff ;)

    Also it's core game so will take longer to hit public anyway.

     

     

     

     

    Is this still relevant? (most look quite old now).

    Kinda ... I want to do them but especially the scripts have quite low priority currently as they worked as required mostly.

     

    One in particular caught my eye - https://7dtd.illy.bz/ticket/60 - this ticket relating to a hook for player deaths.

    Like some of the other "chat" things I wanted to delay it until I reworked the chat system / logging in game so it's easier to parse that stuff from the log.

  15. my Server randomly crashes when connecting to the web interface. I know this some time now but didn't manage yet to copy the log file into the forum.

    ...

    The output regarding the certificate is "normal" behaviour. Also doubt the webserver part itself is directly responsible for the crash, more likely some sideeffect in combination with the core code or just something simple like OOM. Did you have a look at the *top* of the log file? Depending on what's causing problems the Linux client sometimes overwrites the content there with error messages.

     

     

     

    I modified startserver.sh to

    #if [ "$(uname -m)" == "x86_64" ]; then    ./7DaysToDieServer.x86_64 -logfile 7DaysToDieServer_Data/output_log__`date +%Y-%m-%d__%H-%M-%S`.txt -quit -batchmode -nographics -dedicated $PARAMS
    #else
    #    ./7DaysToDieServer.x86 -logfile 7DaysToDieServer_Data/output_log__`date +%Y-%m-%d__%H-%M-%S`.txt -quit -batchmode -nographics -dedicated $PARAMS
    fi

    I guess the line breaks are broken in this copy? Otherwise the whole exec of the server would be commented out ;)

     

     

    Edit: New box, fresh install, and still I get...

    2016-02-22T21:19:41 0.087 INF Version: Alpha 13.8 (b7) Compatibility Version: Alpha 13.8, Build: Linux 32 Bit

    2016-02-22T21:19:41 0.087 INF System information:

    2016-02-22T21:19:41 0.129 INF OS: Linux 4.2 Ubuntu 15.10 64bit

    >.<

    That's definitely weird. Just tested over here and starting the 64 bit build will definitely output "Build: Linux 64 Bit"

  16. ...

    Which is why I'm confused now. It used to run 64-bit just fine.

    Yeah, weird ...

    You could either try debugging the script (e.g. adding some echo's to see where it's going and what it's doing) or just remove the if-stuff for platform detection altogether. But it will most likely not show up in the server browser then ;)

×
×
  • Create New...