iamgreaser / iceball

Open-source rewrite of the VOXLAP version of Ace of Spades.
http://iceball.build
GNU General Public License v3.0
113 stars 32 forks source link

Crash on server join #138

Closed MajorLunaC closed 9 years ago

MajorLunaC commented 9 years ago

I don't know if it's from the latest update or what but I keep getting missing files and seg faults when trying to join a server. In this case, the Official Testing Server: http://pastebin.com/YdPNiHBK

I see the output is somewhat similar to a closed issue: https://github.com/iamgreaser/iceball/issues/91

But changing gl_vbo to false changes nothing.

iamgreaser commented 9 years ago

The missing files is just because the program looks for skins and whatnot - it's not a problem.

Firstly, give us the output of this thing:

glxinfo

You may need to do this for glxinfo:

sudo apt-get mesa-utils

Try this, possibly in a separate virtual terminal (mouse grab is a bit of a pain... and by virtual terminal I mean Ctrl+Alt+Fn):

gdb --args ./iceball -c magicannon.com 20737

Then when it inevitably crashes:

bt full
MajorLunaC commented 9 years ago

Glx-info (actually mesa demos): http://pastebin.com/tKSqrJgg

gdb-run: http://pastebin.com/F0JT14mq

gdb-attach: http://pastebin.com/HVjyTJvN http://pastebin.com/WParm5zp

Yeah, those gdb commands didn't work as you can see, so I had to try some of the others I've seen around. All I can really tell from that is the linux-vdso is simply a useless warning, which can be safely ignored.

Did I do the gdb command wrong somehow?

EDIT: I got attach to work better with attach + continue. I gotta read up more on gdb, since I keep using it.

gdb-attach-continue-bt-full: http://pastebin.com/nzLzVNzr

strace (strace ./iceball): http://pastebin.com/pYW2TqZf http://pastebin.com/xdtgAUVQ

*Strangeness beyond belief: I can (usually) connect and play just fine if I run your command with strace (rarely segfaults with strace; ALWAYS segfaults WITHOUT strace there): strace ./iceball -c magicannon.com 20737

iamgreaser commented 9 years ago

Thanks for that, here's the relevant line:

0x00007f09a3760963 in snd_pcm_writei () from /usr/lib64/libasound.so.2

Which suggests that Iceball is crashing in the sound driver (probably in the userland). If you follow the backtrace you'll notice that it's a crash in SDL.

Try running iceball like so:

export SDL_AUDIODRIVER="dummy"
./iceball

See if it still crashes. The caveat is that you'll have no sound, but it should work.

MajorLunaC commented 9 years ago

Affirmative. It works without sound.

MajorLunaC commented 9 years ago

I was wondering, is there any follow-up on this? I would like to make sure the sound works for the future. Is it clear what's wrong and what needs to be done? Are there any more tests or info needed?

The SDL I have installed is the following. I can provide a directory listing of any of the install locations on request, if it helps: SDL2-2.0.1 SDL2_image-2.0.0 SDL2_mixer-2.0.0 SDL2_net-2.0.0 SDL_Pango-0.1.2 SDL_gfx-2.0.25 SDL_image-1.2.12 sdl-1.2.15-x86_64 sdl-compat32-1.2.15-x86_64 (32-bit compatibility lib)

iamgreaser commented 9 years ago

Have you tried changing the frequency in clsave/config.json to 48000? The music will be a bit faster as I've still yet to chuck in the updated sackit libs that can handle different frequencies properly, but it might work.

Otherwise, I really don't know how to go about fixing this.

I'm going to close this now, seeing as from what I can tell it's Not Our Bug™, but feel free to reply.

MajorLunaC commented 9 years ago

"Have you tried changing the frequency in clsave/config.json to 48000?"

That fixes it, thanks! It doesn't seem any faster (heard some while map loading).