Let's talk plug-ins

Expand and mod your server.
User avatar
optic delusion
Special Forces
Special Forces
Posts: 1011
Joined: Sat Sep 25, 2004 2:29 pm
Location: Planet MoFo
Contact:

AL KIIDA, suicide bomber.

Post by optic delusion » Fri Aug 19, 2005 1:34 am

Delete works for suicide bombings.

While I'm on the subject of suicide. Running over a burrow is suicide, as well as using shockwave as a weapon.
Take a look at my Defender game mode concept.

Thinking is not an automatic process. A man can choose to think or to let his mind stagnate, or he can choose actively to turn against his intelligence, to evade his knowledge, to subvert his reason. If he refuses to think, he courts disaster: he cannot with impunity reject his means of perceiving reality.

Guest

Post by Guest » Fri Aug 19, 2005 1:42 am

Yeah... Suicide bombings using Delete is ace... 8)

User avatar
optic delusion
Special Forces
Special Forces
Posts: 1011
Joined: Sat Sep 25, 2004 2:29 pm
Location: Planet MoFo
Contact:

Your Rampage does not end when your flag is captured.

Post by optic delusion » Fri Aug 19, 2005 10:09 pm

Your Rampage does not end when your flag is captured.
Take a look at my Defender game mode concept.

Thinking is not an automatic process. A man can choose to think or to let his mind stagnate, or he can choose actively to turn against his intelligence, to evade his knowledge, to subvert his reason. If he refuses to think, he courts disaster: he cannot with impunity reject his means of perceiving reality.

User avatar
I_Died_Once
Special Forces
Special Forces
Posts: 635
Joined: Sun Nov 28, 2004 5:27 pm
Location: The Dark Side
Contact:

Post by I_Died_Once » Fri Aug 19, 2005 10:37 pm

OK, this might be a stupid question, but which plugin is it that does the whole "Darth Vader is on a killing spree!" and "Darth Vader is on a Rampage!" ???

Two things about that whole feature - when it says someone is on a Rampage, they capitalize the R in Rampage in the middle of a sentence. Bad punctuation.

...and when a killing spree has been stopped, it says "Darth Vader's killing spree has been stoped"

Someone spelled "stopped" wrongly. It takes two "p" 's.

Nothing too big, just some spelling and puctuation touch up is needed.
...This has been a recording.

User avatar
JeffM
Staff Sergeant
Staff Sergeant
Posts: 5193
Joined: Fri Dec 13, 2002 4:11 am
Location: https://github.com/OmniTanks
Contact:

Post by JeffM » Fri Aug 19, 2005 11:07 pm

that is the play history tracker. It needs work. As I've said like 5 times now.
ImageJeffM

User avatar
I_Died_Once
Special Forces
Special Forces
Posts: 635
Joined: Sun Nov 28, 2004 5:27 pm
Location: The Dark Side
Contact:

Post by I_Died_Once » Sat Aug 20, 2005 12:05 am

OK, had another segmentation fault sometime today. I did the thing DTRemenak told me to do with the core dumps... here's the results

Code: Select all

Player RPG [8] -> All: /match start
Segmentation fault (core dumped)
death@linux:~>
death@linux:~> gdb --core=/home/death/core
GNU gdb 6.2.1
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i586-suse-linux".
Core was generated by `./bzfs -conf 4team.conf'.
Program terminated with signal 11, Segmentation fault.
#0  0x403da834 in ?? ()
(gdb) file /home/death/bzflag/bin/bzfs
Reading symbols from /home/death/bzflag/bin/bzfs...done.
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(gdb) bt
#0  0x403da834 in ?? ()
#1  0x402ebc54 in ?? ()
#2  0x4039c780 in ?? ()
#3  0x00000004 in ?? ()
#4  0x080d4fff in parseServerCommand (message=0x9 <Address 0x9 out of bounds>,
    t=136554920) at stl_tree.h:202
#5  0x080e91b6 in sendPlayerMessage (playerData=0x8239098, dstPlayer=254 '',
    message=0x82370c4 "/match start") at bzfs.cxx:971
#6  0x080effe5 in handleCommand (t=8, rawbuf=0x8230d04, udp=Variable "udp" is not available.
) at bzfs.cxx:3278
#7  0x080f5d0d in handleTcp (netPlayer=@0x8230cc0, i=8, e=ReadAll)
    at bzfs.cxx:3653
#8  0x080b6893 in GameKeeper::Player::handleTcpPacket (this=0x8239098,
    set=0xbfffef70) at GameKeeper.cxx:309
#9  0x080f2cc5 in main (argc=3, argv=0xbffff194) at bzfs.cxx:4803
Seems it happened right after RPG started a match....
...This has been a recording.

User avatar
RPG
Lieutenant, Junior Grade
Lieutenant, Junior Grade
Posts: 2015
Joined: Fri Sep 17, 2004 2:37 am
Location: Chicago, Illinois
Contact:

Post by RPG » Sat Aug 20, 2005 12:33 am

Heh, I remember doing that too. Then all the sudden I got kicked. I hope it isn't an issue with racetoseven.

EDIT: Now that I read that more thoroughly, looks more like an API issue.
:phew:

User avatar
I_Died_Once
Special Forces
Special Forces
Posts: 635
Joined: Sun Nov 28, 2004 5:27 pm
Location: The Dark Side
Contact:

Post by I_Died_Once » Sat Aug 20, 2005 4:37 am

Well, here's another from The Passion of the FFA

Code: Select all

layer Lithium 2 [0] uread() 24.15.179.85:4307 len 31 from 24.15.179.85:4307 on4
Player I_Died_Once [1] uread() 192.168.1.1:2737 len 31 from 192.168.1.1:2737 on4
Player /dev/explodingtank [2] uread() 168.150.242.33:38138 len 31 from 168.150.242.33:38138 on 4
Player k0ntol [6] uread() 69.196.191.12:1328 len 31 from 69.196.191.12:1328 on 4
Player I_Died_Once [1] uread() 192.168.1.1:2737 len 9 from 192.168.1.1:2737 on 4
Segmentation fault (core dumped)
death@linux:~> gdb --core=/home/death/core
GNU gdb 6.2.1
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i586-suse-linux".
Core was generated by `./bzfs -conf FFA.conf'.
Program terminated with signal 11, Segmentation fault.
#0  0x403f5116 in ?? ()
(gdb) file /home/death/bzflag/bin/bzfs
Reading symbols from /home/death/bzflag/bin/bzfs...done.
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(gdb) bt
#0  0x403f5116 in ?? ()
#1  0x0817413b in __gthread_active_p()::__gthread_active_ptr ()
#2  0x081da2c0 in ?? ()
#3  0xbfffe3d0 in ?? ()
#4  0x00000002 in ?? ()
#5  0xbfffe3d0 in ?? ()
#6  0xbfffe318 in ?? ()
#7  0x080d365d in WorldEventManager::callEvents (this=0x81d8cbc,
    eventType=136138376, eventData=0x3) at stl_vector.h:501
Previous frame inner to this frame (corrupt stack?)
(gdb)   
...This has been a recording.

User avatar
DTRemenak
General
General
Posts: 625
Joined: Thu Jan 16, 2003 4:54 am
Location: U.S.
Contact:

Post by DTRemenak » Sat Aug 20, 2005 10:32 am

Those are very weird actually.

Let's look carefully: the first one says
#5 0x080e91b6 in sendPlayerMessage (playerData=0x8239098, dstPlayer=254 '', message=0x82370c4 "/match start") at bzfs.cxx:971

That all looks good. Note the address of message, 0x82370c4, which is valid.

Now watch what happens at the next frame.

#4 0x080d4fff in parseServerCommand (message=0x9 <Address 0x9 out of bounds>, t=136554920) at stl_tree.h:202

0x9? playerindex of 136554920? That's no good. What threw it off?

Looking at the code in sendPlayerMessage, we have being executed:

Code: Select all

  const PlayerId srcPlayer = playerData->getIndex();
  if (strncasecmp(message, "/me", 3) == 0) {
    <snip, the comparison is false>
  else if ((message[0] == '/') && (message[1] != '/')) {
    if (Record::enabled()) {
      <snip, read/copy operations only>
    }
  parseServerCommand(message, srcPlayer);
That's all, basically five lines of code. You'll note that message = message, the pointer's never changed. That means that at some point your computer got convinced that 0x82370c4 = 0x9. srcPlayer also = playerData->getIndex(). playerData here IS valid, since RPG was still connected at the time of the crash, so getIndex should have returned something in the range [0, 255]. This is all bzfs code, not plugin code. Then the next frame is at 0x04 which is not a valid address. Assuming your computer is not playing tricks on you, it should have returned immediately when GameKeeper::Player::getPlayerByIndex returned NULL.

Now the second one.
Note particularly "Previous frame inner to this frame (corrupt stack?)", also the pattern
#3 0xbfffe3d0 in ?? ()
#4 0x00000002 in ?? ()
#5 0xbfffe3d0 in ?? ()
Note that the function at 0xbfffe3d0 calls 0x02 (which is certainly invalid), then that calls it right back again. That's a sign of stack corruption also.

Now, what conclusions can we draw from this?

Either:
1. Some program is smashing up your stack,
or 2. Your computer has some bad bits of memory.

It's possible that some plugin (or other program even) is misbehaving very badly and that's the source of it. Since both of the odd backtraces are triggered near plugin API code, it's more likely that it's bzfs itself or a plugin than any other program. Unfortunately when a crash screws up the stack like that there's not any easy way to tell what caused it (valgrind generally catches that stuff early enough, but it's not easy to set up and it kills performance).

I don't really think that's the problem though. Generally a crash like that is at least repeatable, and unless your server does that every time someone runs "/match start" I'm not thinking that's the case.

I'd be more likely to bet that your memory has a couple bad bits, but you can prove me wrong easily enough. Grab memtest from http://memtest86.com/ (or stick in your SuSE cd and pick "memtest86" from the bottom of the boot menu. They ship it, how nice of them.), and let it run through all its tests (which will take a while, probably on the order of an hour). If you've noticed other stuff segfaulting on you too, that's a good indication of a memory problem. The converse is not true...if you haven't noticed stuff segfaulting, it doesn't mean there isn't a problem. Memory problems are sometimes only triggered by a particular pattern in a particular location.

User avatar
I_Died_Once
Special Forces
Special Forces
Posts: 635
Joined: Sun Nov 28, 2004 5:27 pm
Location: The Dark Side
Contact:

Post by I_Died_Once » Sat Aug 20, 2005 7:59 pm

...

Here's another

Code: Select all

Queuing ADD message to list server
Player [5] accept() from 69.28.129.166:50986 on 11
Player [5] submitted reverse resolve query
Player  [5] removed at 2005-08-20 15:54:02: Disconnected
Player Darth Vader [0] -> All: go for it
Player A-Delusion [3] -> All: /match start
Segmentation fault (core dumped)
death@linux:~> gdb --core=/home/death/core
GNU gdb 6.2.1
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i586-suse-linux".
Core was generated by `./bzfs -conf redvsblue.conf'.
Program terminated with signal 11, Segmentation fault.
#0  0x403da7ca in ?? ()
(gdb) file /home/death/bzflag/bin/bzfs
Reading symbols from /home/death/bzflag/bin/bzfs...done.
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(gdb) bt
#0  0x403da7ca in ?? ()
#1  0x402ebc54 in ?? ()
#2  0x4039c780 in ?? ()
#3  0x00000004 in ?? ()
#4  0x080d4fff in parseServerCommand (message=0x81c1ab0 "", t=5) at stl_tree.h:202
#5  0x080e91b6 in sendPlayerMessage (playerData=0x81bc570, dstPlayer=254 '',
    message=0x81c40e4 "/match start") at bzfs.cxx:971
#6  0x080effe5 in handleCommand (t=3, rawbuf=0x81be19c, udp=Variable "udp" is not available.
) at bzfs.cxx:3278
#7  0x080f5d0d in handleTcp (netPlayer=@0x81be158, i=3, e=ReadAll) at bzfs.cxx:3653
#8  0x080b6893 in GameKeeper::Player::handleTcpPacket (this=0x81bc570, set=0xbfffef70)
    at GameKeeper.cxx:309
#9  0x080f2cc5 in main (argc=3, argv=0xbffff194) at bzfs.cxx:4803
(gdb)     
...This has been a recording.

User avatar
I_Died_Once
Special Forces
Special Forces
Posts: 635
Joined: Sun Nov 28, 2004 5:27 pm
Location: The Dark Side
Contact:

Post by I_Died_Once » Sat Aug 20, 2005 8:01 pm

I will run the memtest - but this is the same machine I've been running Planet MoFo on since inception. Its crashed once or twice, but since doing the CVS thing, it's been doing this fairly regularly, so I attributed it to the unstable code.

I'll run it sometime today, or over night
...This has been a recording.

User avatar
optic delusion
Special Forces
Special Forces
Posts: 1011
Joined: Sat Sep 25, 2004 2:29 pm
Location: Planet MoFo
Contact:

second match

Post by optic delusion » Sat Aug 20, 2005 8:31 pm

This last crash happened the second time a match was started.
The first match was played start to finish. Worked great.
I started a second match a couple minutes later from my client.
It reset the flags, then all went nr.
Take a look at my Defender game mode concept.

Thinking is not an automatic process. A man can choose to think or to let his mind stagnate, or he can choose actively to turn against his intelligence, to evade his knowledge, to subvert his reason. If he refuses to think, he courts disaster: he cannot with impunity reject his means of perceiving reality.

User avatar
RPG
Lieutenant, Junior Grade
Lieutenant, Junior Grade
Posts: 2015
Joined: Fri Sep 17, 2004 2:37 am
Location: Chicago, Illinois
Contact:

Post by RPG » Sat Aug 20, 2005 8:46 pm

I'd say memory.

Also use the latest version of the racetoseven plugin, beta 3.

User avatar
DTRemenak
General
General
Posts: 625
Joined: Thu Jan 16, 2003 4:54 am
Location: U.S.
Contact:

Post by DTRemenak » Sun Aug 21, 2005 9:12 am

Hmm. I need to change my assessment, based on the receival of new information.

Code: Select all

16:16.21	JeffM2501	DTRemenak, just so you know, if IDiedOnce is still using scoreReset, his stack can be smashed
16:20.20	DTRemenak	can it?  that seems like a Bad Thing
16:20.38	JeffM2501	it is
16:20.45	DTRemenak	it should probably be Fixed
16:20.49	JeffM2501	the API for seting the score is HORKED
16:20.57	JeffM2501	well there are client side problems with it
16:21.00	JeffM2501	I have been working on it
16:21.13	DTRemenak	the client should not make the server crash dude ;)
16:21.22	JeffM2501	I know it should not
16:21.27	JeffM2501	but I've watched it happen
16:21.44	JeffM2501	hence why i'm having a pain time tracking it down
16:21.46	DTRemenak	what does it do?
16:22.22	JeffM2501	if you've used score reset and a client leaves, the server will blow over some memory
16:22.30	JeffM2501	later in a message function
You have been warned: do not use the ScoreReset plugin until further notice.

If you are not using the ScoreReset plugin, you may safely ignore this message and continue suspecting your memory ;). Note that memory does not (generally) "go bad" so once your memory test is complete, if it passes then you can always wave the results at people who suspect your memory is bad in the future.

User avatar
RPG
Lieutenant, Junior Grade
Lieutenant, Junior Grade
Posts: 2015
Joined: Fri Sep 17, 2004 2:37 am
Location: Chicago, Illinois
Contact:

Post by RPG » Sun Aug 21, 2005 4:04 pm

Ever since brad2901 unloaded the scorereset pulgin, we played about 8 matches with my pugin, and they all went off flawlessly.

User avatar
optic delusion
Special Forces
Special Forces
Posts: 1011
Joined: Sat Sep 25, 2004 2:29 pm
Location: Planet MoFo
Contact:

well...

Post by optic delusion » Sun Aug 21, 2005 4:10 pm

Well, I crashed beta4 a few minutes ago with no other plugins loaded.
At the start of a second match.
Take a look at my Defender game mode concept.

Thinking is not an automatic process. A man can choose to think or to let his mind stagnate, or he can choose actively to turn against his intelligence, to evade his knowledge, to subvert his reason. If he refuses to think, he courts disaster: he cannot with impunity reject his means of perceiving reality.

User avatar
RPG
Lieutenant, Junior Grade
Lieutenant, Junior Grade
Posts: 2015
Joined: Fri Sep 17, 2004 2:37 am
Location: Chicago, Illinois
Contact:

Re: well...

Post by RPG » Sun Aug 21, 2005 4:13 pm

A-Delusion wrote:Well, I crashed beta4 a few minutes ago with no other plugins loaded.
At the start of a second match.
Which OS? Those backtraces are very helpful... start doing those if you can.

User avatar
optic delusion
Special Forces
Special Forces
Posts: 1011
Joined: Sat Sep 25, 2004 2:29 pm
Location: Planet MoFo
Contact:

macintosh loser here...

Post by optic delusion » Sun Aug 21, 2005 4:15 pm

That was me, I'm mac remember....
It was at brad's server.
Take a look at my Defender game mode concept.

Thinking is not an automatic process. A man can choose to think or to let his mind stagnate, or he can choose actively to turn against his intelligence, to evade his knowledge, to subvert his reason. If he refuses to think, he courts disaster: he cannot with impunity reject his means of perceiving reality.

User avatar
RPG
Lieutenant, Junior Grade
Lieutenant, Junior Grade
Posts: 2015
Joined: Fri Sep 17, 2004 2:37 am
Location: Chicago, Illinois
Contact:

Post by RPG » Sun Aug 21, 2005 4:16 pm

Let's all start backtracing so we can find out the plugin (or API) crash problems!!!

User avatar
I_Died_Once
Special Forces
Special Forces
Posts: 635
Joined: Sun Nov 28, 2004 5:27 pm
Location: The Dark Side
Contact:

Post by I_Died_Once » Sun Aug 21, 2005 6:00 pm

I'm running the latest Knoppix in the server that is Planet MoFo, and it has Memtest86 v1.20 running rught now

I'm 3:54 (that's three hours and fifty four minutes) into the test. So far, it says no errors. I just let it run whatever the default is for the test.

I'm going to let it run until completeion, even if it takes a full 24 hours.

I'll be in and out all day long, up until about 6 or 7 this evening. Tonight is SummerSlam, and I'll be out to my cousin's house watching it. If I don't have MoFo back up at that point, I'll drop by other servers while out, if I get the chance at my cousins'.

But yeah, so far no errors. Y'all said it would take about an hour - I'm 4hours into it, 41 passes, and its just a chuggin' along the numbers and stuff. I gotta go now and I'll be back in an hour, I hope it'll be cleared up by then. And when I do put the serer back up, it'll be with no scoreReset.

If there is anything I need to do, settings I need to make sure are set, or what have you, let me know. Temporary admin access is available to dev's upon request.
...This has been a recording.

User avatar
optic delusion
Special Forces
Special Forces
Posts: 1011
Joined: Sat Sep 25, 2004 2:29 pm
Location: Planet MoFo
Contact:

41 passes?

Post by optic delusion » Sun Aug 21, 2005 6:16 pm

41 passes?
That means it's gone all through the entire test 41 times, right?
It will do that forever, if you dont stop it.

Let's get vader a linux build of race to seven beta 4, if we can.
Take a look at my Defender game mode concept.

Thinking is not an automatic process. A man can choose to think or to let his mind stagnate, or he can choose actively to turn against his intelligence, to evade his knowledge, to subvert his reason. If he refuses to think, he courts disaster: he cannot with impunity reject his means of perceiving reality.

User avatar
optic delusion
Special Forces
Special Forces
Posts: 1011
Joined: Sat Sep 25, 2004 2:29 pm
Location: Planet MoFo
Contact:

While we are at it.....

Post by optic delusion » Sun Aug 21, 2005 8:45 pm

While we are at it, let's get A-Delusion a copy too, it seems this morning's cvs allows plugins on my mac.
Take a look at my Defender game mode concept.

Thinking is not an automatic process. A man can choose to think or to let his mind stagnate, or he can choose actively to turn against his intelligence, to evade his knowledge, to subvert his reason. If he refuses to think, he courts disaster: he cannot with impunity reject his means of perceiving reality.

User avatar
RPG
Lieutenant, Junior Grade
Lieutenant, Junior Grade
Posts: 2015
Joined: Fri Sep 17, 2004 2:37 am
Location: Chicago, Illinois
Contact:

Post by RPG » Sun Aug 21, 2005 11:17 pm

beta 3 will work with the current CVS. I don't want to put out beta 4 yet because it doesn't have enough sufficent features to be considered a "release".

User avatar
I_Died_Once
Special Forces
Special Forces
Posts: 635
Joined: Sun Nov 28, 2004 5:27 pm
Location: The Dark Side
Contact:

Post by I_Died_Once » Sun Aug 21, 2005 11:43 pm

Well I am starting to think Delusion is right about it running forever. Its nine hours, 45 minutes into the test, and it is still just 'a processing numbers & doing its passes.

So far, there's been no errors.

If anyone thats a little more experienced with the memtest knows it'll do this forever, I'll stop it. I'm using the one on a recent Knoppix disc.
...This has been a recording.

User avatar
DTRemenak
General
General
Posts: 625
Joined: Thu Jan 16, 2003 4:54 am
Location: U.S.
Contact:

Post by DTRemenak » Sun Aug 21, 2005 11:49 pm

Oops, forgot it would do that. One pass is enough. I'm sorry, that probably just tied up your machine for way longer than it needed to be.

Post Reply