FIX - give to rlv folder fails when AIS reports a different state than the viewer expects#191
Open
trish-sl wants to merge 1 commit intoFirestormViewer:masterfrom
Open
FIX - give to rlv folder fails when AIS reports a different state than the viewer expects#191trish-sl wants to merge 1 commit intoFirestormViewer:masterfrom
trish-sl wants to merge 1 commit intoFirestormViewer:masterfrom
Conversation
…d misplaced fixes FIRE-35486 fixes FIRE-35704
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Apologies for the duplicate PRs, I don't seem to have permission to re-open the old ones after they were auto-closed when redoing my fork
fixes FIRE-35486
fixes FIRE-35704
(and potentially duplicate JIRAs I have not found)
Bug Repro
This bug can be somewhat tough to reproduce, due to its nature. There are racing conditions/desyncs between viewer and server updates where the folder sent to RLV is not expected in the same path. The easiest way to reproduce it is to make yourself an object that spams give to rlv (like folders 1/1, 1/2, ... every second). Once in a while, you will see that one of the folders will not land in the subfolder that it should, instead, a folder with the full name "#RLV/~1/2" will be in the root of #RLV, or in the subfolder "1".
We get a "mismatched descendent count" error from accountForUpdate when this bug occurs.
Origin
As far as I know, this bug has been happening since the first v7 viewers, but I've had friends report the same on firestorm v6
Fix
The fix is a combination of things. Instead of blindly expecting the folder to land in the right spot, we try to move and rename the folder to the correct location and name when the viewer state does not match the latest server update.
Implementation notes
The root cause of the bug seems to come from the fact that inventory updates use a mix of AIS and LLMessageSystem UDP message in updateParentOnServer. I didn't feel like it was safe to touch the entire inventory system logic just for this bug, and it felt safer to expect that desyncs can sometimes occur.
Please let me know if you prefer a different approach or if something needs adjusted. I've touched more than I was previously familiar with.