GameOvermind

1101113151618

Comments

  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    So you now experience the same problem, only several builds later? Well that makes no sense at all. I think I know what's going on, namely the issue that NS2 now initializes its scripts in a certain thread, and actually moves it to another thread after having done so, which is problematic for the way Qt-core is set-up in v10, which would explain the connection to QtCore4.dll. I can say this is no longer an issue in v11, unfortunatly I can't do (or maybe don't feel like doing) anything to fix it for v10 (too much of a hassle honestly). So yeah, not really the end of v10, but it's really starting to get annoying for you folks I suppose. Any alternate way of managing your servers without using an RDP-connection? Or maybe just wait for your servers to empty before logging in, or just remove the mod entirely.
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    edited February 2012
    I'm thinking of my options, I guess they are either:

    1) Use VNC, maybe that will stop it?
    2) Stop logging in, not an option
    3) Stop using overmind, not an option
    3a) Stop using overmind, but find another way to keep the bans active

    I dont really like VNC, for my purposes, RDP is great. I might try a bit more troubleshooting, unfortunately that means killing full servers (possibly). I dont quite understand how having it moving threads would cause a problem, but thats fine i guess I dont need to understand it. Would locking affinity help? Doesnt matter.

    The most important thing for me is to keep the servers running with the ability to ban people, now I could probably find a way of putting in some lua which checks steam ID on connect, and kicks people who match it. But it also occurs to me that you have so much more experience with the lua side, is this possible, easy to do?

    edit: Thought I should add, this doesnt always occur, I have no idea how to trigger it. Possibly only happens when the server has been running a long time, or is busy, lots of people etc. I've had it happen once that I am sure about, might check the eventviewer for any other occurences
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    <!--quoteo(post=1904448:date=Feb 18 2012, 03:16 AM:name=endar)--><div class='quotetop'>QUOTE (endar @ Feb 18 2012, 03:16 AM) <a href="index.php?act=findpost&pid=1904448"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I dont quite understand how having it moving threads would cause a problem, but thats fine i guess I dont need to understand it. Would locking affinity help? Doesnt matter.<!--QuoteEnd--></div><!--QuoteEEnd-->
    It needs to operate in the main-thread (Windows demands it), but it now initializes in a secondary thread (before being moved into the main-thread) and GameOvermind mistakes it for the main-thread and configures its systems around it, which leads to unpredictable behaviour, which is what we're seeing now I guess. You can't fix this.

    <!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->The most important thing for me is to keep the servers running with the ability to ban people, now I could probably find a way of putting in some lua which checks steam ID on connect, and kicks people who match it. But it also occurs to me that you have so much more experience with the lua side, is this possible, easy to do?<!--QuoteEnd--></div><!--QuoteEEnd-->
    You can use Barlow's Lua-script in Server.lua, it supposedly supports bans but I haven't tried it to be honest. I'm considering putting out that v10.5 I've been dreading to touch. It was basically supposed to be v11 before I decided to (take a long break, and then) do a while rewrite. It's very much untested, and half-finished so I've been extremely hesistant to releasing it, but considering v11 is still quite a ways off, I'm going to look into it and see if it is stable enough for a release. Best-case scenario I'll upload it tommorow.
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    Don't look into it account of me, I am happy enough to find an alternate if it means you dont need to waste time on updating an old version.

    Care to elaborate on what you meant by: You can use Barlow's Lua-script in Server.lua

    I just looked, I guess you mean line 36: Server.playerBanList = {}

    Any idea how it works? or any documentation provided by barlow you know of?
  • invTempestinvTempest Join Date: 2003-03-02 Member: 14223Members, Constellation, Squad Five Blue
    If you use Devicenulls' NS2update tool you shouldn't experience any of these issues.

    With the last patch I had to remove the ns2update tool so I could add a map rotation as a work-around for the power node bug. Every time I would RDP into my server I would experience the same issue, but after going back to using ns2update (an older version as I am getting errors with the current build) I no longer have this issue.
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    Very interesting, that sounds like a very compelling reason to use it. Thanks for bringing it up

    I had a look through the logs, and here are the timings of the qt4 crashes, and what build would have been running. I have no recollection of any of the other crashes, I probably assumed I just witnessed a server crash, or I was logging in to see why the tickrate was so bad (script errors), and then it crashed and I made that connection.
    Build 191
    13/01/2012 10:40:08 PM
    13/01/2012 11:07:16 PM
    14/01/2012 12:00:11 PM
    Build 193
    30/01/2012 1:00:14 AM
    Build 197
    18/02/2012 12:15:46 PM
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    Ah look at that, B191, so it's exactly what I thought it was. I'm working on that old version as we speak, let's see how things work out.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    Alright I've put up a link to v11, which is basically 10.5 with everything I was working on ripped out, leaving the bare functionality (console-commands, users, bans, query-responder et cetera). The configuration-files haven't changed as far as I can see, but it would be wise to rename your v10, and translate (so not copy-paste) your config-data into the new files. Needless to say if v10 has not been crashing for you it's probably a good idea to stick to it for the time being, as I haven't a clue how stable v11 will be, though obviously the RDP-crash should be fixed.
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    Thanks for the update, I've so far applied it to only one server, no reported issues yet. While i was doing a manual inspection of the new config files, I did notice that there is some differences in the naming of the query responder related code, I didn't do any copy/pastes, but it appears to not be working. I woudl test it some more, but servers are currently full of players so ill only get a chance later today.

    Old:
    local QueryResponder=NS2GmOvrmind.ServerQuery.NewResponder();
    NS2GmOvrmind.ServerQuery.AddResponder(QueryResponder);

    New:
    local QueryResponder=NS2GmOvrmind.ServerQuery.NewQueryResponder();
    NS2GmOvrmind.ServerQuery.AddQueryResponder(QueryResponder);

    And just incase im doing it wrong, heres the command I query for logging players, tickrate etc
    qstat.exe -xml -a2s 203.12.139.127:27017 -R -P
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    It works perfectly, but I see the problem: I was working on packet-splitting for query-responses (because not all routers allow for such large UDP-datagrams), and qstat can't deal with them properly (while HLSW which I used to develop it, can). For the rewritten GameOvermind I made it so it would send both split and unsplit packets to service both audiences, I will retro-fit that feature into what will now be v12 I guess. It's also why the dev-tracker won't display the tickrate, it too uses qstat.

    I will put out v12 (which will have it working again) in a few days, just to give v11 some more time, see if any more problems surface. Your config is fine, don't change it!
  • MOOtantMOOtant Join Date: 2010-06-25 Member: 72158Members
    I put it on a server once that had rockdown in mapcycle (further down) and it crashed right after summit ended.

    Threading problems might not show up in certain (or most) situations so I'm not really sure if you fixed it.
  • swalkswalk Say hello to my little friend. Join Date: 2011-01-20 Member: 78384Members, Squad Five Blue
    <!--quoteo(post=1904696:date=Feb 19 2012, 04:34 AM:name=player)--><div class='quotetop'>QUOTE (player @ Feb 19 2012, 04:34 AM) <a href="index.php?act=findpost&pid=1904696"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I will put out v12 (which will have it working again) in a few days, just to give v11 some more time, see if any more problems surface. Your config is fine, don't change it!<!--QuoteEnd--></div><!--QuoteEEnd-->
    Will v12 include the gamestate recorder? :)
    Great work player, it's appreciated!
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    <!--quoteo(post=1904740:date=Feb 19 2012, 09:19 AM:name=MOOtant)--><div class='quotetop'>QUOTE (MOOtant @ Feb 19 2012, 09:19 AM) <a href="index.php?act=findpost&pid=1904740"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I put it on a server once that had rockdown in mapcycle (further down) and it crashed right after summit ended.

    Threading problems might not show up in certain (or most) situations so I'm not really sure if you fixed it.<!--QuoteEnd--></div><!--QuoteEEnd-->
    That's probably because it doesn't shut down gracefully, which wasn't an issue before map-cycling was put in, but now whenever the server changes map it destroys the Lua-VM, and with it deinitializes the mod at which point it blows up and takes the server-process with it. I'll sort that out for v12.

    <!--quoteo(post=0:date=:name=swalk)--><div class='quotetop'>QUOTE (swalk)</div><div class='quotemain'><!--quotec-->Will v12 include the gamestate recorder? :)
    Great work player, it's appreciated!<!--QuoteEnd--></div><!--QuoteEEnd-->
    Nah that's very much a W.I.P, I'm just putting out these intermediate-versions as a stop-gap. Let's call the re-write ehm... gorilla. Gorilla won't be out for quite some time longer (think maybe another month at least), currently rewriting those Lua-C bindings to improve performance which is taking a fair amount of time. The gamestate-recorder is technically operational and could be used, but so far it wasn't pratical due to its rediculous CPU-usage, hopefully the rewrites I'm doing eleviate that (somewhat, welcome to Lua).
  • MOOtantMOOtant Join Date: 2010-06-25 Member: 72158Members
    <!--quoteo(post=1904809:date=Feb 19 2012, 04:31 PM:name=player)--><div class='quotetop'>QUOTE (player @ Feb 19 2012, 04:31 PM) <a href="index.php?act=findpost&pid=1904809"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->That's probably because it doesn't shut down gracefully, which wasn't an issue before map-cycling was put in, but now whenever the server changes map it destroys the Lua-VM, and with it deinitializes the mod at which point it blows up and takes the server-process with it. I'll sort that out for v12.<!--QuoteEnd--></div><!--QuoteEEnd-->

    How about we get real C or C++ binding layer that will then start Lua, fire missiles or do whatever we do? Idea is that very tiny "core" that starts server/changes levels which probably is in C++ already gets its API published so we're no longer in the dark.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    edited February 2012
    Suddenly <a href="http://dl.dropbox.com/u/38570801/NS2GmOvrmind(v12).zip" target="_blank">a new version</a> appears! Fixes the query-responder to work with qstat, some issues with steam-ids, and graceful shutdowns (as to NOT crash during a map-change).

    [EDIT]
    Oh, nothing changed with the config-files btw, so just copy-paste your v11's over v12's, shouldn't be a problem.
    [/EDIT]

    <!--quoteo(post=1904816:date=Feb 19 2012, 04:35 PM:name=MOOtant)--><div class='quotetop'>QUOTE (MOOtant @ Feb 19 2012, 04:35 PM) <a href="index.php?act=findpost&pid=1904816"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->How about we get real C or C++ binding layer that will then start Lua, fire missiles or do whatever we do? Idea is that very tiny "core" that starts server/changes levels which probably is in C++ already gets its API published so we're no longer in the dark.<!--QuoteEnd--></div><!--QuoteEEnd-->
    Most of the game is in Lua, but yeah there's stuff in the engine (C++) that I'd like to see published too (for the benefit of server-mods anyway). Per example, before the gamestate-recorder I tried to have a go at ordinary network-packet recording (like it is done in HL1 and 2), but all that stuff is hidden in the engine (tried to do proxying of the UDP-stream with some reverse-engineering of the packet-procotol, but you're working with a black-box, it sucks). In the end it 'worked', but was pretty ###### ######, so I tossed the idea.
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    <!--quoteo(post=1904809:date=Feb 20 2012, 02:31 AM:name=player)--><div class='quotetop'>QUOTE (player @ Feb 20 2012, 02:31 AM) <a href="index.php?act=findpost&pid=1904809"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->That's probably because it doesn't shut down gracefully, which wasn't an issue before map-cycling was put in, but now whenever the server changes map it destroys the Lua-VM, and with it deinitializes the mod at which point it blows up and takes the server-process with it. I'll sort that out for v12.


    Nah that's very much a W.I.P, I'm just putting out these intermediate-versions as a stop-gap. Let's call the re-write ehm... gorilla. Gorilla won't be out for quite some time longer (think maybe another month at least), currently rewriting those Lua-C bindings to improve performance which is taking a fair amount of time. The gamestate-recorder is technically operational and could be used, but so far it wasn't pratical due to its rediculous CPU-usage, hopefully the rewrites I'm doing eleviate that (somewhat, welcome to Lua).<!--QuoteEnd--></div><!--QuoteEEnd-->

    I'm not a fan of calling it gorilla. It can be related to, or similar to a Gorilla, but not actually Gorilla. Referring to Gorilla brings too many memories of Onos, new name plz.
  • Soul_RiderSoul_Rider Mod Bean Join Date: 2004-06-19 Member: 29388Members, Constellation, Squad Five Blue
    edited February 2012
    Quick question.

    I've got my Proving Grounds mod running on a server. I want to run gmOvermind as well, for admin functions. Combining the mod folders into one file won't work, as both mods have different gamesetup.xml files. Is there any way to officially support full mods within gmOvermind? and if not, will this feature exist in the future, with modding planned to be a major part of NS2?

    Thanks :)
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    Copy all your mod's Lua-scripts into the "NS2GmOvrmind\Lua"-directory and use "-game NS2GmOvrmind", it'll run NS2GmOvrmind and your mod will piggyback on it.
  • Soul_RiderSoul_Rider Mod Bean Join Date: 2004-06-19 Member: 29388Members, Constellation, Squad Five Blue
    edited February 2012
    But both our mods have modified gamesetup.xml files. If I run gmovermind and it's gamesetup file, my mod shows as NS2 in the game server browser, if I use mine, my mod shows as pg, but overmind doesn't run.

    --edit--

    Oh, hang on, it's only the name. If I edit your gamesetup.xml with my mods details (name etc) that should work...
  • Soul_RiderSoul_Rider Mod Bean Join Date: 2004-06-19 Member: 29388Members, Constellation, Squad Five Blue
    OK that works, but..

    when I type om_serverinfo it returns "My NS2 Server"

    Is this not working at the moment? Or do I have to edit other files with this information in the mod?
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    You'll have to go through the configuration-files and set everything up correctly. I know it seems silly to have to tell the server its own name again, I've asked for a simply Lua-function to fetch the server-name about a year ago, but I'm still waiting for it (they just came around putting it in for the client, maybe in another year we'll have it for the server finally)
  • Soul_RiderSoul_Rider Mod Bean Join Date: 2004-06-19 Member: 29388Members, Constellation, Squad Five Blue
    Thanks a lot player, both for the mod and your ongoing assistance to anyone with issues. It is really appreciated :)
  • invTempestinvTempest Join Date: 2003-03-02 Member: 14223Members, Constellation, Squad Five Blue
    Version 12 does fix the crash on map cycle, but now I'm back to having the server(s) crash upon an RDP connection again.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    Get out, same crash-report (QtCore et all)? And everything is v12 (as in no v10s that are ruining the party).
  • invTempestinvTempest Join Date: 2003-03-02 Member: 14223Members, Constellation, Squad Five Blue
    Log Name: Application
    Source: Application Error
    Date: 2/23/2012 3:16:52 PM
    Event ID: 1000
    Task Category: (100)
    Level: Error
    Keywords: Classic
    User: N/A
    Computer: Winnie
    Description:
    Faulting application name: server.exe, version: 0.0.0.0, time stamp: 0x4f3eb3a7
    Faulting module name: QtCore4.dll_unloaded, version: 0.0.0.0, time stamp: 0x4d83a805
    Exception code: 0xc0000005
    Fault offset: 0x6cf20db0
    Faulting process id: 0xdec
    Faulting application start time: 0x01ccf1c2653588b1
    Faulting application path: c:\servers\pub1\server.exe
    Faulting module path: QtCore4.dll
    Report Id: b3db8e23-5e63-11e1-a5ba-f46d0440cd45


    Log Name: Application
    Source: Application Error
    Date: 2/23/2012 3:16:52 PM
    Event ID: 1000
    Task Category: (100)
    Level: Error
    Keywords: Classic
    User: N/A
    Computer: Winnie
    Description:
    Faulting application name: server.exe, version: 0.0.0.0, time stamp: 0x4f3eb3a7
    Faulting module name: MSVCR100.dll_unloaded, version: 0.0.0.0, time stamp: 0x4ba1dbbe
    Exception code: 0xc0000005
    Fault offset: 0x6d470db0
    Faulting process id: 0x14d4
    Faulting application start time: 0x01ccf1c363e30cb6
    Faulting application path: c:\servers\pub2\server.exe
    Faulting module path: MSVCR100.dll
    Report Id: b3db6713-5e63-11e1-a5ba-f46d0440cd45

    Both servers are running overmind v12.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    Was pretty sure I had the problem nailed down, perhaps I haven't been thorough enough in fixing it. I'll do another pass, expect a new version tomorrow\day after.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    Okay, <a href="http://dl.dropbox.com/u/38570801/NS2GmOvrmind(v13).zip" target="_blank">new version</a> up, it properly fixes the threading-issue this time round. I had fixed a portion, but another section was still operating in the wrong thread, which explains why invTempest ran into the same problem at a different fault-offset than before. Configuration is exactly the same, with exception of the query-responder (NS2GmOvrmind_ServerConfiguration_ServerQuery.lua), so don't overwrite that with an older version, just re-do your config of that section.

    I've also dropped the PlayerData-part of the query-responder's rules-reply, and as such the split-packet code, as Devicenull's AutomaticUpdates seemed to have issues with it, and nobody used that player-data anyway.
  • invTempestinvTempest Join Date: 2003-03-02 Member: 14223Members, Constellation, Squad Five Blue
    Was working till build 198 came out, now it's crashing again (Overmind version 13):

    Log Name: Application
    Source: Application Error
    Date: 2/24/2012 6:34:35 PM
    Event ID: 1000
    Task Category: (100)
    Level: Error
    Keywords: Classic
    User: N/A
    Computer: Winnie
    Description:
    Faulting application name: Server.exe, version: 0.0.0.0, time stamp: 0x4f47fdc8
    Faulting module name: QtCore4.dll, version: 4.7.2.0, time stamp: 0x4d83a805
    Exception code: 0xc0000005
    Fault offset: 0x00050db0
    Faulting process id: 0x125c
    Faulting application start time: 0x01ccf34b3a08e783
    Faulting application path: c:\servers\pub2\Server.exe
    Faulting module path: c:\servers\pub2\QtCore4.dll
    Report Id: 7d4a534d-5f48-11e1-a5ba-f46d0440cd45
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    Okay, shuffling bits and pieces around and adding some more safeguards, let's see if it is solved now: <a href="http://dl.dropbox.com/u/38570801/NS2GmOvrmind(v14).rar" target="_blank">version 14</a>. (configs are the same, you can overwrite them with v13's).

    If it is still happening I will rip out the query-responder, along with the event-processor and other sections, and it will HAVE to work properly. Otherwise I can't be bothered to salvage it, it's old, outdated and broken in too many places, and you will have to wait for the re-write.
  • invTempestinvTempest Join Date: 2003-03-02 Member: 14223Members, Constellation, Squad Five Blue
    So I was doing some testing on this issue and I can cause the server to crash upon RDP connection without running overmind:

    Log Name: Application
    Source: Application Error
    Date: 2/27/2012 11:30:41 PM
    Event ID: 1000
    Task Category: (100)
    Level: Error
    Keywords: Classic
    User: N/A
    Computer: Winnie
    Description:
    Faulting application name: Server.exe, version: 0.0.0.0, time stamp: 0x4f47fdc8
    Faulting module name: Server.exe, version: 0.0.0.0, time stamp: 0x4f47fdc8
    Exception code: 0xc0000005
    Fault offset: 0x00007de3
    Faulting process id: 0x854
    Faulting application start time: 0x01ccf5da0b5b7a44
    Faulting application path: c:\servers\pub2\Server.exe
    Faulting module path: c:\servers\pub2\Server.exe
    Report Id: 5a28cae1-61cd-11e1-a5ba-f46d0440cd45

    So this looks to be the fault of the game rather than your mod.
Sign In or Register to comment.