Closed Pulseczar1 closed 1 year ago
this has been fixed recently, please try the nightly build and see if the issue has been resolved for you: https://builds.quakeworld.nu/ezquake/snapshots/latest/x64/
Oh, I see: https://github.com/QW-Group/ezquake-source/pull/723 I searched through Issues before posting this, but didn't think to search through Closed Issues, Pull Requests, or Commits. I compiled the latest commit in Master: dbe6b521046605c2c109220d3df8101d8adde10f I got this result on the first run:
[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.
ezquake-linux-x86_64-new-dev-version: ../../src/xcb_io.c:260: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed.
Received signal 6, exiting...
DOUBLE SIGNAL FAULT: Received signal 11, exiting...
However, after running it a second time, it ran properly. I have a similar issue with another version of ezQuake I've used a good bit: 3.6-dev-alpha10-dev, Linux x86_64. It will crash and give that message, or very similar, about 1 in 4 or 1 in 5 times, at startup.
Once I tried connecting to the same server, as before, I was able to connect properly and it seems to be working fine. This issue seems to have been resolved, like you said. I see that I have the option to close this Issue. I'll let one of you on the team make that determination.
i've seen that before on newer versions of mesa, when mesa_glthread isn't disabled (you want to do that anyway as it's faster for us), though i'm pretty sure it was fixed somewhere in 22.x
Closing, as this is fixed in PR #723
ezQuake version: 3.6.1 06270807a03fec68bb5adb6f5a72a4d352a787eb
OS/device including version: Ubuntu 20.04.5 LTS
Describe the bug The problem that was originally noticed is that this version of ezQuake immediately freezes when joining some Team Fortress servers.
To Reproduce Steps to reproduce the behavior:
Additional context ezQuake, version 3.6-dev-alpha10-dev (Linux, x86_64), connecting to the same server connects and plays fine. I'm going to write about my own investigation of the problem here.
Here's the call stack while in the lockup (infinite loop):
You can see that it crashes when precaching the sound file,
environ/rumble.wav
.While watching ezQuake run with the debugger, I found that, in
S_FindCuePointSampleLength()
, it looks foradtl
in the file. It finds it, and therefore, it callsS_ParseCueMark()
. Here's that function:S_ParseCueMark()
searches right afteradtl
for the text,ltxt
. It findsltxt
. So it searches 16 bytes down fromltxt
formark
. However, instead, it findsrgn
. Thewhile
loop inS_ParseCueMark()
is the loop it gets hung in. It soon reads asize
of 0, while it's searching forltxt
, and you can see how that would keep it in the loop forever.I'm not sure what the problem is. Since this sound file likely hasn't ever changed and works with previous versions of ezQuake, I think it's probably a problem with the commit that added this code, where the infinite loop occurs: 95f4f98203be115994ef82fe12c8eb1cd6a31a5e . My guess is that the code doesn't properly handle all possible RIFF Wave format configurations, like files where
rgn
exists in place ofmark
. I stopped investigating, for now, at this point. My next step would be to look up the RIFF Wave format specification and see whether this code handles all possible configurations of a RIFF Wave file.Here is what the end of
rumble.wav
looks like:I've also attached
rumble.wav
. GitHub wouldn't accept awav
file. So, I zipped it. --> rumble.zip