Menu

#2016 Replicable CTD in SI:SS - City of Order just before Deadeye 'cutscene'

Regression
closed-fixed
None
5
2017-08-14
2017-04-16
Will C
No

Have done a search but can't find this bug mentioned.

I'm having a recurring crash in Serpent Isle (w/Silver Seed). In the City of Order, my game crashes to desktop every time I enter the room just before you meet Deadeye, after aswering the guard automaton's question correctly. I've had a couple of random crashes but this is the first replicable and recurring show-stopper.

I've tried going back to earlier saves, changing graphics options and disabling sound with no effect. I'm running Exult 1.5 plus the latest version of Serpent Isle Fixes.

Thanks for your help!

1 Attachments

Related

Bugs: #2019

Discussion

  • Knight Captain

    Knight Captain - 2017-04-16

    Did you upgrade your version of Exult or SI Fixes while continuing the same saved game run?

    I have seen this happen when that Metal_Man automaton opens the gate, then tries to turn on the Serpent Lamppost to the west. What does he do immediately before the crash?

    A workaround would be:
    Answer his question and let him press the button.
    Then open a inventory window.
    Click on him once.
    Press F2.
    Use the cheat menu to edit his current activity back to Patrol.

     
  • Knight Captain

    Knight Captain - 2017-04-16

    I was not able to recreate this with a new game. The flag to allow answering his question is 594.

     
  • Will C

    Will C - 2017-04-16

    Thanks for the quick response. To answer your questions:

    • No, haven't upgraded/changed anything since starting this playthrough.
    • Immediately before the crash, he moves north and tries to fiddle with the wall light, then moves south back to the starting position in front of the door, then it CTDs.
    • Thanks for your workaround, setting his activity to patrol still crashed. I got around it by setting his activity to 'wait' and was then able to walk past without a crash to meet deadeye.
     
  • Knight Captain

    Knight Captain - 2017-04-16

    What time in the game in your crash? HH:MM?

    The problem here seems to be the Street_maintenance_schedule in schedule.cc at line 529 where it does not check for the non-double-click serpent lamp posts. Path eggs 1 and 4 are set to Quality 14, which tries street maintenance at line 1255.

    I was able to recreate this by:
    Setting the time to 1AM.
    Removing the sliding door to the west.
    As soon as the NPC on PATROL hit one of those Quality 14 eggs, it crashed.

    Last entry in stdout.txt is:
    automaton walking for street maintenance

    Last two entries in stderr.txt are both:
    Illegal egg itype: 0

     
  • Dominik Reichardt

    Attached is a savegame of the unmodded game. Door is already open, you just have to wait a moment before the street maintenance kicks in and the game crashes.
    lddb backtrace:

    automaton walking for street maintenance
    Process 90989 stopped
    * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x31)
        frame #0: 0x00000001002144c0 exult`Usecode_script::~Usecode_script(this=0x0000000113b94230) at ucsched.cc:98
       95       delete code;
       96       count--;
       97       if (next)
    -> 98           next->prev = prev;
       99       if (prev)
       100          prev->next = next;
       101      else
    (lldb) bt
    * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x31)
      * frame #0: 0x00000001002144c0 exult`Usecode_script::~Usecode_script(this=0x0000000113b94230) at ucsched.cc:98
        frame #1: 0x0000000100214525 exult`Usecode_script::~Usecode_script(this=0x0000000113b94230) at ucsched.cc:94
        frame #2: 0x0000000100214549 exult`Usecode_script::~Usecode_script(this=0x0000000113b94230) at ucsched.cc:94
        frame #3: 0x00000001000c0ef7 exult`Patrol_schedule::now_what(this=0x0000000113b23170) at schedule.cc:1259
        frame #4: 0x000000010001fc04 exult`Npc_actor::handle_event(this=0x0000000113b22b70, curtime=41409, udata=4311581328) at actors.cc:5021
        frame #5: 0x000000010001fdb7 exult`non-virtual thunk to Npc_actor::handle_event(this=0x0000000113b22b70, curtime=41409, udata=4311581328) at actors.cc:0
        frame #6: 0x00000001000e7115 exult`Time_queue::activate0(this=0x0000000100fd8780, curtime=41409) at tqueue.cc:198
        frame #7: 0x000000010005d0fc exult`Time_queue::activate(this=0x0000000100fd8780, curtime=41409) at tqueue.h:110
        frame #8: 0x0000000100062878 exult`Handle_events() at exult.cc:1339
        frame #9: 0x0000000100061a9c exult`Play() at exult.cc:1130
        frame #10: 0x000000010005c189 exult`exult_main(runpath="./exult") at exult.cc:781
        frame #11: 0x000000010005a27d exult`main(argc=1, argv=0x00007fff5fbff760) at exult.cc:432
        frame #12: 0x0000000100001424 exult`start + 52
    
     
  • Dominik Reichardt

    this is a regression from between 24.11.2016 and 27.11.2016... Need to do a regression test later.

     
  • Dominik Reichardt

    • assigned_to: Marzo Sette Torres Junior
    • Group: Crash --> Regression
     
  • Dominik Reichardt

    observing this automaton (NPC #202) in the original, it seems to me as if he should never actually start the street maintenance

     
  • Dominik Reichardt

    Temporarily reverted this.
    Bug [#2019] may play a part in this as Street Maintenance should not trigger for the serpent lampposts.

     

    Related

    Bugs: #2019

  • Marzo Sette Torres Junior

    • status: open --> closed-fixed
     
  • Marzo Sette Torres Junior

    I found a proper fix for this which also handles the memory leak. When I push a lot of stuff, the fix will also be pushed in.