QIO Data Wipe
A-72 opened this issue ยท 1 comments
Issue description
By breaking the system to create an effect of 2 identical items separately in the QIO Dashboard and restart the server, the entire QIO system might be wiped out. This can happen randomly when you progress through a heavy modpack or a random chance (as I cannot reproduce this issue without editing nbt file directly)
"create an effect of 2 identical items separately in the QIO Dashboard" refers to having different uuids with identical value in qio_type_cache.dat. Then restart the server to invoke QIOGlobalItemLookupDataHandler::load, but in line 115 there is a call to BiMap::put function, which can throw if the value is identical to any of the previous BiMap stored value with different uuid. As a result, the function just being terminated with java.lang.IllegalArgumentException and have the incomplete result.
Then QIO Drives correct themselves by removing any pairs of key/data if key does not exist in an already loaded BiMap, which result in some items completely wiped out from the region file. The related code unchanged in 1.21 branch so I think it affect every versions from 1.19 to 1.21, including the current dev branch.
Steps to reproduce
- Break any QIO system as mentioned above.
- Restart the server.
- Check any QIO Drive and notice the item removal.
Minecraft version
1.20.x or earlier (No longer being developed)
NeoForge version
43.3.5 (Forge)
Mekanism version
Older
Other relevant versions
No response
If a (crash)log is relevant for this issue, link it here: (It's almost always relevant)
No response