Closed mi2think closed 3 years ago
In my scene, we have HoudiniAssetActor,when switch to other maps, then fetal. Fetal message is Illegal call to StaticFindObject() while collecting garbage!
Illegal call to StaticFindObject() while collecting garbage!
The callstack as below:
UE4Editor-CoreUObject.dll!StaticFindObject(UClass ObjectClass, UObject InObjectPackage, const wchar_t OrigInName, bool ExactClass) [Inline Frame] UE4Editor-CoreUObject.dll!FindObject(UObject ) UE4Editor-CoreUObject.dll!FSoftObjectPath::ResolveObjectInternal(const wchar_t PathString) UE4Editor-CoreUObject.dll!FSoftObjectPath::ResolveObjectInternal() [Inline Frame] UE4Editor-HoudiniEngineRuntime.dll!TPersistentObjectPtr::Get() [Inline Frame] UE4Editor-HoudiniEngineRuntime.dll!FSoftObjectPtr::Get() UE4Editor-HoudiniEngineRuntime.dll!FSoftObjectPtr::LoadSynchronous() [Inline Frame] UE4Editor-HoudiniEngineRuntime.dll!TSoftObjectPtr::LoadSynchronous() [Inline Frame] UE4Editor-HoudiniEngineRuntime.dll!UHoudiniInputHoudiniAsset::GetHoudiniAssetComponent() UE4Editor-HoudiniEngineRuntime.dll!UHoudiniInput::GetBounds() UE4Editor-HoudiniEngineRuntime.dll!UHoudiniAssetComponent::GetAssetBounds(UHoudiniInput IgnoreInput, const bool & bIgnoreGeneratedLandscape) UE4Editor-HoudiniEngineRuntime.dll!UHoudiniAssetComponent::CalcBounds(const FTransform & LocalToWorld) UE4Editor-Engine.dll!USceneComponent::UpdateBounds() UE4Editor-Engine.dll!UPrimitiveComponent::UpdateBounds() UE4Editor-Engine.dll!USceneComponent::PropagateTransformUpdate(bool bTransformChanged, EUpdateTransformFlags UpdateTransformFlags, ETeleportType Teleport) UE4Editor-Engine.dll!USceneComponent::UpdateComponentToWorldWithParent(USceneComponent Parent, FName SocketName, EUpdateTransformFlags UpdateTransformFlags, const FQuat & RelativeRotationQuat, ETeleportType Teleport) UE4Editor-Engine.dll!USceneComponent::UpdateComponentToWorld(EUpdateTransformFlags UpdateTransformFlags, ETeleportType Teleport) UE4Editor-Engine.dll!USceneComponent::DetachFromComponent(const FDetachmentTransformRules & DetachmentRules) UE4Editor-Engine.dll!USceneComponent::OnComponentDestroyed(bool bDestroyingHierarchy) UE4Editor-Engine.dll!UActorComponent::BeginDestroy() UE4Editor-CoreUObject.dll!UObject::ConditionalBeginDestroy() UE4Editor-CoreUObject.dll!UnhashUnreachableObjects(bool bUseTimeLimit, float TimeLimit) UE4Editor-CoreUObject.dll!CollectGarbageInternal(EObjectFlags KeepFlags, bool bPerformFullPurge) UE4Editor-CoreUObject.dll!CollectGarbage(EObjectFlags KeepFlags, bool bPerformFullPurge) UE4Editor-UnrealEd.dll!UEditorEngine::Cleanse(bool ClearSelection, bool Redraw, const FText & TransReset) UE4Editor-UnrealEd.dll!UEditorEngine::EditorDestroyWorld(FWorldContext & Context, const FText & CleanseText, UWorld NewWorld) UE4Editor-UnrealEd.dll!UEditorEngine::Map_Load(const wchar_t Str, FOutputDevice & Ar) UE4Editor-UnrealEd.dll!UEditorEngine::HandleMapCommand(const wchar_t Str, FOutputDevice & Ar, UWorld InWorld) UE4Editor-UnrealEd.dll!UEditorEngine::Exec(UWorld InWorld, const wchar_t Stream, FOutputDevice & Ar) UE4Editor-UnrealEd.dll!UUnrealEdEngine::Exec(UWorld InWorld, const wchar_t * Stream, FOutputDevice & Ar) UE4Editor-UnrealEd.dll!FEditorFileUtils::LoadMap(const FString & InFilename, bool LoadAsTemplate, const bool bShowProgress)
From call stack you can see it happens when destory actor component when destory old map.
The direct issue is UpdateBounds CALL UHoudiniAssetComponent::CalcBounds, which lead to load a soft object, that is forbidden when GC is working.
UpdateBounds
UHoudiniAssetComponent::CalcBounds
So I wonder many people should have this problem, or just my way of using Houdini is something wrong?
Any suggestions?
In my scene, we have HoudiniAssetActor,when switch to other maps, then fetal. Fetal message is
Illegal call to StaticFindObject() while collecting garbage!
The callstack as below:
From call stack you can see it happens when destory actor component when destory old map.
The direct issue is
UpdateBounds
CALLUHoudiniAssetComponent::CalcBounds
, which lead to load a soft object, that is forbidden when GC is working.So I wonder many people should have this problem, or just my way of using Houdini is something wrong?
Any suggestions?