Description

In void ATestActor::OnConstruction(const FTransform& Transform)

there is an infinite loop occuring in a ping pong call between the SetActorLabel and the DestroyChildActor calls.

 

Happens in vanilla 4.21.2

Steps to Reproduce

2- Open project,

 

2- Try to put TestActor in the viewport.

 

2- Editor crashes

 

[Link Removed]

Callstack
UE4Editor-Engine.dll!AActor::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 125	C++
UE4Editor-Engine.dll!AActor::SetActorLabelInternal(const FString & NewActorLabelDirty, bool bMakeGloballyUniqueFName, bool bMarkDirty) Line 868	C++
UE4Editor-ChildActorIssue2.dll!ATestActor::OnConstruction(const FTransform & Transform) Line 29	C++
UE4Editor-Engine.dll!AActor::ExecuteConstruction(const FTransform & Transform, const FRotationConversionCache * TransformRotationCache, const FComponentInstanceDataCache * InstanceDataCache, bool bIsDefaultTransform) Line 840	C++
UE4Editor-Engine.dll!AActor::RerunConstructionScripts() Line 495	C++
UE4Editor-Engine.dll!AActor::RerunConstructionScripts() Line 239	C++
UE4Editor-Engine.dll!AActor::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 125	C++
UE4Editor-Engine.dll!AActor::SetActorLabelInternal(const FString & NewActorLabelDirty, bool bMakeGloballyUniqueFName, bool bMarkDirty) Line 868	C++
UE4Editor-ChildActorIssue2.dll!ATestActor::OnConstruction(const FTransform & Transform) Line 29	C++
UE4Editor-Engine.dll!AActor::ExecuteConstruction(const FTransform & Transform, const FRotationConversionCache * TransformRotationCache, const FComponentInstanceDataCache * InstanceDataCache, bool bIsDefaultTransform) Line 840	C++
UE4Editor-Engine.dll!AActor::RerunConstructionScripts() Line 495	C++
UE4Editor-Engine.dll!AActor::RerunConstructionScripts() Line 239	C++
UE4Editor-Engine.dll!AActor::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 125	C++
UE4Editor-Engine.dll!AActor::SetActorLabelInternal(const FString & NewActorLabelDirty, bool bMakeGloballyUniqueFName, bool bMarkDirty) Line 868	C++
UE4Editor-ChildActorIssue2.dll!ATestActor::OnConstruction(const FTransform & Transform) Line 29	C++
UE4Editor-Engine.dll!AActor::ExecuteConstruction(const FTransform & Transform, const FRotationConversionCache * TransformRotationCache, const FComponentInstanceDataCache * InstanceDataCache, bool bIsDefaultTransform) Line 840	C++
UE4Editor-Engine.dll!AActor::RerunConstructionScripts() Line 495	C++
UE4Editor-Engine.dll!AActor::RerunConstructionScripts() Line 239	C++
UE4Editor-Engine.dll!AActor::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 125	C++
UE4Editor-Engine.dll!AActor::SetActorLabelInternal(const FString & NewActorLabelDirty, bool bMakeGloballyUniqueFName, bool bMarkDirty) Line 868	C++
UE4Editor-ChildActorIssue2.dll!ATestActor::OnConstruction(const FTransform & Transform) Line 29	C++
UE4Editor-Engine.dll!AActor::ExecuteConstruction(const FTransform & Transform, const FRotationConversionCache * TransformRotationCache, const FComponentInstanceDataCache * InstanceDataCache, bool bIsDefaultTransform) Line 840	C++
UE4Editor-Engine.dll!AActor::RerunConstructionScripts() Line 495	C++
UE4Editor-Engine.dll!AActor::RerunConstructionScripts() Line 239	C++
UE4Editor-Engine.dll!AActor::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 125	C++
UE4Editor-Engine.dll!AActor::SetActorLabelInternal(const FString & NewActorLabelDirty, bool bMakeGloballyUniqueFName, bool bMarkDirty) Line 868	C++
UE4Editor-ChildActorIssue2.dll!ATestActor::OnConstruction(const FTransform & Transform) Line 29	C++
UE4Editor-Engine.dll!AActor::ExecuteConstruction(const FTransform & Transform, const FRotationConversionCache * TransformRotationCache, const FComponentInstanceDataCache * InstanceDataCache, bool bIsDefaultTransform) Line 840	C++
UE4Editor-Engine.dll!AActor::RerunConstructionScripts() Line 495	C++
UE4Editor-Engine.dll!AActor::RerunConstructionScripts() Line 239	C++
UE4Editor-Engine.dll!AActor::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 125	C++
UE4Editor-Engine.dll!AActor::SetActorLabelInternal(const FString & NewActorLabelDirty, bool bMakeGloballyUniqueFName, bool bMarkDirty) Line 868	C++
UE4Editor-ChildActorIssue2.dll!ATestActor::OnConstruction(const FTransform & Transform) Line 29	C++
UE4Editor-Engine.dll!AActor::ExecuteConstruction(const FTransform & Transform, const FRotationConversionCache * TransformRotationCache, const FComponentInstanceDataCache * InstanceDataCache, bool bIsDefaultTransform) Line 840	C++
UE4Editor-Engine.dll!AActor::FinishSpawning(const FTransform & UserTransform, bool bIsDefaultTransform, const FComponentInstanceDataCache * InstanceDataCache) Line 3098	C++
UE4Editor-Engine.dll!AActor::PostSpawnInitialize(const FTransform & UserSpawnTransform, AActor * InOwner, APawn * InInstigator, bool bRemoteOwned, bool bNoFail, bool bDeferConstruction) Line 3041	C++
UE4Editor-Engine.dll!UWorld::SpawnActor(UClass * Class, const FTransform * UserTransformPtr, const FActorSpawnParameters & SpawnParameters) Line 478	C++
UE4Editor-Engine.dll!UWorld::SpawnActor(UClass * Class, const FVector * Location, const FRotator * Rotation, const FActorSpawnParameters & SpawnParameters) Line 302	C++
UE4Editor-UnrealEd.dll!UEditorEngine::AddActor(ULevel * InLevel, UClass * Class, const FTransform & Transform, bool bSilent, EObjectFlags InObjectFlags) Line 6206	C++
UE4Editor-UnrealEd.dll!FLevelEditorViewportClient::TryPlacingActorFromObject(ULevel * InLevel, UObject * ObjToUse, bool bSelectActors, EObjectFlags ObjectFlags, UActorFactory * FactoryToUse, const FName Name) Line 262	C++

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-70462 in the post.

1
Login to Vote

Fixed
ComponentUE - Gameplay
Affects Versions4.21.2
Target Fix4.24
Fix Commit9624242
Main Commit9624253
Release Commit9624242
CreatedFeb 22, 2019
ResolvedOct 16, 2019
UpdatedJan 13, 2021