Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hangs while setting options, crashes when quitting the game #5

Open
Conan-Kudo opened this issue May 29, 2021 · 3 comments
Open

Hangs while setting options, crashes when quitting the game #5

Conan-Kudo opened this issue May 29, 2021 · 3 comments

Comments

@Conan-Kudo
Copy link
Contributor

While testing IceBreaker with sdl12-compat on Fedora Linux 34 on KDE Plasma, I noticed that IceBreaker hangs when trying to set options and crashes when I quit the game.

One such backtrace from GDB:

(gdb) bt
#0  unlink_chunk (p=p@entry=0x4d10b0, av=0x7ffff7f20a00 <main_arena>) at malloc.c:1613
#1  0x00007ffff7de574e in malloc_consolidate (av=av@entry=0x7ffff7f20a00 <main_arena>) at malloc.c:4731
#2  0x00007ffff7de766b in _int_malloc (av=av@entry=0x7ffff7f20a00 <main_arena>, bytes=bytes@entry=4096) at malloc.c:3924
#3  0x00007ffff7de92c1 in __GI___libc_malloc (bytes=bytes@entry=4096) at malloc.c:3237
#4  0x00007ffff7dd2264 in __GI__IO_file_doallocate (fp=0xc14820) at filedoalloc.c:101
#5  0x00007ffff7de0b70 in __GI__IO_doallocbuf (fp=0xc14820) at /usr/src/debug/glibc-2.33-8.fc34.x86_64/libio/libioP.h:948
#6  __GI__IO_doallocbuf (fp=fp@entry=0xc14820) at genops.c:342
#7  0x00007ffff7ddfd28 in _IO_new_file_overflow (f=0xc14820, ch=-1) at fileops.c:745
#8  0x00007ffff7ddedd6 in _IO_new_file_xsputn (n=31, data=<optimized out>, f=<optimized out>) at /usr/src/debug/glibc-2.33-8.fc34.x86_64/libio/libioP.h:948
#9  _IO_new_file_xsputn (f=0xc14820, data=<optimized out>, n=31) at fileops.c:1197
#10 0x00007ffff7dc8de6 in outstring_func (done=0, length=31, string=0x4119d8 "# Icebreaker config file 1.0\n#\n", s=0xc14820) at ../libio/libioP.h:948
#11 __vfprintf_internal (s=s@entry=0xc14820, format=format@entry=0x4119d8 "# Icebreaker config file 1.0\n#\n", ap=ap@entry=0x7fffffffca40, mode_flags=mode_flags@entry=2)
    at vfprintf-internal.c:1404
#12 0x00007ffff7e6b38c in ___vfprintf_chk (fp=fp@entry=0xc14820, flag=flag@entry=1, format=format@entry=0x4119d8 "# Icebreaker config file 1.0\n#\n", 
    ap=ap@entry=0x7fffffffca40) at vfprintf_chk.c:29
#13 0x000000000040b1ff in vfprintf (__ap=0x7fffffffca40, __fmt=0x4119d8 "# Icebreaker config file 1.0\n#\n", __stream=0xc14820) at /usr/include/bits/stdio2.h:135
#14 writeoptionline (f=f@entry=0xc14820, fmt=fmt@entry=0x4119d8 "# Icebreaker config file 1.0\n#\n") at /usr/src/debug/icebreaker-2.1.3-1.fc34.x86_64/options.c:549
#15 0x000000000040b2a9 in writeoptions () at /usr/src/debug/icebreaker-2.1.3-1.fc34.x86_64/options.c:183
#16 0x000000000040b60b in cleanup () at /usr/src/debug/icebreaker-2.1.3-1.fc34.x86_64/icebreaker.c:154
#17 0x00007ffff7d9caf7 in __run_exit_handlers (status=0, listp=0x7ffff7f20598 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true)
    at exit.c:108
#18 0x00007ffff7d9cca0 in __GI_exit (status=<optimized out>) at exit.c:139
#19 0x00007ffff7d84b7c in __libc_start_main (main=0x402a50 <main>, argc=1, argv=0x7fffffffdca8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, 
    stack_end=0x7fffffffdc98) at ../csu/libc-start.c:366
#20 0x0000000000405c7e in _start ()

Before I got the backtrace, I thought it might have something to do with swapping SDL implementations, but the backtrace seems to indicate that it's basically IceBreaker code.

Note that IceBreaker does not run on Fedora KDE Wayland unless you swap to sdl12-compat, which you can do with my COPR.

This is happening with icebreaker-2.1.3-1.fc34. I haven't had a chance to test if icebreaker-2.2.0 would fix it.

@Conan-Kudo
Copy link
Contributor Author

cc: @icculus

@mattdm
Copy link
Owner

mattdm commented Jun 1, 2021

Hmmm. I am not surprised if the problem is in the icebreaker code. It is old and bad (and not necessarily in that order). 😄

This problem is only with the compat package? I'll try your COPR when I get a chance and see what I can find.

2.2.0 is just changes to MS Windows build options so shouldn't be relevant.

@Conan-Kudo
Copy link
Contributor Author

Well, IceBreaker doesn't run at all with SDL on Plasma Wayland. It chokes saying it can't find a display driver to load.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants