My first crash

Post here if you need help getting started with Daggerfall Unity or just want to clarify a potential bug. Questions about playing or modding classic Daggerfall should be posted to Community.
Post Reply
User avatar
haloterm
Posts: 391
Joined: Sat Feb 16, 2019 5:21 am

My first crash

Post by haloterm »

DFU is very very stable for me in general, but today I got my first crash while spamming Arcane Arrows towards a group of spiders.

Here are the log files and crash dumps.
Crash_2021-12-05_230302648.zip
(361.33 KiB) Downloaded 51 times
Don't know if that is relevant, but the enemies were created by the SIGIL questmod (which creates infighting groups of enemies sometimes).

User avatar
Interkarma
Posts: 7242
Joined: Sun Mar 22, 2015 1:51 am

Re: My first crash

Post by Interkarma »

There are a few smaller errors in the log, but actual crash seems to have happened in Unity runtime in ChangeFoeInfighting:Update during a FindObjectsOfType call.

Code: Select all

0x000002341BBE86AA (Mono JIT Code) (wrapper managed-to-native) UnityEngine.Object:FindObjectsOfType (System.Type)
0x000002346B75B183 (Mono JIT Code) UnityEngine.Object:FindObjectsOfType<T_REF> ()
0x000002346F648D1B (Mono JIT Code) DaggerfallWorkshop.Game.Questing.ChangeFoeInfighting:Update (DaggerfallWorkshop.Game.Questing.Task)
0x000002346B744AF2 (Mono JIT Code) DaggerfallWorkshop.Game.Questing.Task:Update ()
0x000002346B744393 (Mono JIT Code) DaggerfallWorkshop.Game.Questing.Quest:Update ()
0x000002346B7439E3 (Mono JIT Code) DaggerfallWorkshop.Game.Questing.QuestMachine:Tick ()
0x000002346B3BAF8B (Mono JIT Code) DaggerfallWorkshop.Game.Questing.QuestMachine:Update ()
The error in German with best translation from Google is:

Code: Select all

Es wurde versucht, auf eine unzulässige Adresse zuzugreifen
-
An attempt was made to access an illegal address
Maybe there was a timing issue, for example the enemy object was killed & deleted at same time Unity was trying to find objects. Most of DFU runs synchronously so this shouldn't happen, but considering crash was in a Unity method it's hard to say what exactly went wrong.

This feels like an unusual or rare outcome, and could be a problem in Unity itself as that's where crash originated. Worth keeping an eye on though, thank you for raising. :)

User avatar
haloterm
Posts: 391
Joined: Sat Feb 16, 2019 5:21 am

Re: My first crash

Post by haloterm »

Interkarma wrote: Sun Dec 05, 2021 11:23 pm This feels like an unusual or rare outcome, and could be a problem in Unity itself as that's where crash originated. Worth keeping an eye on though, thank you for raising. :)
Thanks for looking at it.

I checked the SIGIL quests and found the one that was creating the monsters. It has a few timers, but nothing fancy.

Just in case this gives you a hint for further investigation, here is the source:

Code: Select all

Quest: AZCULTEXITHAMLET_GENERIC1
    DisplayName: SIGIL Generic Event 1 - Spider Problem (Near Hamlet)
 -- Message panels
QRC:

    QuestorOffer: [1000]
    <ce> AZI 1000

    RefuseQuest: [1001]
    <ce> AZI 1001

    AcceptQuest: [1002]
    <ce> AZI 1002

    QuestFail: [1003]
    <ce> AZI 1003

    QuestComplete: [1004]
    <ce> AZI 1004

Message:  1020
<ce> You approach two burly foresters. 
<ce> Seems like their recent activity in %crn 
<ce> wildnerness attracted group of spiders.

Message:  1021
<ce> Thanks for your help, %ra. %god bless you.
<--->
<ce> Traveling around the %crn without attracting
<ce> attention is getting harder and harder.
<--->
<ce> Thanks!
<--->
<ce> I'll need a drink in __place_ after that.

QBN:

Place _place_ remote tavern
Foe _ally11_ is Barbarian
Foe _ally12_ is Barbarian
Foe _sp11_ is Spider
Foe _sp12_ is Spider
Foe _sp21_ is Spider
Foe _sp22_ is Spider

Clock _cooldown_ 00:20
Clock _wave_ 00:01
Clock _talking_ 00:00

---- Quest startup
    start timer _talking_
    start timer _cooldown_
    start timer _wave_
    create foe _ally11_ every 0 minutes 1 times with 100% success
    create foe _ally12_ every 0 minutes 1 times with 100% success
    create foe _sp11_ every 0 minutes 1 times with 100% success
    create foe _sp12_ every 0 minutes 1 times with 100% success

_teamfight_ task:
    daily from 00:00 to 23:59
    change foe _ally11_ infighting true
    change foe _ally12_ infighting true
    change foe _sp11_ infighting true
    change foe _sp12_ infighting true
    change foe _ally11_ team 1
    change foe _ally12_ team 1
    change foe _sp11_ team 0
    change foe _sp12_ team 0
    clear _teamfight_

_talking_ task:
    say 1020

_wave_ task:
    start task _teamfight2_
    create foe _sp21_ every 0 minutes 1 times with 100% success
    create foe _sp22_ every 0 minutes 1 times with 100% success

_teamfight2_ task:
    daily from 00:00 to 23:59
    change foe _sp21_ infighting true
    change foe _sp22_ infighting true
    change foe _sp21_ team 0
    change foe _sp22_ team 0
    clear _teamfight2_

_click1_ task:
    clicked foe _ally11_

_click2_ task:
    clicked foe _ally12_

_killen1_ task:
    killed 1 _sp11_ 

_killen2_ task:
    killed 1 _sp12_

_killen3_ task:
    killed 1 _sp21_ 

_killen4_ task:
    killed 1 _sp22_

_pac_ task:
    when _killen1_ and _killen2_ and _killen3_ and _killen4_
    restrain foe _ally11_
    restrain foe _ally12_

_talk1_ task:
    when _killen1_ and _killen2_ and _killen3_ and _killen4_ and _click1_
    say 1021
    clear _talk1_

_talk2_ task:
    when _killen1_ and _killen2_ and _killen3_ and _killen4_ and _click2_
    say 1021
    clear _talk2_

_cooldown_ task:
    end quest

_injury11_ task:
    injured _ally11_
    cast Heal spell on _ally11_
    cast Orc_Strength spell on _ally11_
    cast Shield spell on _ally11_

_injury12_ task:
    injured _ally12_
    cast Heal spell on _ally12_
    cast Orc_Strength spell on _ally12_
    cast Shield spell on _ally12_

_injury2_ task:
    injured _sp21_
    cast Heal spell on _sp21_

_injury3_ task:
    injured _sp22_
    cast Feet_of_Notorgo spell on _sp22_
(SIGIL itself is available on Nexus Mods: https://www.nexusmods.com/daggerfalluni ... y/mods/224)

Post Reply