Skip to content
This repository was archived by the owner on Mar 28, 2024. It is now read-only.

[BUG-225696] All offline inventory offers from scripted objects are lost #4431

Open
2 tasks
sl-service-account opened this issue Oct 26, 2018 · 3 comments
Open
2 tasks

Comments

@sl-service-account
Copy link

sl-service-account commented Oct 26, 2018

Steps To Reproduce

  • Avatar A: create a prim with the following script in it. Replace UUID1 and UUID2 with the avatar UUIDs of Avatar A & Avatar B.
    Avatar B needs to be offline.

    default
    {
        touch_start(integer n)
        {
            //Gives this script to two avatars.
            llGiveInventory("UUID1", llGetScriptName());
            llGiveInventory("UUID2", llGetScriptName());
        }
    }
  • Avatar A: Click the prim.

  • Clicking the prim will send the inventory offer of the script to both Avatar A & Avatar B.

  • Avatar A: Observe you get the inventory offer of the script.

  • Avatar B: Wait for the offline email telling you about the inventory offer.

  • Avatar B: Login on Second Life Release 5.1.9.519298

    Observed Behaviour

  • Avatar B will NOT receive the inventory offer after logging in on Second Life Release 5.1.9.519298

  • Avatar B does receive the offline inventory offer email as expected.

  • This bug only reproduces on builds that use the new offline message cap thingy.

    Expected Behaviour

    Avatar B should receive the inventory offer after logging in.

Links

Duplicates

Related

Original Jira Fields
Field Value
Issue BUG-225696
Summary All offline inventory offers from scripted objects are lost
Type Bug
Priority Unset
Status Accepted
Resolution Accepted
Reporter Whirly Fizzle (whirly.fizzle)
Created at 2018-10-26T09:27:57Z
Updated at 2020-05-22T18:18:26Z
{
  'Build Id': 'unset',
  'Business Unit': ['Platform'],
  'Date of First Response': '2019-04-22T05:15:32.596-0500',
  'ReOpened Count': 0.0,
  'Severity': 'Unset',
  'System': 'SL Viewer',
  'Target Viewer Version': 'viewer-development',
  'What just happened?': 'Filling in...',
  'What were you doing when it happened?': '...',
  'What were you expecting to happen instead?': '....',
  'Where': 'Any region',
}
@sl-service-account
Copy link
Author

Kitty Barnett commented at 2019-04-22T10:15:33Z

Email snip:

 
Looking into it today it's apparently due to the offline IM cap that was introduced a while ago.
 
Going over the various Linden repos I come across a commit for 5 months ago that hasn't made it into viewer-release yet:
https://bitbucket.org/lindenlab/viewer-lynx/commits/aa6a749fef3cc10785c00957bf89c70d1e706ebe
SL-9975 All offline inventory offers from scripted objects are lost
 
However that is >NOT< a fix - while it now correctly shows the inventory offer, accepting it does nothing due to the fact that LLIMProcessing::processNewMessage is called with a session_id of NULL. That session_id is used as a transaction ID for accepting offline script offered inventory.
 
(The code for this is a couple of lines below the commit link above at line 871 / 889 - "info->mTransactionID = session_id;")
 
It looks like whoever implemented the offline IM cap realized that you need transaction IDs to accept the various offline messages (group invites and friend offers) and made provisions @ https://bitbucket.org/lindenlab/viewer-release/src/3176f61e1d84540ec10b33f32911c6ae58d596c8/indra/newview/llimprocessing.cpp#lines-1467 but forgot that scripted offline inventory needs a transaction id to accept it as well (as opposed to avie-to-avie inventory offers which don't need a transaction and immediately appear in inventory).
 
Looking at the inventory offer binary bucket there are a couple of UUIDs embedded in there, but none of them seem to represent a transaction ID so it doesn't seem fixable without additional work on the simulator (either a new cap to accept inventory or extending the binary bucket to include a transaction UUID).

@sl-service-account
Copy link
Author

Whirly Fizzle commented at 2019-06-14T20:56:24Z

This bug is listed as fixed in https://releasenotes.secondlife.com/viewer/6.2.1.526845.html
However, this bug is not fixed.
Post-fix, you now get the inventory offer presented at login, however, clicking Accept does not put it in inventory.
I refiled it in BUG-227179

@sl-service-account
Copy link
Author

AndreyK ProductEngine commented at 2019-06-17T08:36:52Z, updated at 2019-06-17T08:37:03Z

It is not fixed,name resolution was fixed viewer side, server part was moved to SL-10071.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant