View previous topic :: View next topic |
Author |
Message |
Hyper
Joined: 24 Jan 2004 Posts: 1227 Location: Middelburg, The Netherlands
|
Posted: Tue Apr 04, 2006 9:09 pm Post subject: Spinner.Shadow carcass crash |
|
|
The server crashed on the new Spinner.Shadow pawn of the Spinner pack from Asgard. I wonder what is the cause of this problem and if I should remove the Shadow pawn. And should i remove the other Spinners as well??
Asgard, if you can fix this, let me know.
Log:
Quote: |
ScriptWarning: Vase spirevillage.Vase63 (Function Engine.Decoration.Destroyed:00C8) Accessed None
ScriptWarning: Vase spirevillage.Vase63 (Function Engine.Decoration.Destroyed:00D0) Attempt to assigned variable through None
ScriptWarning: Vase spirevillage.Vase63 (Function Engine.Decoration.Destroyed:00D8) Accessed None
ScriptWarning: Vase spirevillage.Vase63 (Function Engine.Decoration.Destroyed:00E7) Accessed None
Critical: appError called:
Critical: jDecMutator spirevillage.jDecMutator0 (Function JDec.jDecMutator.AddContents:0000) Infinite script recursion (250 calls) detected
Critical: Windows GetLastError: Een niet-blokkerende socketbewerking kan niet onmiddellijk worden voltooid. (10035)
Exit: Executing UObject::StaticShutdownAfterError
Critical: FFrame::Serialize
Critical: UObject::ProcessEvent
Critical: (shadowChunks spirevillage.shadowChunks41, Function Engine.Actor.PreBeginPlay)
Critical: ULevel::SpawnActor
Critical: (shadowChunks)
Critical: UObject::ProcessEvent
Critical: (ShadowCarcass spirevillage.ShadowCarcass40, Function Engine.Decoration.BaseChange)
Critical: AActor::SetBase
Critical: AActor::findBase
Critical: AActor::setPhysics
Critical: UObject::ProcessEvent
[...long list...]
Critical: (ShadowCarcass spirevillage.ShadowCarcass2, Function Engine.Decoration.BaseChange)
Critical: AActor::SetBase
Critical: AActor::findBase
Critical: AActor::setPhysics
Critical: UObject::ProcessEvent
Critical: (AuraD spirevillage.AuraD514, Function Engine.Projectile.Touch)
Critical: TouchTo
Critical: AActor::BeginTouch
Critical: ULevel::MoveActor
Critical: AActor::physProjectile
Critical: AActor::performPhysics
Critical: AActor::Tick
Critical: TickAllActors
Critical: ULevel::Tick
Critical: (NetMode=1)
Critical: TickLevel
Critical: UGameEngine::Tick
Critical: UpdateWorld
Critical: MainLoop
Exit: appExit
Uninitialized: Name subsystem shut down
Uninitialized: Log file closed, 04/04/06 14:15:48
|
_________________ Alter your reality...forever.
Hyper.nl Unreal Services
unreal://hypercoop.tk |
|
Back to top |
|
|
Zombie
Joined: 27 Jan 2004 Posts: 295
|
Posted: Tue Apr 04, 2006 11:10 pm Post subject: |
|
|
The carcass recursion prevention in DZMapM and JCoopZ wasn't able to detect this. I checked the SpinnerCarcass class (ShadowCarcass is subclass) and it's 'bGameRelevant'. That basicaly makes it impossible to prevent the crash from a gametype or mutator without needing to do something special. In order to prevent this asGard either has to remove that property from the class or attempt to prevent it within the carcass or shadow class.
Hyper, you may want to try using AutoRunCommand to fix this.
"set creaturecarcass bgamerelevant false" <-- All child classes 'should' inherit
"set spinnercarcass bgamerelevant false"
No idea if it'll stick on every level or at all though. If it doesn't work then a specialized fix would need to be made (if asGard doesn't update) that executes the command after first spawning the carcasses.
-Zombie _________________ GameType: JCoopZ1 - Build137 (11/30/12)
Mutator: DZMapM - 2.34 (12/15/11) |
|
Back to top |
|
|
Hyper
Joined: 24 Jan 2004 Posts: 1227 Location: Middelburg, The Netherlands
|
Posted: Wed Apr 05, 2006 7:20 am Post subject: |
|
|
Ok, I'll add the commands. Thanks for your excellent support, Zombie. Your knowledge is of great value here. _________________ Alter your reality...forever.
Hyper.nl Unreal Services
unreal://hypercoop.tk |
|
Back to top |
|
|
Asgard
Joined: 04 Apr 2006 Posts: 6
|
Posted: Sun Apr 09, 2006 4:42 am Post subject: |
|
|
Not sure as yet whats causing the4 recursion, perhaps a base taking damage loop will have to have a better look at it...
cheers |
|
Back to top |
|
|
Hyper
Joined: 24 Jan 2004 Posts: 1227 Location: Middelburg, The Netherlands
|
Posted: Sun Apr 16, 2006 9:04 am Post subject: |
|
|
Another crash, even with "set creaturecarcass bgamerelevant false" in the autoruncommands of JCoopZ. I will remove the shadow from the server.
Quote: |
JCoopZ: All inventory from MøFö_¤ is accepted
JCoopZ: LOGIN COMPLETE: MøFö_¤ -- IP Address: 68.251.188.228
JCoopZ: Current Score Table contents:
JCoopZ: 0: MøFö_¤
DevNet: Join succeeded: MøFö_¤
Nephthys: 2006/04/15 05:34:13: In: 68.251.188.228:1186: MøFö_¤ MøFö_¤
JCoopZ: ** Player: MøFö_¤ -- LocalID: 1803512057 -- PlayerUID: -1546822692
JCoopZ: PostLogin(): Score restored for 0: MøFö_¤
JCoopZ: Client corrections applied to: MøFö_¤
ScriptWarning: DeathTentacle dasacellars.DeathTentacle0 (Function UnrealShare.Tentacle.SmackTarget:0023) Accessed None
ScriptWarning: DeathTentacle dasacellars.DeathTentacle0 (Function UnrealShare.ScriptedPawn.MeleeDamageTarget:000D) Accessed None
ScriptWarning: DeathTentacle dasacellars.DeathTentacle0 (Function UnrealShare.ScriptedPawn.MeleeDamageTarget:0030) Accessed None
JCoopZ: Minimum End Timer reached. Enabling naliboat to end.
Critical: appError called:
Critical: jDecMutator dasacellars.jDecMutator0 (Function JDec.jDecMutator.AddContents:0000) Infinite script recursion (250 calls) detected
Critical: Windows GetLastError: Een niet-blokkerende socketbewerking kan niet onmiddellijk worden voltooid. (10035)
Exit: Executing UObject::StaticShutdownAfterError
Critical: FFrame::Serialize
Critical: UObject::ProcessEvent
Critical: (shadowChunks dasacellars.shadowChunks46, Function Engine.Actor.PreBeginPlay)
Critical: ULevel::SpawnActor
Critical: (shadowChunks)
Critical: UObject::ProcessEvent
Critical: (ShadowCarcass dasacellars.ShadowCarcass45, Function Engine.Decoration.BaseChange)
Critical: AActor::SetBase
Critical: AActor::findBase
Critical: AActor::setPhysics
Critical: UObject::ProcessEvent
[...]
Critical: (ShadowCarcass dasacellars.ShadowCarcass8, Function Engine.Decoration.BaseChange)
Critical: AActor::SetBase
Critical: AActor::findBase
Critical: AActor::setPhysics
Critical: UObject::ProcessEvent
Critical: (ShadowCarcass dasacellars.ShadowCarcass7, Function Engine.Decoration.BaseChange)
Critical: AActor::SetBase
Critical: AActor::findBase
Critical: AActor::setPhysics
Critical: UObject::ProcessEvent
Critical: (ArcD dasacellars.ArcD1413, Function Engine.Projectile.Touch)
Critical: TouchTo
Critical: AActor::BeginTouch
Critical: ULevel::MoveActor
Critical: AActor::physProjectile
Critical: AActor::performPhysics
Critical: AActor::Tick
Critical: TickAllActors
Critical: ULevel::Tick
Critical: (NetMode=1)
Critical: TickLevel
Critical: UGameEngine::Tick
Critical: UpdateWorld
Critical: MainLoop
Exit: appExit
Uninitialized: Name subsystem shut down
Uninitialized: Log file closed, 04/15/06 05:43:48
|
_________________ Alter your reality...forever.
Hyper.nl Unreal Services
unreal://hypercoop.tk
Last edited by Hyper on Sun Apr 16, 2006 10:21 am; edited 1 time in total |
|
Back to top |
|
|
Zombie
Joined: 27 Jan 2004 Posts: 295
|
Posted: Sun Apr 16, 2006 9:41 am Post subject: |
|
|
That's a shame. Spinners an Shadows are something different than what everyone is used to. JCoopZ probably couldn't treat some of spinners and shadows, such as when they spawn after the AutoRunCommand list was already processed. An update will have to come from asGard that either prevents the recursion in the carcass & pawn code or removes that default 'bGameRelevant' property.
AsGard, I have a method to help you test any of your preventions. I PMed you about testing as well as alternative ways to prevent this recursion from any pawn carcass.
-Zombie _________________ GameType: JCoopZ1 - Build137 (11/30/12)
Mutator: DZMapM - 2.34 (12/15/11) |
|
Back to top |
|
|
Hyper
Joined: 24 Jan 2004 Posts: 1227 Location: Middelburg, The Netherlands
|
Posted: Sun Apr 16, 2006 10:20 am Post subject: |
|
|
I haven't had spinner or maiden crashes yet. Should I remove those as well?
I'll add them back when they are fixed anyways. _________________ Alter your reality...forever.
Hyper.nl Unreal Services
unreal://hypercoop.tk |
|
Back to top |
|
|
Zombie
Joined: 27 Jan 2004 Posts: 295
|
Posted: Sun Apr 16, 2006 10:32 am Post subject: |
|
|
The Shadow, Spinner, Predator, and Maiden all inherite the same property for their carcasses. Spinner, Maiden, and Predator can possibly cause a recursion because of that too, but since they are a bit larger in collision size (might be important) they may have a lower risk then a Shadow.
-Zombie _________________ GameType: JCoopZ1 - Build137 (11/30/12)
Mutator: DZMapM - 2.34 (12/15/11) |
|
Back to top |
|
|
Hyper
Joined: 24 Jan 2004 Posts: 1227 Location: Middelburg, The Netherlands
|
Posted: Sun Apr 16, 2006 1:13 pm Post subject: |
|
|
Zombie wrote: | The Shadow, Spinner, Predator, and Maiden all inherite the same property for their carcasses. Spinner, Maiden, and Predator can possibly cause a recursion because of that too, but since they are a bit larger in collision size (might be important) they may have a lower risk then a Shadow.
-Zombie |
I just thought of an old carcass bug fix that Winged Unicorn once made for me. I still had it on my drive and decided to change the script to apply the fix on the spinners and predators:
Code: |
//=============================================================================
// CarcassFix.
// Fixes carcass bug in Spinners and Predators
// Script by Winged Unicorn
//=============================================================================
class CarcassFix expands Mutator;
function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
{
if ( Other.IsA('ShadowCarcass') || Other.IsA('SpinnerCarcass') || Other.IsA('PredatorCarcass') )
return False;
return True;
}
|
Basicly it removes the carcass before it can crash the server. I'll try if this will work. _________________ Alter your reality...forever.
Hyper.nl Unreal Services
unreal://hypercoop.tk
Last edited by Hyper on Sun Apr 16, 2006 2:01 pm; edited 1 time in total |
|
Back to top |
|
|
Hyper
Joined: 24 Jan 2004 Posts: 1227 Location: Middelburg, The Netherlands
|
Posted: Sun Apr 16, 2006 1:54 pm Post subject: |
|
|
Update: The mutator does not work; which is strange to me because it always worked in the past.
Update2: I get the mutator working by addin the following lines to the AutoRunCommands (instead of only the creaturecarcass)
AutoRunCommand[37]=set creaturecarcass bgamerelevant false
AutoRunCommand[38]=set spinnercarcass bgamerelevant false
AutoRunCommand[39]=set shadowcarcass bgamerelevant false
AutoRunCommand[40]=set predatorcarcass bgamerelevant false
Now my question is: Do I still need Wingeds modified mutator or can I be sure that with the updated AutoRunCommands JCoopZ's carcass bug prevention will stop any carcass crashes here? _________________ Alter your reality...forever.
Hyper.nl Unreal Services
unreal://hypercoop.tk |
|
Back to top |
|
|
Zombie
Joined: 27 Jan 2004 Posts: 295
|
Posted: Sun Apr 16, 2006 2:42 pm Post subject: |
|
|
The reason why WingedUnicorn's mutator doesn't work is the same reason the carcass recursion prevention in DZMapM and JCoopZ is not detecting the ShadowCarcass recursion. Besides, WingedUnciron's prevention is a step backwards because it's goal was to eliminate specific carcasses from ever staying.
As I have stated before the 'bGameRelevant' property makes the spawned actor completely bypass gametype and mutator functions where they can be further handled. The carcasses will never be passed to Mutator.CheckReplacement() or GameInfo.IsRelevant() where any prevention code would work. This is why I suggested trying to manipulate the property using AutoRunCommand so that the actor is once again passed to those functions.
If you can be sure that the property is set false JCoopZ should prevent the recursion just fine. Based on the fact that AutoRunCommand hasn't worked this last time I don't think it'll always be able to manipulate the property when it needs to be done. However, since you are trying your own mutator work I suggest trying something like this:
Code: | function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
{
if ( Other.IsA('Spinsp') ) // Abstract parent class.
{
ConsoleCommand("set spinnercarcass bgamerelevant false");
}
else if ( Other.IsA('Predsp') ) // Abstract parent class.
{
ConsoleCommand("set predatorcarcass bgamerelevant false");
}
return True;
} |
Since the pawns themselves aren't 'bGameRevelant' they will be passed to the function when spawned. I beleive after they spawn their carcass classes should load during their initialization allowing those commands to have an effect.
-Zombie _________________ GameType: JCoopZ1 - Build137 (11/30/12)
Mutator: DZMapM - 2.34 (12/15/11) |
|
Back to top |
|
|
Hyper
Joined: 24 Jan 2004 Posts: 1227 Location: Middelburg, The Netherlands
|
Posted: Sun Apr 16, 2006 3:02 pm Post subject: |
|
|
Okay, I added the mutator. I added one extra console command for the shadowcarcass. Maybe not needed, but just to be sure.:
Code: |
if ( Other.IsA('Spinsp') ) // Abstract parent class.
{
ConsoleCommand("set spinnercarcass bgamerelevant false");
ConsoleCommand("set shadowcarcass bgamerelevant false");
}
|
_________________ Alter your reality...forever.
Hyper.nl Unreal Services
unreal://hypercoop.tk |
|
Back to top |
|
|
Asgard
Joined: 04 Apr 2006 Posts: 6
|
Posted: Thu Apr 20, 2006 7:19 am Post subject: |
|
|
Ive got an update for the spinner and predator which I'll upload soon. Hopefuly also fixes the carcass bug in these classes once and for all.
I guess thats where Unreal is a pain in the butt to make mods for, you get all the free bugs that come with it.
I dont have much time to mess with Unreal these days either, so my appologies for taking so long to get back to all..
cheers |
|
Back to top |
|
|
Asgard
Joined: 04 Apr 2006 Posts: 6
|
Posted: Thu Apr 20, 2006 6:11 pm Post subject: |
|
|
OK new ver of the predator and spinner available at my web site.. Carcass recursion fixed....
Cheers |
|
Back to top |
|
|
Hyper
Joined: 24 Jan 2004 Posts: 1227 Location: Middelburg, The Netherlands
|
|
Back to top |
|
|
|