secondlife / jira-archive

3 stars 0 forks source link

[BUG-9454] [BigBird-RC] Using Wear to replace attachments sometimes incorrectly adds #16953

Open sl-service-account opened 9 years ago

sl-service-account commented 9 years ago

Steps to Reproduce

Attachments

Original Jira Fields | Field | Value | | ------------- | ------------- | | Issue | BUG-9454 | | Summary | [BigBird-RC] Using Wear to replace attachments sometimes incorrectly adds | | Type | Bug | | Priority | Unset | | Status | Accepted | | Resolution | Accepted | | Reporter | Whirly Fizzle (whirly.fizzle) | | Created at | 2015-06-12T20:54:17Z | | Updated at | 2021-05-17T21:39:10Z | ``` { 'Business Unit': ['Platform'], 'Date of First Response': '2016-01-25T08:28:59.398-0600', 'Severity': 'Unset', 'System': 'SL Viewer', 'Target Viewer Version': 'viewer-development', 'What just happened?': '...', 'What were you doing when it happened?': 'Filling in...\r\n', 'What were you expecting to happen instead?': '....', } ```
sl-service-account commented 9 years ago

Whirly Fizzle commented at 2015-06-17T18:08:47Z

Still reproduces on Second Life 3.7.31 (302640) Jun 15 2015 11:24:01 (Second Life Release) (Latest Big-Bird RC).

sl-service-account commented 8 years ago

Ansariel Hiller commented at 2016-01-25T14:28:59Z, updated at 2016-01-25T14:30:31Z

This is caused by the workaround "fix" for attachments falling of during TPs. As part of this "fix", the viewer maintains a list of attachments that it requested to be detached (LLAttachmentsMgr::mDetachRequests) and issue a re-attach in case they fall off unexpectedly.

"Wearing" objects will route the viewer into this code path:

  1. Choosing wear will call rez_attachment() with replace = true for each of the objects selected to be worn
  2. Since the viewer doesn't know what attachment spot each object is going to and can't detach objects occupying them itself, the sim will have to do that; therefore, the viewer cannot add attachments going to be detached to LLAttachmentsMgr::mDetachRequests
  3. When the sim is processing the attachment request, it will issue a detach message for each attachment that is being replaced
  4. The viewer looks up in LLAttachmentsMgr::mDetachRequests if it was caused by the viewer and doesn't find it there
  5. Viewer requests an appearance update from COF and things break horribly

newview/llattachmentsmgr.cpp(529) : 2016-01-25T14:21:33Z WARNING: LLAttachmentsMgr::onDetachCompleted: ATT unexpected detach for :GF: spring hunt sneakers R id af10b9e6-524d-a1ca-e51b-ede0df4292aa newview/llappearancemgr.cpp(3314) : 2016-01-25T14:21:33Z DEBUG:#Outfit LLAppearanceMgr::updateIsDirty: item count different - base 15 cof 16 newview/llappearancemgr.cpp(3314) : 2016-01-25T14:21:34Z DEBUG:#Outfit LLAppearanceMgr::updateIsDirty: item count different - base 15 cof 17 newview/llappearancemgr.cpp(3314) : 2016-01-25T14:21:34Z DEBUG:#Outfit LLAppearanceMgr::updateIsDirty: item count different - base 15 cof 16 newview/llinventorymodel.cpp(1353) : 2016-01-25T14:21:34Z INFO:#Inventory LLInventoryModel::onAISUpdateReceived: elapsed: 0.004037s newview/llappearancemgr.cpp(3900) : 2016-01-25T14:21:35Z WARNING:#Avatar RequestAgentUpdateAppearanceResponder::httpFailure: appearance update request failed, status 400 reason Bad Request