Uploaded image for project: 'Snowstorm'
  1. Snowstorm
  2. STORM-496

Wearing 2 different clothing layers at the same time pushes the inventory into an inconsistent state

    Details

    • Type: Story
    • Status: Closed
    • Priority: Minor
    • Resolution: Incomplete
    • Affects Version/s: Viewer 2.1.0, Viewer 2.1.1
    • Fix Version/s: Sprint 19
    • Labels:
      None
    • Environment:

      Description

      Wearing 2 different clothing layers at the same time and for the first time after a cache clearing will produce very weird effects. What happens is that you wear the clothes, everything seems normal, then when you try to remove them you notice that one of them is "stuck", you can't remove it until you wear something else (anything else, not necessarily the same layer) to force the avatar to rebake.

      To repro :

      1. Clear your cache. This is very important because subsequent tries with the same clothes won't allow you to repro the bug.
      2. Select 2 pieces of clothing at the same time in the same folder (left-click on each with Shift pressed down).
      3. Right-click on one of them in the inventory, then choose "Wear".
      4. Wait for the clothes to appear.
      5. Keep them both selected, right-click on them, then choose "Take Off".

      Expected : the clothes are both removed
      Observed : one of them stays and you can't remove it easily

      Further observations :

      • The Wearing tab of the Outfits panel will NOT show the rogue piece of clothing as worn anymore, but the My Inventory tab will.
      • There is no inventory loss observed, things go back to normal when you manage to remove the rogue piece of clothing.
      • It does that only the first time you wear a piece of clothing after clearing the cache. it will work the next times. If you want to repro the bug again without clearing your cache, you need to choose other pieces of clothing.
      • I have observed in SG 2.1.0 build 3614 that LLAgentWearables::pushWearable() will be called 3 times the first time you wear 2 layers of clothing (it should be called once per layer), and that when trying to remove the rogue clothing the method LLAgentWearables::getWearableIndex() will return MAX_CLOTHING_PER_TYPE (5 by default) because it does not find it (it should return 0 to 4 otherwise, likely 0 since multi-layer clothing is not enabled in the viewer yet).

      I've been banging my head over this bug for 2 days now, and this really cripples my ability to release a new RLV 2.1. I will keep banging until either the bug or my head cracks.

      Marine

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              marine.kelley Marine Kelley
              Extended Group Visibility:
              jira-users
            • Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 20 minutes
                20m