#6658 closed defect (invalid)

Game crashes for changeset 27115 on sandbox_ptolemies map

Reported by: Langbart Owned by:
Priority: Should Have Milestone:
Component: Core engine Keywords:
Cc: Patch:

Description

to reproduce

  • start the scenarios/sandbox_ptolemies.xml map
  • game crashes before you can spawn into the map, you only see the loading page

logs

Assertion failed: "!EntityExists(ent)"
Location: ComponentManager.cpp:790 (AllocateEntityHandle)

Call stack:

(error while dumping stack: Function not supported)
errno = 0 (No error reported here)
OS error = ?


(C)ontinue, (S)uppress, (B)reak, Launch (D)ebugger, or (E)xit?

lldb

❯ lldb /Users/paria/Developer/0ad/binaries/system/pyrogenesis
(lldb) target create "/Users/paria/Developer/0ad/binaries/system/pyrogenesis"
Current executable set to '/Users/paria/Developer/0ad/binaries/system/pyrogenesis' (x86_64).
(lldb) run
Process 96379 launched: '/Users/paria/Developer/0ad/binaries/system/pyrogenesis' (x86_64)
TIMER| InitVfs: 7.205 ms
FILES| Main log written to '/Users/paria/Library/Application Support/0ad/logs/mainlog.html'
FILES| Interesting log written to '/Users/paria/Library/Application Support/0ad/logs/interestinglog.html'
TIMER| CONFIG_Init: 7.981 ms
2022-11-23 02:43:33.706275+0100 pyrogenesis[96379:781639] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x107e0cf60> F8BB1C28-BAE8-11D6-9C31-00039315CD46
2022-11-23 02:43:33.759227+0100 pyrogenesis[96379:781639]  HALC_ShellDriverPlugIn::Open: Can't get a pointer to the Open routine
2022-11-23 02:43:33.759733+0100 pyrogenesis[96379:781639]  HALC_ShellDriverPlugIn::Open: Can't get a pointer to the Open routine
Sound: AlcInit success, using Built-in Output
FILES| UserReport written to '/Users/paria/Library/Application Support/0ad/logs/userreport_hwdetect.txt'
TIMER| RunHardwareDetection: 5.527 ms
FILES| Hardware details written to '/Users/paria/Library/Application Support/0ad/logs/system_info.txt'
TIMER| write_sys_info: 16.745 ms
TIMER| InitRenderer: 8.966 ms
TIMER| ps_console: 11.179 ms
TIMER| ps_lang_hotkeys: 5.032 ms
TIMER| common/modern/setup.xml: 1.849 ms
TIMER| common/modern/styles.xml: 477 us
TIMER| common/modern/sprites.xml: 1.595 ms
TIMER| common/global.xml: 899 us
TIMER| common/setup.xml: 553 us
TIMER| common/sprites.xml: 725 us
TIMER| common/styles.xml: 458 us
TIMER| pregame/backgrounds/: 2.361 ms
TIMER| pregame/sprites.xml: 259 us
TIMER| pregame/styles.xml: 155 us
TIMER| pregame/mainmenu.xml: 60.065 ms
2022-11-23 02:43:37.372842+0100 pyrogenesis[96379:781766] flock failed to lock maps file: errno = 35
2022-11-23 02:43:37.373520+0100 pyrogenesis[96379:781766] flock failed to lock maps file: errno = 35
TIMER| common/modern/setup.xml: 201 us
TIMER| common/modern/styles.xml: 191 us
TIMER| common/modern/sprites.xml: 1.485 ms
TIMER| common/setup.xml: 350 us
TIMER| common/sprites.xml: 481 us
TIMER| common/styles.xml: 131 us
TIMER| gamesetup/setup.xml: 637 us
TIMER| gamesetup/styles.xml: 360 us
TIMER| gamesetup/gamesetup.xml: 164.871 ms
TIMER| common/global.xml: 552 us
FILES| JSON data written to '/Users/paria/Library/Application Support/0ad/config/matchsettings.json'
FILES| Replay written to '/Users/paria/Library/Application Support/0ad/replays/0.0.27/2022-11-23_0018'
TIMER| common/modern/setup.xml: 202 us
TIMER| common/modern/styles.xml: 271 us
TIMER| common/modern/sprites.xml: 1.303 ms
TIMER| common/global.xml: 317 us
TIMER| common/setup.xml: 268 us
TIMER| common/sprites.xml: 467 us
TIMER| common/styles.xml: 128 us
TIMER| loading/styles.xml: 1.784 ms
TIMER| loading/sprites.xml: 481 us
TIMER| loading/loading.xml: 20.47 ms
Assertion failed: "!EntityExists(ent)"
Location: ComponentManager.cpp:790 (AllocateEntityHandle)

Call stack:

(error while dumping stack: Function not supported)
errno = 0 (No error reported here)
OS error = ?


(C)ontinue, (S)uppress, (B)reak, Launch (D)ebugger, or (E)xit?
e
Redirecting call to abort() to mozalloc_abort

pyrogenesis was compiled with optimization - stepping may behave oddly; variables may not be available.
Process 96379 stopped
* thread #1, name = 'main', queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x00000001010ab700 pyrogenesis`::mozalloc_abort(msg=<unavailable>) at mozalloc_abort.cpp:33:3 [opt]
   30   #ifdef MOZ_WIDGET_ANDROID
   31     abortThroughJava(msg);
   32   #endif
-> 33     MOZ_CRASH();
   34   }
   35   
   36   #ifdef MOZ_WIDGET_ANDROID
Target 0: (pyrogenesis) stopped.
(lldb) bt
* thread #1, name = 'main', queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
  * frame #0: 0x00000001010ab700 pyrogenesis`::mozalloc_abort(msg=<unavailable>) at mozalloc_abort.cpp:33:3 [opt]
    frame #1: 0x0000000101bc445d pyrogenesis`::abort() at mozalloc_abort.cpp:82:3 [opt]
    frame #2: 0x0000000100501f96 pyrogenesis`sys_display_error(text=<unavailable>, flags=6) at unix.cpp:268:4 [opt]
    frame #3: 0x00000001004e46f3 pyrogenesis`debug_DisplayError(wchar_t const*, unsigned long, void*, wchar_t const*, wchar_t const*, int, char const*, long volatile*) [inlined] CallDisplayError(text=L"Assertion failed: \"!EntityExists(ent)\"\r\nLocation: ComponentManager.cpp:790 (AllocateEntityHandle)\r\n\r\nCall stack:\r\n\r\n(error while dumping stack: Function not supported)\r\nerrno = 0 (No error reported here)\r\nOS error = ?\r\n", flags=6) at debug.cpp:374:8 [opt]
    frame #4: 0x00000001004e46d6 pyrogenesis`debug_DisplayError(description=L"Assertion failed: \"!EntityExists(ent)\"", flags=6, context=0x00007ffeefbfd940, lastFuncToSkip=<no summary available>, pathname=<no summary available>, line=<no summary available>, func=<no value available>, suppress=<no summary available>) at debug.cpp:460 [opt]
    frame #5: 0x00000001004e4f5e pyrogenesis`debug_OnAssertionFailure(expr=<no summary available>, suppress=<no summary available>, file=<no summary available>, line=<no summary available>, func=<no value available>) at debug.cpp:547:9 [opt]
    frame #6: 0x0000000100193e86 pyrogenesis`CComponentManager::AllocateEntityHandle(this=<no summary available>, ent=<no summary available>) at ComponentManager.cpp:790:2 [opt]
    frame #7: 0x0000000100190ded pyrogenesis`CComponentManager::AddEntity(this=<no summary available>, templateName=L"", ent=<no summary available>) at ComponentManager.cpp:840:25 [opt]
    frame #8: 0x00000001002eaae1 pyrogenesis`CXMLReader::ReadEntities(this=<no summary available>, parent=(m_Pointer = <no value available>), end_time=<no summary available>) at MapReader.cpp:1054:25 [opt]
    frame #9: 0x00000001002ecb03 pyrogenesis`CXMLReader::ProgressiveReadEntities(this=<no summary available>) at MapReader.cpp:1189:11 [opt]
    frame #10: 0x00000001002de6e1 pyrogenesis`CMapReader::ReadXMLEntities(this=<no summary available>) at MapReader.cpp:1251:24 [opt]
    frame #11: 0x00000001002311f9 pyrogenesis`LDR_ProgressiveLoad(time_budget=<no summary available>, description=<no summary available>, max_chars=<no summary available>, progress_percent=<no summary available>) at Loader.cpp:217:16 [opt]
    frame #12: 0x0000000100004734 pyrogenesis`RunGameOrAtlas(PS::span<char const* const>) at main.cpp:304:16 [opt]
    frame #13: 0x0000000100004670 pyrogenesis`RunGameOrAtlas(PS::span<char const* const>) [inlined] Frame() at main.cpp:398 [opt]
    frame #14: 0x0000000100004450 pyrogenesis`RunGameOrAtlas(argv=const PS::span<const char *const> @ scalar) at main.cpp:687 [opt]
    frame #15: 0x0000000100002a37 pyrogenesis`main(argc=<no summary available>, argv=<no summary available>) at main.cpp:740:2 [opt]
    frame #16: 0x00007fff6f3e9cc9 libdyld.dylib`start + 1

bisect

crash came with [27115]

commit d3376ae06fa996b8ab7c98eaa53b759c61db0c89
Author: wowgetoffyourcellphone <wowgetoffyourcellphone@3db68df2-c116-0410-a063-a993310a9797>
Date:   05/Oct/22
 
    [Alpha 27][Art][Portraits][Templates] Moving portrait textures to their own specific folders
    
    This commit is for the templates
    
    git-svn-id: https://svn.wildfiregames.com/public/ps/trunk@27115 3db68df2-c116-0410-a063-a993310a9797
 
 
 358 files changed, 396 insertions(+), 357 deletions(-)

Change History (3)

comment:1 by Langbart, 17 months ago

It does not like the addition of simulation/templates/units/ptol/siege_juggernaut.xml

comment:2 by Langbart, 17 months ago

Either deleting simulation/templates/units/ptol/siege_juggernaut.xml or this part below stops the crash from happening.

  • binaries/data/mods/public/simulation/templates/units/ptol/champion_juggernaut.xml

    a b  
    3333  <TrainingRestrictions>
    3434    <Category>Juggernaut</Category>
    3535  </TrainingRestrictions>
     36  <TurretHolder>
     37    <TurretPoints>
     38      <Siege>
     39        <Template>units/ptol/siege_juggernaut</Template>
     40        <Ejectable>false</Ejectable>
     41        <X>0</X>
     42        <Y>4.0</Y>
     43        <Z>-15.5</Z>
     44        <Angle>0</Angle>
     45      </Siege>
     46    </TurretPoints>
     47  </TurretHolder>
    3648  <VisualActor>
    3749    <Actor>structures/romans/quinquereme.xml</Actor>
    3850  </VisualActor>

Update

all maps with the units/ptol/champion_juggernaut template simply need to be updated:

# 0ad/binaries/data/mods/public/maps
❯ rg --files-with-matches units/ptol/champion_juggernaut
scenarios/sandbox_ptolemies.xml
scenarios/sandbox_ptolemies_02.xml

example

  • binaries/data/mods/public/maps/scenarios/sandbox_ptolemies_02.xml

    a b  
    1350813508        <Entity uid="5493">
    1350913509            <Template>units/ptol/champion_juggernaut</Template>
    1351013510            <Player>1</Player>
     13511            <Turrets>
     13512                <Turret turret="Siege" uid="5864"/>
     13513            </Turrets>
    1351113514            <Position x="631.37598" z="721.02466"/>
    1351213515            <Orientation y="0.9169"/>
    1351313516            <Actor seed="33800"/>
    1351413517        </Entity>
     13518        <Entity uid="5864">
     13519            <Template>units/ptol/siege_juggernaut</Template>
     13520            <Player>1</Player>
     13521            <Position x="498.7744" z="478.97657"/>
     13522            <Orientation y="0"/>
     13523        </Entity>
    1351513524        <Entity uid="5494">
    1351613525            <Template>units/ptol/hero_cleopatra_vii</Template>
    1351713526            <Player>1</Player>
Last edited 17 months ago by Langbart (previous) (diff)

comment:3 by Langbart, 17 months ago

Milestone: Alpha 27
Resolution: invalid
Status: newclosed

unintentional code commit caused the problem, it was reverted with [27246].

setting the ticket to invalid

Note: See TracTickets for help on using tickets.