Oh, and don't run ServerExecute(), you don't need to do that (it shouldn't crash anything, but it isn't appropriate for you to call that).
- Alfred -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Alfred Reynolds Sent: Sunday, March 27, 2005 1:23 PM To: hlcoders@list.valvesoftware.com Subject: RE: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash Looks like a null pointer is trying to be de-referenced. Have you stepped the code and verified that this is not the problem? - Alfred -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Mattie Casper Sent: Sunday, March 27, 2005 10:20 AM To: hlcoders@list.valvesoftware.com Subject: Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash Yep, though this is a little slow-going since it requires a player connection / dedicated server to reproduce the issue. I see two different problems since the latest Valve update. I can obtain crash dumps if anyone is particularly keen on them. Yet, since the addon produces this on any Windows dedicated server I tried, this should be unnecessary. First was a crash and this is when srcds.exe was launched in GUI mode. It's a read access violaton on 0x0040: 00000040() AdminServer.dll!025012d7() kernel32.dll!7c81eb33() AdminServer.dll!024db411() vstdlib.dll!00877101() AdminServer.dll!025012c6() AdminServer.dll!024cc89d() dedicated.dll!10004bd6() dedicated.dll!10018903() dedicated.dll!10018957() For a Windows console dedicated server, the crash appears to have morphed into an infinite loop that eats all the server CPU cycles-- not sure if the latest Valve update causes that or if trying to get a debugger involved has changed the nature of the problem slightly. -Mattie ----- Original Message ----- From: "Daniel Jennings" <[EMAIL PROTECTED]> To: <hlcoders@list.valvesoftware.com> Sent: Saturday, March 26, 2005 9:24 PM Subject: Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash > Have you run it through a debugger to check the stack when it crashes? > > ----- Original Message ----- > From: "Adam "amckern" Mckern" <[EMAIL PROTECTED]> > To: <hlcoders@list.valvesoftware.com> > Sent: Saturday, March 26, 2005 5:13 PM > Subject: Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, > crash > > >> are your runing the lattest build of ded server, and have you thought >> of adding a break point? >> >> >> --- Mattie Casper <[EMAIL PROTECTED]> wrote: >> >> > Events are caused within events all the time--- people use events >> > to do all sorts of things: kick players, make people swap teams, >> > teamkill punishment, etc. >> > Even if server event reentrance is a problem, we need some Valve >> > documentation saying this is forbidden or dangerous. >> > >> > To clarify three points: >> > 1. I'm not interested in specifically kicking a player. I'm >> > interested in doing X during an event where X is anything the >> > administrator wants. So if he wants to kick a player that's his >> > thing. I, personally, am not trying to kick anyone during an event. >> > I'm letting people run semi-special config files during an event. >> > 2. The crash doesn't just happen when plugin code specifically >> > kicks someone. It can happen when a player is kicked via some >> > administrative plugin, by the console, etc. It just needs to happen >> > at the around the time an event calls ServerExecute. >> > 3. The example below is the smallest example I made to reproduce >> > the problem. >> > I'm no newbie to coding-- I've considered all sorts of workarounds. >> > Like scheduling things independently via GameFrame, avoiding the >> > ServerExecute, etc. >> > Unfortunately, these alternatives are substandard/messy and, >> > really, I just need someone at Valve to say "this is a bug, we'll >> > fix it" or "ServerExecute during an event is unsupported because of >> > X and we'll document it as such going forward". If I've missed >> > existing documentation to this effect, I'm hoping someone on the >> > list can point me to it. (Educated guesses stated as if they were >> > fact won't help me, though.) >> > >> > Thanks, >> > -Mattie >> > >> > >> > cheeseh wrote: >> > >> --------------------------------------------------------------------- >> ---- >> > >> > I am guessing that when you kick a player another event is >> > triggered that tells that the player was kicked/left the server. >> > You cannot have two events fire inside each other, I am taking this >> > from the old "net message" code that was from HL1, you could not >> > have two messages start before they end. >> > >> > Instead of kicking the player there, try raising a flag (try >> > storing a global boolean variable and the player id) and check it >> > on startframe (or GameFrame () as it is now in HL2 I think) when >> > the flag is true, kick the stored player id, then set the flag to >> > false. In the event code replace it with setting the boolean to >> > true and setting the playerid to the userid.----- Original Message >> > ----- >> > From: "Mattie Casper" <[EMAIL PROTECTED]> >> > To: <hlcoders@list.valvesoftware.com> >> > Sent: Saturday, March 26, 2005 9:25 AM >> > Subject: FireGameEvent, kickid, ServerExecute, crash >> > >> > >> > > Hello, >> > > >> > > I've found what seems, for me, to be a really >> > annoying bug in CSS (and >> > > probably mods). The following problem happens >> > regardless of whether you use >> > > IGameEventListener or IGameEventListener2. >> > > >> > > My Windows server crashes 98% of the time with the >> > following code in a >> > > listener/plugin: >> > > >> > > >> > > void CEmptyServerPlugin::FireGameEvent( IGameEvent >> > * event ) >> > > { >> > > const char * name = event->GetName(); >> > > if (FStrEq(name, "player_changename")) >> > > { >> > > if(tester_cvar.GetInt()==1) >> > > { >> > > Msg("Kicking ya.\n"); >> > > int userid = event->GetInt("userid"); >> > > char szMessage[1024]; >> > > sprintf(szMessage, "kickid %d Go >> > away.\n", userid); >> > > engine->ServerCommand(szMessage); >> > > if (tester2_cvar.GetInt()==1) >> > > { >> > > // Crashes the server >> > > engine->ServerExecute(); >> > > } >> > > } >> > > } >> > > } >> > > >> > > Basically, this silly code causes a player to get >> > kicked immediately when he >> > > tries to change his name. He certainly does get >> > kicked, but the server crashes >> > > immediately after. >> > > >> > > This is just the sample reproduction code, but the >> > problem shows itself at a >> > > much deeper point in my EventScripts plugin when >> > users are kicked in the >> > > middle of an event. It can happen at times >> > regardless of whether the event >> > > handler is doing the kicking (i.e. another plugin >> > or user could be kicking the >> > > player while my event handlers are firing). I >> > believe it is a timing or >> > > threading issue because if I place a Windows >> > Sleep(100) after the above >> > > ServerExecute call, the crash usually doesn't >> > happen. >> > > >> > > Avoiding ServerExecute() is not really an option >> > for me because I truly need >> > > the command (not necessarily kick) executed >> > immediately (typically an exec of >> > > a cfg file). Regardless, the documentation places >> > no caveats on when >> > > ServerExecute() can be called, so I haven't been >> > afraid to do so when needed. >> > > >> > > Anyone have any recommendations or thoughts here? >> > > >> > > Thanks for your help, >> > > -Mattie >> > > >> > > >> > >> > >> > _______________________________________________ >> > To unsubscribe, edit your list preferences, or view the list >> > archives, please visit: >> > >> http://list.valvesoftware.com/mailman/listinfo/hlcoders >> > >> > >> >> >> http://ammahls.com >> >> >> >> >> __________________________________ >> Do you Yahoo!? >> Make Yahoo! your home page >> http://www.yahoo.com/r/hs >> >> _______________________________________________ >> To unsubscribe, edit your list preferences, or view the list >> archives, > please visit: >> http://list.valvesoftware.com/mailman/listinfo/hlcoders >> >> >> > > > _______________________________________________ > To unsubscribe, edit your list preferences, or view the list archives, > please > visit: > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders