-
Notifications
You must be signed in to change notification settings - Fork 0
[Bug]: Fabric recipe snapshot can throw ConcurrentModificationException #4
Copy link
Copy link
Open
Labels
P1Critical: makes the mod unusable or fully breaks core functionalityCritical: makes the mod unusable or fully breaks core functionalityarea:emcEMC values, calculation, storage, or overridesEMC values, calculation, storage, or overridesarea:recipesRecipe loading, querying, snapshots, or derived EMCRecipe loading, querying, snapshots, or derived EMCloader:fabricFabric-specificFabric-specificstatus:in-progressSomeone is actively implementing itSomeone is actively implementing ittype:bugA defect or incorrect behaviorA defect or incorrect behavior
Description
Metadata
Metadata
Assignees
Labels
P1Critical: makes the mod unusable or fully breaks core functionalityCritical: makes the mod unusable or fully breaks core functionalityarea:emcEMC values, calculation, storage, or overridesEMC values, calculation, storage, or overridesarea:recipesRecipe loading, querying, snapshots, or derived EMCRecipe loading, querying, snapshots, or derived EMCloader:fabricFabric-specificFabric-specificstatus:in-progressSomeone is actively implementing itSomeone is actively implementing ittype:bugA defect or incorrect behaviorA defect or incorrect behavior
Bug description
An anonymized error report captured an unhandled
ConcurrentModificationExceptionwhile Fabric copied recipe data during recipe-load handling.This appears related to, but is not the same stack path as, #2: this report occurs in
recipesLoadedwhile constructing a copy of the recipe map.Affected code
The failing operation is equivalent to:
The source recipe map appears to be modified concurrently while its entries are being copied.
Observed environment
1.5.321.21.10.19.321Stack trace
Expected behavior
Recipe-load handling should take a stable snapshot or otherwise synchronize access before copying recipe data, so concurrent updates cannot crash the client.
Reproduction status
This came from an anonymized error report. Session identifiers, account information, IP/device details, operating system, and the full mod list are intentionally omitted. A deterministic reproduction is not yet available.