Description

There appears to be a pattern of non-deterministic cooks when packaging with multiple chunks. In the case of these reproducible steps, only the assets of chunk1 have been modified. In this case, we expect that no changes will occur in chunk2, but changes will occur in .ucas/.utoc of chunk2. This is because the result is different when IOStore is enabled and when it is disabled.

When IOStore is disabled, the .pak of chunk2 is not changed (Diff-DisableIoStore.png). On the other hand, when IOStore is enabled, the chunk2 container is modified (Diff-EnableIoStore.png). Comparing the .utoc diff of chunk2, there is a difference in the hash value of the first content (Diff-pakchunk2.png).

Steps to Reproduce
  1. Open the attached project.
  2. Packaging project with Win64/Development. 
  3. Copy "chunk1_test_9.uasset" and add a new asset "chunk1_test_10.uasset" in the same folder.
  4. Packaging project with Win64/Development.
  5. Check the differences in the .pak folder of the packages created in Step 2 and Step 5.

Expected:

No diffs in pakchunk2-WindowsNoEditor.pak/.ucas/.utoc

Result:

Diffs in pakchunk2-WindowsNoEditor.ucas/.utoc

Have Comments or More Details?

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

1
Login to Vote

Fixed
ComponentUE - Foundation - Core - UnrealPak
Affects Versions4.27
Target Fix5.0
Fix Commit17267090
Main Commit17267090
CreatedNov 21, 2021
ResolvedNov 24, 2021
UpdatedNov 29, 2021