Closed hackneyed-one closed 2 years ago
Sorry I forgot to report the ENDOOM crash and longtics command here on the tracker instead of Doomworld.
I think it's okay to only report bugs on the forum. Thanks for testing!
As far as this issue is concerned, I cannot reproduce it on Windows. I think we haven't changed I_ResetScreen
for a long time.
Thanks for the report! In Crispy, I have a safety net called post_rendering_hook
to avoid racing conditions like this one, i.e. a mismatch of screen dimensions during the I_FinishUpdate()
call. I don't think we can apply the exact same here, because the responsible variables are already changed in the menu itself.
But we already have the changeres
variable. Maybe we should check if it is true
at the beginning of I_FinishUpdate()
and reset it to false
and return early, instead of resetting it to false
immediately after I_InitGraphicsMode()
in I_ResetScreen()
.
And, BTW, I cannot reproduce this on Debian unstable, so it might be driver or generally rendering stack related.
I tried the changeres branch and it crashed first try. On the other hand the 8.1.0 release wouldn't crash even if I was mashing Enter like a quick time event! So I began narrowing down commits skipping back and forth until I found...
use basetic for realtics calculation to compensate pause woof-2d0e18f829cd563ef5e1bb90a3cc8320e3401334
The one before it and a couple others don't crash but it and a few after do.
EDIT: It's kind of cool. Out of 37 changes since 8.1.0 I managed to narrow it down in only 6 compiles. :D
EDIT2: Yep, I manually reverted the single line change from that commit in the current master and it's not crashing.
Strange, that commit appears completely unrelated.
Also, I hope you know about https://git-scm.com/docs/git-bisect ?
Does it make a difference if you initialize basetic = 0
in g_game.c
?
Also, I guess it crashes with a different backtrace now, does it?
That commit is wrong anyway since complevel boom resets basetic
in G_DoLoadLevel
. I think we should revert interpolation "fix".
My guess is that it crashes at the title screen already?
Strange, that commit appears completely unrelated.
Also, I hope you know about https://git-scm.com/docs/git-bisect ?
Unrelated maybe but I was able to make the previously working woof-9468d7614af0dbce464c5839022b7b5caa15cf7b from Dec 6th crash by applying that new line to the older source. That one line seems to make all the difference.
Thanks I didn't know about git-bisect.
EDIT: geez it's after midnight here. Goodnight!
PHONE EDIT: Sorry I didn't really understand your other post. How do I initialize something?
Son's room edit: My son is awake now and so am I still. Do I just change a line to basetic = 0? I thought initialize would be = 1 for on 0 for off?
PHONE EDIT: Sorry I didn't really understand your other post. How do I initialize something?
You would just replace int basetic;
with int basetic = 0;
in g_game.c
. But according to @rfomin this part of the code is flawed anyway.
What would be more interesting for me is a backtrace of the crash from the "changeres" branch.
I made a backtrace from the changeres branch and saved it in my notes but I didn't include it because I didn't see much difference. Maybe I was wrong?
This happened on the first res switch. From my notes.
P_SetupLevel: MAP07 (doom2.wad), Doom nodes Skill 3, Total 0:00:00 Demo Version 221 [Thread 0x7fff7bfff700 (LWP 20787) exited] [New Thread 0x7fff7bfff700 (LWP 20828)]
Thread 1 "woof" received signal SIGSEGV, Segmentation fault. __GI___libc_free (mem=0x8f8f0e0eececeeee) at malloc.c:3102 3102 malloc.c: No such file or directory. (gdb) bt
(gdb)
Here is another one from just now but it took 14 res switches to crash. Score 1 for intermittency.
Thread 1 "woof" received signal SIGSEGV, Segmentation fault.
unlink_chunk (p=p@entry=0x555557565160, av=0x7ffff7c8db80
EDIT: 24 res changes. it so small and cute! heh
Thread 1 "woof" received signal SIGSEGV, Segmentation fault. 0x00007fffc9f69fe2 in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so (gdb) bt
PHONE EDIT: Sorry I didn't really understand your other post. How do I initialize something?
You would just replace
int basetic;
withint basetic = 0;
ing_game.c
. But according to @rfomin this part of the code is flawed anyway.What would be more interesting for me is a backtrace of the crash from the "changeres" branch.
Just for completeness I tried this in the master branch. I changed Line 111 to read "int basetic = 0; // killough 9/29/98: for demo sync" is that right?
<!DOCTYPE html>
After confirming that the ENDOOM crash was resolved. I found I had another problem that same night but I've waited to report it until I knew more. I wanted to be thorough so I'm not wasting your time with a simple broken OS or something.
While playing a level for a minute or two, if I enter the menu and change resolution or sometimes widescreen mode Woof will crash and bomb out fairly regularly. Sometimes on the first try or after toggling it slowly a few times.
It crashes on my main Ubuntu-Mate 20.04.3 desktop but I could not replicate it in a VM with the same version OS. Thinking it might be a hardware/driver issue I swapped out my HDD to install 20.04.3 and then 21.10. I found the crash persists in both fresh OS installs on my real hardware.
Sorry I forgot to report the ENDOOM crash and longtics command here on the tracker instead of Doomworld. I've been so busy while also checking out Sprinkled-Doom and reporting issues (unrelated to my hardware!) in that forum topic I kind of forgot about the tracker. Thanks @rfomin ... So anyway I don't yet have a commit for when this issue may have started for me. I can try bisecting commits when I have more free time.
Here are some hardware info and backtrace
*-core description: Motherboard product: Z77N-WIFI vendor: Gigabyte Technology Co., Ltd. physical id: 0 version: x.x serial: To be filled by O.E.M. slot: To be filled by O.E.M.
*-cpu description: CPU product: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz vendor: Intel Corp. physical id: 43 bus info: cpu@0 version: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz slot: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz size: 3355MHz capacity: 3900MHz width: 64 bits clock: 100MHz
*-display description: VGA compatible controller product: Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X] vendor: Advanced Micro Devices, Inc. [AMD/ATI] physical id: 0 bus info: pci@0000:01:00.0 version: cf width: 64 bits clock: 33MHz capabilities: pm pciexpress msi vga_controller bus_master cap_list rom configuration: driver=amdgpu latency=0 resources: irq:29 memory:e0000000-efffffff memory:f0000000-f01fffff ioport:e000(size=256) memory:f7e00000-f7e3ffff memory:c0000-dffff
Backtrace Old Ubuntu-Mate 20.04.03
P_SetupLevel: MAP01 (doom2.wad), Doom nodes Skill 4, Total 0:00:00 Demo Version 221 [Thread 0x7fffb97fa700 (LWP 8020) exited] [New Thread 0x7fffb97fa700 (LWP 8081)] [Thread 0x7fffb97fa700 (LWP 8081) exited] [New Thread 0x7fffb97fa700 (LWP 8083)] [Thread 0x7fffb97fa700 (LWP 8083) exited] [New Thread 0x7fffb97fa700 (LWP 8084)]
Thread 1 "woof" received signal SIGSEGV, Segmentation fault. 0x00007ffff7d8fdcf in ?? () from /lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (gdb) bt
0 0x00007ffff7d8fdcf in () at /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
1 0x000055555559e269 in I_FinishUpdate () at /home/andrew/Build-Doom/woof-atexit/Source/i_video.c:931
2 0x0000555555581d9c in D_Display () at /home/andrew/Build-Doom/woof-atexit/Source/d_main.c:344
3 0x0000555555585f36 in D_DoomMain () at /home/andrew/Build-Doom/woof-atexit/Source/d_main.c:2379
4 0x0000555555598c3a in main (argc=6, argv=0x7fffffffdf08) at /home/andrew/Build-Doom/woof-atexit/Source/i_main.c:65
(gdb) q
Backtrace Fresh Ubuntu-Mate 20.04.03
P_SetupLevel: MAP01 (doom2.wad), Doom nodes Skill 3, Total 0:00:00 Demo Version 221 [Thread 0x7fff7bfff700 (LWP 14319) exited] [New Thread 0x7fff7bfff700 (LWP 14320)] --Type for more, q to quit, c to continue without paging--c
Thread 1 "woof" received signal SIGSEGV, Segmentation fault. 0x00007ffff7d9cdcf in ?? () from /lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (gdb) bt
0 0x00007ffff7d9cdcf in () at /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
1 0x000055555559e287 in I_FinishUpdate () at /home/andrew/Downloads/woof-master/Source/i_video.c:931
2 0x0000555555581d9c in D_Display () at /home/andrew/Downloads/woof-master/Source/d_main.c:344
3 0x0000555555585f36 in D_DoomMain () at /home/andrew/Downloads/woof-master/Source/d_main.c:2379
4 0x0000555555598c58 in main (argc=1, argv=0x7fffffffdf58) at /home/andrew/Downloads/woof-master/Source/i_main.c:65
(gdb) q
Backtrace Fresh Ubuntu-Mate 21.10 (this one is much longer?!)
P_SetupLevel: MAP07 (doom2.wad), Doom nodes Skill 3, Total 0:00:00 Demo Version 221 [Thread 0x7fff8f7fe640 (LWP 50961) exited] [New Thread 0x7fff8f7fe640 (LWP 50963)] malloc(): invalid size (unsorted)
Thread 1 "woof" received signal SIGABRT, Aborted. __pthread_kill_implementation (no_tid=0, signo=6, threadid=140737320830976) at pthread_kill.c:44 44 pthread_kill.c: No such file or directory. (gdb) bt
0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=140737320830976)
1 __pthread_kill_internal (signo=6, threadid=140737320830976)
2 __GI___pthread_kill (threadid=140737320830976, signo=signo@entry=6)
3 0x00007ffff7aec476 in __GI_raise (sig=sig@entry=6)
4 0x00007ffff7ad27b7 in __GI_abort () at abort.c:79
5 0x00007ffff7b335e6 in __libc_message
6 0x00007ffff7b4aadc in malloc_printerr
7 0x00007ffff7b4d97c in _int_malloc
8 0x00007ffff7b4fcfe in __libc_calloc
9 0x00007fffca420d39 in () at /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
10 0x00007fffca422a10 in () at /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
11 0x00007fffc9cef5d7 in () at /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
--Type for more, q to quit, c to continue without paging--c
12 0x00007fffc9e906c4 in () at /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
13 0x00007fffc9e92c8c in () at /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
14 0x00007fffc9e92d79 in () at /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
15 0x00007ffff7d87c31 in () at /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
16 0x00007ffff7d819c2 in () at /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
17 0x000055555559ebb4 in I_FinishUpdate () at /home/andrew/Downloads/woof-master/Source/i_video.c:933
18 0x0000555555581f8b in D_Display () at /home/andrew/Downloads/woof-master/Source/d_main.c:344
19 0x00005555555862d6 in D_DoomMain () at /home/andrew/Downloads/woof-master/Source/d_main.c:2379
20 0x0000555555599450 in main (argc=1, argv=0x7fffffffdf58) at /home/andrew/Downloads/woof-master/Source/i_main.c:65
(gdb) q
END