Some distributed Swarm VolumetricLightmap GUIDs are reporting JOB_TASK_STATE_COMPLETE_SUCCESS more than once, causing the editor to soft-hang at 100% completion when baking static lights

`==== //depot/Unreal/Engine/Source/Editor/UnrealEd/Private/Lightmass/Lightmass.cpp#3 (text) ====

[Content removed]18 @@
}
else if (Processor->Exporter->VolumetricLightmapTaskGuids.Contains(TaskStateMessage->TaskGuid))
{

  • //~ — EDIT BEGIN — : pchaintreuil - 2025/04/15 - Don’t double count Lightmap Guids that report complete more than once.
  • {
  • UE::TScopeLock const ScopeLock (Processor->Exporter->VolumetricLightmapTaskGuidsOutstandingLock);
  • if (Processor->Exporter->VolumetricLightmapTaskGuidsOutstanding.Remove(TaskStateMessage->TaskGuid) < 1)
  • {
  • // If a GUID is reporting complete again, don’t count it.
  • break;
  • }
  • }
  • //~ — EDIT END —/

TList* NewElement = new TList(TaskStateMessage->TaskGuid, NULL);
Processor->CompletedVolumetricLightmapTasks.AddElement( NewElement );
FPlatformAtomics::InterlockedIncrement( &Processor->NumCompletedTasks );
[Content removed]13 @@
{
Exporter->VolumetricLightmapTaskGuids.Add(FGuid::NewGuid(), VolumetricLightmapTaskIndex);
}
+

  • //~ — EDIT BEGIN — : pchaintreuil - 2025/04/15 - Don’t double count Lightmap Guids that report complete more than once.
  • {
  • UE::TScopeLock const ScopeLock (Exporter->VolumetricLightmapTaskGuidsOutstandingLock);
  • Exporter->VolumetricLightmapTaskGuids.GetKeys(Exporter->VolumetricLightmapTaskGuidsOutstanding);
  • }
  • //~ — EDIT END —/
    }

TArray<ULevel*> LevelsToRestore;

==== //depot/Unreal/Engine/Source/Editor/UnrealEd/Private/Lightmass/Lightmass.h#2 (text) ====

[Content removed]13 @@

TMap<FGuid, int32> VolumetricLightmapTaskGuids;

  • //~ — EDIT BEGIN — : pchaintreuil - 2025/04/15 - Don’t double count Lightmap Guids that report complete more than once.
  • /** Volumetric Lightmap tasks that haven’t yet reported as completed. */
  • TSet VolumetricLightmapTaskGuidsOutstanding;
  • /** Mutex for VolumetricLightmapTaskGuidsOutstanding */
  • FCriticalSection VolumetricLightmapTaskGuidsOutstandingLock;
  • //~ — EDIT END —/

TArray<AVolumetricLightmapDensityVolume*> VolumetricLightmapDensityVolumes;

private:`