-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Right clicking the root "My Inventory" folder freezes the viewer with no recovery #3505
Comments
This issue has been linked to a Canny post: Right clicking the root "My Inventory" folder freezes the viewer with no recovery 🎉 |
Related bug that was fixed in Maint X: secondlife/jira-archive#11537 |
I tested on Whirly's account. It did not repro on the first login. It did repro on the second login, when the inventory was fetched from cache. |
@Dan-Linden @AtlasLinden Does this freeze show up in bugsplat? |
I don't think there will be any freezes in bugsplat. In discussion with bugplat it came up that bugsplat is supposed to catch freezes (setHangDetectionTimeout()) but it doesn't appear to catch our 'infinite loop' case. Bugsplat monitors Windows' message loop, which keeps working. We probably should make our own detection. |
checkFolderForContentsOfType is expensive and frequently used, will need to rewrite it to quit on first found item instead of collecting every item. Also need to make buildContextMenuOptions avoid some checks for 'my inventory'. |
The actual problem is fetch dumping thousands of callbacks, but this should mitigate the problem
The actual problem is fetch dumping thousands of callbacks, but this should mitigate the problem
The actual problem is fetch dumping thousands of callbacks, but this should mitigate the problem
I fixed most expensive elements, but a small, couple frames long freeze remains. Part of the cause for the freeze is a large update from simulator for the root folder, fixing response provessing in scope of forever FPS is too risky (and probably involves threading inventory), so if you see a small freeze, please file a separate ticket. For this ticket it's enough that viewer 'recovers'. Test plan:
|
Testing on build https://github.com/secondlife/viewer/releases/tag/Second_Life_Release%231924241f-ForeverFPS The unrecoverable freeze is fixed \o/ However, I don't think the inventory being stuck in the fetching state for several minutes is a big issue. |
I found a minor bug that only appears to reproduce on the test build
|
That matches what I see and was the cause behind the freeze. When you right click root folder viewer checks if it's up to date. If it isn't up to date viewer tries to fetch that folder. That response for some reason contains over 3K folders. It's processing those 3K folders, each individual folder updating open menu. That update is expensive, so viewer effectively froze. I focused on fixing the freeze. P.S. Viewer probably can handle that response in secodns, but really need threadng for inventory before that.
Thank you, will check that. Edit: Can not reproduce. if fetch is still ongoing, each received item is going to refresh open menu which is expected (I can make a filter to only update menu if viewer got an update for a related item, but it's a minor issue) |
This might need a large inventory or an inventory with many items in the root folder to reproduce
Login and open inventory
In the "My Inventory" tab, right click the root "My Inventory" folder.
Observe the viewer freezes & never recovers, needing a force quit in Task Manager
The freeze also reproduces when right clicking the "My Inventory" folder in the Recent tab of inventory if inventory folders are set to show items newer then 100 days. The number of days is unlikely to be important, it's probably the number of items showing in the root folder that matter.
I attached my log from a session where I reproduced this - observe in the log that right clicking the root inventory folder appears to cause a cache purge & it might be the cache purge that is causing the viewer to freeze?
You can see the last log lines are
Feel free to hijack Whirly Fizzle if you can't reproduce this.
Freeze also reproduces on ForeverFPS & Firestorm
https://secondlife.canny.io/admin/board/bug-reports/p/right-clicking-the-root-my-inventory-folder-freezes-the-viewer-with-no-recovery
The text was updated successfully, but these errors were encountered: