fa
fa copied to clipboard
Uveso's long-term bugtracing
I am using this to track/link errors over longer time periods
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at address 0x0213d267 #1803 0x023fde58 #1804 0x0047a820 #348 0x00598eec #1900 0x005f39f7 #1574 (Fixed.) 0x0067aa5f #318 0x006cbc63 #1375 (xrb0104) 0x008b94f0 #1559 0x00938ac8 #1117 0x0095854f #1445 0x009d7b75 #1467
GitHub gamebuild stability tests: 11.05.2017 (3676) part I #1969 result=perfect 12.05.2017 FAForever/deploy/faf (3677) #1971 result=stable 15.05.2017 FAForever/deploy/beta (3678) #1991 result=DEADLOOP 18.05.2017 master (3682) #2001 result=stable 29.05.2017 (3676) part II #2044 result=stable 05.06.2017 (3684) + PR AdvancedLeadTarget #2060 result=stable 06.06.2017 deploy/fafdevelop (3684) #2061 result=stable
Unknown/rare errors without error messages:
ERROR1 - count:4 last:06.Jun.2017 Freeze after transition screen while zooming to CDR. (Transition screen is half on the way to fade out. ~50% alpha)
ERROR2 - count:3 last:13.May.2018 Crash to desktop while initiating AI Archetype Last logline: info: *AI DEBUG: ARMY \0004\000: Initiating Archetype using SorianMainTurtle Last logline: info: *AI DEBUG: ARMY \0001\000: Initiating Archetype using UvesoMainAdaptive (Transition screen is half on the way to fade out. ~50% alpha)
ERROR3 - count:2 last:19.May.2018 Game Frozen after ACU kill. Last logline: warning: ACU kill detected. Rating for ranked games is now enforced.
ERROR4 - count:1 last:05.Jun.2017 Game frozen in midgame, sound and sim still running, but UI/gfx is frozen
Last Update 30.Dec.2019 (no new errors since 06 / 2017)
Another one to add to the list:
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at address 0x0050dfd8 attempted to read memory at 0x0000005c
Program : C:\ProgramData\FAForever\bin\ForgedAlliance.exe Cmd line arguments : /init init.lua /nobugreport /log C:\ProgramData\FAForever\logs\game_15187368.log /gpgnet 127.0.0.1:34600 /mean 1333.36 /deviation 222.314 /savereplay gpgnet://127.0.0.1:52527/15187368/Utopian.SCFAreplay /country HU /numgames 28
Callstack: Unknown symbol (address 0x0050dfd8) Unknown symbol (address 0x0068af40) Unknown symbol (address 0x1d1ed9fb) Unknown symbol (address 0x1d1ed9fb)
See also: https://forum.faforever.com/topic/2332/questions-about-performance/18
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at address 0x0050dfd8
Attempt to read the internal parameter "BlueprintOrdinal" of the blueprint when destroying the unit.
No more details can be obtained.
Here's more for the list: https://github.com/FAForever/fa/issues/3235 Does anyone want to fix this?
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at address 0x0050dfd8
Attempt to read the internal parameter "BlueprintOrdinal" of the blueprint when destroying the unit. No more details can be obtained.
Where did you obtain this information from?
Here's more for the list: #3235 Does anyone want to fix this?
I don't know how to approach these type of errors - if you have suggestions
Where did you obtain this information from? I used a debugger. 0x0050dfd8 Address of the instruction where the AV occurred. In normal execution, the register points to the RUnitBlueprint class.(ClassNamePtr -> [[[Self]-4]+C]+8) I looked at the contents at the address and compared with Shift-F6. 0x0068af40 Address of the instruction in the call chain if Ctrl-k. I document almost everything I know about the engine here: https://github.com/FAForever/FA-Binary-Patches/blob/master/sections/include/moho.h https://github.com/FAForever/FA-Binary-Patches/blob/master/sections/include/global.h
@KionX That is a good find - great work. Here's a few more for this issue:
Post: https://forum.faforever.com/topic/2488/constant-game-crashes-need-help-figuring-it-out/17 Replay: 15229180 Branch: FAF Log: 15229180.txt Similar to: (new)
Error provided by game:
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at address 0x00438168
attempted to read memory at 0x00000001
Program : C:\ProgramData\FAForever\bin\ForgedAlliance.exe
Cmd line arguments : /init init.lua /nobugreport /log C:\ProgramData\FAForever\logs\game_15229180.log /gpgnet 127.0.0.1:20364 /mean 971.12964 /deviation 152.34543 /savereplay gpgnet://127.0.0.1:49336/15229180/Xarlus.SCFAreplay /country DE /clan NUT /numgames 59
Callstack:
Unknown symbol (address 0x00438168)
Unknown symbol (address 0x008026ac)
Unknown symbol (address 0x00801e43)
Error provided by client:
java.lang.RuntimeException: Forged Alliance Crashed with exit code 1. See C:\ProgramData\FAForever\logs\game_15229180.log for more information
at com.faforever.client.game.GameService.lambda$spawnTerminationListener$43(GameService.java:701)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:832)
Post: https://forum.faforever.com/topic/2488/constant-game-crashes-need-help-figuring-it-out/16 Replay: 15228945 Branch: FAF Log: game_15228945.log Similar to: (new)
Error provided by game:
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at address 0x0042323b
attempted to write memory at 0x3c003c04
Program : C:\ProgramData\FAForever\bin\ForgedAlliance.exe
Cmd line arguments : /init init.lua /nobugreport /log C:\ProgramData\FAForever\logs\game_15228945.log /gpgnet 127.0.0.1:50240 /mean 953.129 /deviation 153.206 /savereplay gpgnet://127.0.0.1:53083/15228945/Xarlus.SCFAreplay /country DE /clan NUT /numgames 58
Callstack:
Unknown symbol (address 0x0042323b)
Unknown symbol (address 0x00801e43)
Error provided by client:
java.lang.RuntimeException: Forged Alliance Crashed with exit code 1. See C:\ProgramData\FAForever\logs\game_15228945.log for more information
at com.faforever.client.game.GameService.lambda$spawnTerminationListener$43(GameService.java:701)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:832)
Post: https://forum.faforever.com/topic/2488/constant-game-crashes-need-help-figuring-it-out/13 Replay: 15226123 Branch: FAF Log: game_15226123.log Similar to: https://github.com/FAForever/fa/issues/3162
Error provided by game:
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at address 0x00423190
attempted to read memory at 0x3e053ea4
Program : C:\ProgramData\FAForever\bin\ForgedAlliance.exe
Cmd line arguments : /init init.lua /nobugreport /log C:\ProgramData\FAForever\logs\game_15226123.log /gpgnet 127.0.0.1:28745 /mean 953.129 /deviation 153.206 /savereplay gpgnet://127.0.0.1:58564/15226123/Xarlus.SCFAreplay /country DE /clan NUT /numgames 58
Callstack:
Unknown symbol (address 0x00423190)
Unknown symbol (address 0x00801e43)
Error provided by client:
java.lang.RuntimeException: Forged Alliance Crashed with exit code -1073740771. See C:\ProgramData\FAForever\logs\game_15226123.log for more information
at com.faforever.client.game.GameService.lambda$spawnTerminationListener$43(GameService.java:701)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:832)
I haven't studied them deeply, but all three are related to textures.
Textures in what form? And could you record how you approach this? I'd like to learn about it :)
It looks like the textures were not created. Possible lack of video memory. The same method as described above. I can make a utility for this. If it will be useful.
If you could - that would be great.
Another exception when playing co-op. The client doesn't always generate a proper dump file, hence - there is none for this particular exception.
Dump file is undesirable, they are uninformative and inconvenient. It seems that this is not a faf error. The replay did not show an error, there is no callstack addresses in the code. Perhaps it was a transition on a corrupted pointer.
How do you make that conclusion?
And about the dump files - yes, they are inconvenient. But it is better to have one, then not have it at all.
The replay did not show an error, there is no callstack addresses in the code. Perhaps it was a transition on a corrupted pointer. A very strange error.
He has it quite often - I'll ask him to keep them coming.
If someone plays on Linux, let them indicate this.
@KionX @Garanas While looking at the bug concerning OC and killing mobile shield units I stumbled upon the hard crash above at address 0x0050dfd8.
If you do targetEntity: GetBlueprint() when targetEntity is a "shield bubble" and not a unit the game crashes hard or sometimes just hanging the sim
OverchargeProjectile = Class() {
OnImpact = function(self, targetType, targetEntity)
-- This will crash the game if targetEntity is the shield bubble and not the actual unit that has the shield
targetEntity:GetBlueprint()
end
...
}
Would be good if this is fixed so the game doesn't crash at least. Maybe the engine function GetBlueprint() should just return nil in this case.
post: https://forum.faforever.com/topic/2569/patch-3721-hotfix-3722-hotfix-3723/33 replay: 15362291 branch: FAF similar to: https://github.com/FAForever/fa/issues/2045#issuecomment-906426363
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at address 0x0050dfd8 attempted to read memory at 0x0000005c
Program : C:\ProgramData\FAForever\bin\ForgedAlliance.exe Cmd line arguments : /init init.lua /nobugreport /log C:\ProgramData\FAForever\logs\game_15362291.log /gpgnet 127.0.0.1:18519 /mean 1157.78 /deviation 110.825 /savereplay gpgnet://127.0.0.1:61428/15362291/Gobblerpl.SCFAreplay /country PL /numgames 134
Callstack: Unknown symbol (address 0x0050dfd8) Unknown symbol (address 0x0068af40) Unknown symbol (address 0x3a20736f)
KionX already determined the cause of this - do we have an idea where / when this happens?
post: https://forum.faforever.com/topic/2569/patch-3721-hotfix-3722-hotfix-3723/35 replay: 15366794 branch: FAF similar to: https://github.com/FAForever/fa/issues/2045#issuecomment-906426363
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at address 0x0050dfd8 attempted to read memory at 0x0000005c
Program : C:\ProgramData\FAForever\bin\ForgedAlliance.exe Cmd line arguments : /init init.lua /nobugreport /log C:\ProgramData\FAForever\logs\game_15366794.log /gpgnet 127.0.0.1:2777 /mean 1500.0 /deviation 500.0 /savereplay gpgnet://127.0.0.1:63574/15366794/RomanGiant06.SCFAreplay /country US /numgames 0
Callstack: Unknown symbol (address 0x0050dfd8) Unknown symbol (address 0x0068af40) Unknown symbol (address 0x1c31c5fb)
15362291 https://github.com/FAForever/fa/blob/deploy/fafdevelop/lua/defaultcollisionbeams.lua#L196
15366794 https://github.com/FAForever/fa/blob/deploy/fafdevelop/lua/defaultcollisionbeams.lua#L586
Used this: https://github.com/FAForever/FA-Binary-Patches/blob/master/sections/include/global.h#L6
I'll try and see if I can understand how to use that properly myself.
I've looked at it for a bit and I do not understand how to get to the files in question. Could you record how you do it and share that with us through Zulip? Because I'd really like to understand how to analyze these hard-crashes.
It's not all simple there. Enough for a whole lecture. I have a better idea. I will make an automatic analyzer.
I'm up for a lecture too 😄
But I'll take the automatic analyzer - that on its own would help a lot too.
Persuaded. I'll try to make an auto analyzer first. Then I will write a step-by-step example of manual crash analysis.
You're a hero, can't wait to read up about it 😄
And another one:
post: send private to me replay: 15370416 branch: FAF similar to: https://github.com/FAForever/fa/issues/2045#issuecomment-924858053
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at address 0x0050dfd8
attempted to read memory at 0x0000005c
Program : C:\ProgramData\FAForever\bin\ForgedAlliance.exe
Cmd line arguments : /init init.lua /nobugreport /log C:\ProgramData\FAForever\logs\game_15370416.log /gpgnet 127.0.0.1:59226 /mean 979.938 /deviation 267.865 /savereplay gpgnet://127.0.0.1:54755/15370416/MAPster.SCFAreplay /country DE /numgames 4
Callstack:
Unknown symbol (address 0x0050dfd8)
Unknown symbol (address 0x0068af40)
Unknown symbol (address 0x11a67dfb)
post: https://forum.faforever.com/topic/2586/game-crashing/3 replay: 15366391 branch: FAF similar to: https://github.com/FAForever/fa/issues/2045#issuecomment-924858053
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at address 0x0050dfd8
attempted to read memory at 0x0000005c
Program : C:\ProgramData\FAForever\bin\ForgedAlliance.exe
Cmd line arguments : /init init.lua /nobugreport /log C:\ProgramData\FAForever\logs\game_15366391.log /replay C:\ProgramData\FAForever\cache\temp.scfareplay /replayid 15366391
Callstack:
Unknown symbol (address 0x0050dfd8)
Unknown symbol (address 0x0068af40)
Unknown symbol (address 0x1925d9fb)
Unknown symbol (address 0x1925d9fb)
@KionX To fix this particular issue, can I assume that 0x0000005c is something like a null reference where this line refers to the fact that the C object of self has been destroyed? And that by adding an if statement checking for it, I can prevent these exceptions from happening?
Yes. 0x0000005c is something like a null reference. But I did not find out why it is null and whether it belongs to the unit that self points to. It says here that it can be nil: https://github.com/FAForever/fa/blob/deploy/fafdevelop/engine/Sim.lua#L260
Maybe it can be nil when it is specifically nil. I think if you specifically give it nil it may be fine, but now it may try to retrieve something and fail doing so.