Page MenuHomeFeedback Tracker

CTD with ACE Arsenal Uniforms tab and large modlist
New, NormalPublic

Description

using the attached modlist, when one clicks on the uniforms tab for ACE arsenal, it freezes for about 30 minutes to an hour and then CTD without anything other than a debug crash{F4337088}

Details

Severity
Crash
Resolution
Open
Reproducibility
Always
Operating System
Windows 10 x64
Operating System Version
Pro version 22H2
Category
Game Crash
Steps To Reproduce

use attached modlist
open editor
place any unit
right click and ACE arsenal
click uniforms tab
CTD

Additional Information

already contacted ACE dev team with ticket:
https://github.com/acemod/ACE3/issues/10043

Event Timeline

debug created this task.Aug 26 2024, 4:44 PM
dedmen added a subscriber: dedmen.EditedSep 5 2024, 11:49 AM

The freeze dump, is currently inside "modParams" script command. It is looking if a mod's picture exists, and trying to find what PBO it is in.
A freeze dump is only a snapshot of a instant in time. That's why we always write two freeze dumps, so we can see atleast two points and judge where the freeze might be at.

I can't see how it could be freezing inside of modParams, so it must be a infinite/near-infinite loop in the script that called it.

The script was called from a UI button "OnClick" eventhandler.
I cannot see which script file it was, but the "modParams" command was at line number 374.

Also note that modParams command is quite slow. Caching it with a hashmap would be good.

johnb43 added a subscriber: johnb43.Sep 9 2024, 7:10 PM

I cannot see which script file it was, but the "modParams" command was at line number 374.

That would be ace_arsenal_fnc_addListBoxItem (https://github.com/acemod/ACE3/blob/master/addons/arsenal/functions/fnc_addListBoxItem.sqf).
Interestingly, it's one of the places where we do cache the result of modParams.

so it must be a infinite/near-infinite loop in the script that called it

ace_arsenal_fnc_addListBoxItem is used to add items in the left panel (i.e. where e.g. weapons and uniforms are shown), so no loops involved, although that function will be called for every item displayed (so I assume several thousand times in this case).

debug added a comment.EditedSep 27 2024, 2:07 AM


this time with the actual crash dump upon CTD and tested with dev version of arma and -debug option

debug added a comment.Nov 9 2024, 1:30 AM

i was able to crash the game with the modparams command by inserting a really log string as the modclass parameter...i wonder if the modlist i was using had an obfuscated modclass that could have caused a buffer overflow or something in an unusual way?

debug added a comment.Fri, Dec 13, 7:59 PM

i tried recreating the problem by just fuzzing the modparams using a snippet of the code from the ace_common_fnc_getAddon function to fire off all the cfgweapons, cfgvehicles, cfgmagazines, and such and could not cause the same to crash with those modparams but i did notice that the uinamespace getvariable "ace_arsenal_addlistboxitemcache" is a hashmap that is using the getordefaultcall command to add items and i was wondering if there is a memory limit?