0.4: xcb crash bug

What do you want to see in Armagetron soon? Any new feature ideas? Let's ponder these ground breaking ideas...
User avatar
Light
Reverse Outside Corner Grinder
Posts: 1667
Joined: Thu Oct 20, 2011 2:11 pm

0.4: xcb crash bug

Post by Light »

0.4 crashes on me for some reason. Sometimes it's 100 seconds in, sometimes it's 1000+, but it always seems to crash randomly during gameplay, and I think it happens when I turn, but not really able to say for sure because you're turning most of the time, and it don't happen every time I turn obviously since I can last a little before the crash.

I use the zero install xml to get it since when I attempt to configure the source I get that the ftgl libs are missing, even though I have them installed. >_>

I use Ubuntu 11.10 Beta 2 on Gnome 3 if this may have anything to do with it.

Now, my question is ... how can I either fix the above issue, or what's a more stable version that includes the minimap on the HUD? It's really the only thing that I want to upgrade for, though the music player is kind'a convenient. :)

Also, is there a way to hide the analog clock in the top-right because when text falls behind it, it's quite hard to read, but not a big deal if not .. just thought I'd ask to see if I missed an option.

Thanks for your work & hope ya can help me.
User avatar
Light
Reverse Outside Corner Grinder
Posts: 1667
Joined: Thu Oct 20, 2011 2:11 pm

Re: 0.4: branched

Post by Light »

I compiled and tried to use 0.3_alpha_z1583 and it still crashed. I ran it through terminal this time so I could provide the error.

Code: Select all

[xcb] Unknown sequence number while processing queue
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
armagetronad-experimental: ../../src/xcb_io.c:273: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed.
Aborted
Hope you can help out.
User avatar
Z-Man
God & Project Admin
Posts: 11585
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: 0.4: branched

Post by Z-Man »

That helps a lot. xcb is a relatively new Xlib replacement, it must have been made the default on Ubuntu 11.10. We're not using multithreading ourselves actively on the client (well, we are NOW, but not yet in that snapshot), but SDL and SDL_Mixer do so internally to make sure sound is processed independently of the main program. My first guess would be that they have not been ported to xcb properly yet and that cycle turn sounds trigger the crash. I'll try to reproduce the problem on my end, it should happen just as easily in a VM. If I can't, I'll get back to you and ask for backtraces.

Edit: duh, forgot I don't need a VM, we have 11.10 running on the netbook.
User avatar
Light
Reverse Outside Corner Grinder
Posts: 1667
Joined: Thu Oct 20, 2011 2:11 pm

Re: 0.4: xcb crash bug

Post by Light »

Thanks for the reply. It sometimes takes a while, but it always does occur, although I was on for about 2500 seconds before the crash last time. I went back to 2.8 for now, but I hope ya get it workin' for 11.10

If I must disable the sound or something, I would be more than happy to if it would mean being able to use the client. I'm always playing music anyways in an external player, so it's not very important to me.

I wanna go off topic and offer a suggestion though. I like the built-in music player, but it would be much nicer if it didn't stop/start your playlist when you exit and enter games. I know you're usually in long enough that it shouldn't matter, but there's also times where I go around to different servers.

Anyways, thanks much for lookin' into it. :)

Edit: Wayy off topic and I don't know if you're the right person to ask but I'm just assuming you would know.

In map making, how do you create a teleport zone? Like, what all would I need to provide (could you show an expample). Through Google, the only solution I found was using spawn_zone along with command_delay, but the coordinates are a bit different depending on the size_factor, so it would be much easier if I could just add it like a death / win zone in the XML file.

This ain't really important, but was curious because I would like to try and make a map that is like pacman or asteroids where you hit one wall and come out the other. I think it would make the game interesting, but I ain't sure if it would be more annoying than fun. :P

If I must use the command_delay, what would the size of my grid be if the map is 500 by 500 and size_factor is -2?

Thanks, and sorry for more questions.
User avatar
Jonathan
A Brave Victim
Posts: 3391
Joined: Thu Feb 03, 2005 12:50 am
Location: Not really lurking anymore

Re: 0.4: xcb crash bug

Post by Jonathan »

Every size factor step corresponds to doubling or halving of area. So 500x500 with SIZE_FACTOR -2 is 250x250. The real scaling factor = 2^((1/2)*SIZE_FACTOR).
ˌɑrməˈɡɛˌtrɑn
User avatar
Light
Reverse Outside Corner Grinder
Posts: 1667
Joined: Thu Oct 20, 2011 2:11 pm

Re: 0.4: xcb crash bug

Post by Light »

Jonathan wrote:Every size factor step corresponds to doubling or halving of area. So 500x500 with SIZE_FACTOR -2 is 250x250. The real scaling factor = 2^((1/2)*SIZE_FACTOR).
Thanks very much.
User avatar
Z-Man
God & Project Admin
Posts: 11585
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: 0.4: xcb crash bug

Post by Z-Man »

While I could not reproduce the error, the instructions in the message are clear: call XInitThreads. That's already an xlib function, so I suppose it's all right to just call it and it'll do the right thing. So that's done, you can get the update from bzr right now or with the next snapshot.

Regarding the music, I'm not the music guy. I suppose it works the way it does because it switches to a menu music playlist in between. My understanding of the music system is too limited to change that in the right way.

Regarding the clock: that's one of my annoyances as well. It'll probably get fixed. Before you give a "can't you just ... " type fix suggestion, consider whether the answer "we can't do that because it wouldn't work or make sense in splitscreen" applies.

Teleports etc are only possible in the sty+ct branch, not 0.4, sorry.
User avatar
Z-Man
God & Project Admin
Posts: 11585
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: 0.4: xcb crash bug

Post by Z-Man »

Oh, right, you just want to get rid of the clock for now. That's relatively easy, you just need to modify the cockpit file and delete it. In the source, the file is resource/included/Anonymous/original/original.cockpit.xml. Even without understanding it, it should be quite obvious what to remove.
User avatar
Light
Reverse Outside Corner Grinder
Posts: 1667
Joined: Thu Oct 20, 2011 2:11 pm

Re: 0.4: xcb crash bug

Post by Light »

I downloaded the bzr but there was no configure file or anything? I'm guessing I would have to compile it then, so I'll just wait until you have it up as a build because I ain't really sure what all I'd need. Is there any way you could upload a copy w/ the configure file and all, or even a deb file would be cool if you didn't mind. If not, can I know when it should be up?

Thanks.
epsy
Adjust Outside Corner Grinder
Posts: 2003
Joined: Tue Nov 07, 2006 6:02 pm
Location: paris
Contact:

Re: 0.4: xcb crash bug

Post by epsy »

Running autogen.sh or bootstrap.sh* will generate a configure script.

*Sorry, I always forget which we use.
User avatar
Light
Reverse Outside Corner Grinder
Posts: 1667
Joined: Thu Oct 20, 2011 2:11 pm

Re: 0.4: xcb crash bug

Post by Light »

I saw that you updated the weekly build client version so I could finally use it with zero install, and wanted to provide you with some feedback. Sadly, it does still crash, and here's the error outputted. I believe it's the same error as before.

Code: Select all

[xcb] Unknown sequence number while processing queue
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
armagetronad-experimental: ../../src/xcb_io.c:273: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed.
Aborted
User avatar
Z-Man
God & Project Admin
Posts: 11585
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: 0.4: xcb crash bug

Post by Z-Man »

Was worth a try. In that case, I'd need a backtrace. Grab and untar the source tarball, configure it for lean debugging, run it in gdb:

Code: Select all

DEBUGLEVEL=1 ./configure
make debug
gdb ./armagetronad
r
<wait for crash>
bt full
and paste the output of the last command here. If you want to play with your usual configuration, copy your user*.cfg into ./var/.
Ideally, you can directly give the backtrace of each thread after the crash:

Code: Select all

thread 1
bt full
thread 2
bt full
...
until thread 99 gives you an error.
User avatar
Light
Reverse Outside Corner Grinder
Posts: 1667
Joined: Thu Oct 20, 2011 2:11 pm

Re: 0.4: xcb crash bug

Post by Light »

Code: Select all

#0  0x000000000042af20 in tCoord::operator- (this=0x24, a=...)
    at ./tools/tCoord.h:50
No locals.
#1  0x0000000000533b07 in eCamera::SoundMixGameObject (this=0x13473b0, 
    dest=0xef92c0 "", len=4096, go=0x0) at engine/eCamera.cpp:2452
        dist_squared = -6.59778054e+25
        dist = 0
        vec = {x = 0, y = 0}
        l = 1.01454009e-42
        r = 2.18372523e-38
#2  0x0000000000533a79 in eCamera::SoundMix (this=0x13473b0, dest=0xef92c0 "", 
    len=4096) at engine/eCamera.cpp:2443
        go = 0x0
        i = 724
        c = 0x1343a30
#3  0x000000000058cd86 in fill_audio (udata=0x0, stream=0xef92c0 "", len=4096)
    at engine/eSound.cpp:92
        i = 0
#4  0x00007ffff6cdf508 in ?? () from /usr/lib/libSDL-1.2.so.0
No symbol table info available.
#5  0x00007ffff6ce7705 in ?? () from /usr/lib/libSDL-1.2.so.0
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#6  0x00007ffff6d2b3e9 in ?? () from /usr/lib/libSDL-1.2.so.0
No symbol table info available.
#7  0x00007ffff7bc6efc in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
No symbol table info available.
#8  0x00007ffff53bd89d in clone () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#9  0x0000000000000000 in ?? ()
No symbol table info available.
User avatar
Light
Reverse Outside Corner Grinder
Posts: 1667
Joined: Thu Oct 20, 2011 2:11 pm

Re: 0.4: xcb crash bug

Post by Light »

I did it twice just because the first time I set cycle_delay reallly low and I got stuck in my own trail then it crashed quick. Just to make sure you get what you need .. so sorry if it's a duplicate.

Code: Select all

#0  0x000000000042af20 in tCoord::operator- (this=0x24, a=...)
    at ./tools/tCoord.h:50
No locals.
#1  0x0000000000533b07 in eCamera::SoundMixGameObject (this=0x7fffe4308b20, 
    dest=0xef9670 "", len=4096, go=0x0) at engine/eCamera.cpp:2452
        dist_squared = -6.59778054e+25
        dist = 0
        vec = {x = 0, y = 0}
        l = 1.2807868e-42
        r = 2.10210016e-38
#2  0x0000000000533a79 in eCamera::SoundMix (this=0x7fffe4308b20, 
    dest=0xef9670 "", len=4096) at engine/eCamera.cpp:2443
        go = 0x0
        i = 914
        c = 0x7fffe42b7760
#3  0x000000000058cd86 in fill_audio (udata=0x0, stream=0xef9670 "", len=4096)
    at engine/eSound.cpp:92
        i = 0
#4  0x00007ffff6cdf508 in ?? () from /usr/lib/libSDL-1.2.so.0
No symbol table info available.
#5  0x00007ffff6ce7705 in ?? () from /usr/lib/libSDL-1.2.so.0
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#6  0x00007ffff6d2b3e9 in ?? () from /usr/lib/libSDL-1.2.so.0
No symbol table info available.
#7  0x00007ffff7bc6efc in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
No symbol table info available.
#8  0x00007ffff53bd89d in clone () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#9  0x0000000000000000 in ?? ()
No symbol table info available.
Hope it helps. :)
User avatar
Z-Man
God & Project Admin
Posts: 11585
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: 0.4: xcb crash bug

Post by Z-Man »

Ooh, yes indeed, though it has nothing to do at all with the error message :). Looks like when I added back the engine sound, I forgot to make sure again that while the sound thread is actively mixing things, no game objects should be created or destroyed. That's clearly mixer action on a nonexistent object. Setting the sound quality to 'off' should avoid the crash.
Post Reply