• All submissions to this site are governed by Second Life Project Contribution Agreement. By submitting patches and other information using this site, you acknowledge that you have read, understood, and agreed to those terms.
Issue Details (XML | Word | Printable)

Key: VWR-12525
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Critical Critical
Assignee: Andrew Linden
Reporter: Strife Onizuka
Votes: 188
Watchers: 26
Operations

If you were logged in you would be able to see more operations.
1. Second Life Viewer - VWR

llAttachToAvatar can cause parentless attachments that can subsequently crash the client when selected

Created: 21/Mar/09 12:21 PM   Updated: 28/Oct/09 12:05 AM
Return to search
Component/s: Crashes, Inventory, Scripting
Affects Version/s: 1.22, 1.23
Fix Version/s: None

File Attachments: None
Image Attachments:

1. Snapshot_184.png
(1.21 MB)
Environment:
Cool Viewer 1.22.11 (0) Mar 18 2009 14:23:29 (Second Life Release Candidate)
RestrainedLife viewer v1.16.1 (CV 1.22.11.0)

CPU: AMD (Unknown model) (2109 MHz)
Memory: 2046 MB
OS Version: Microsoft Windows Vista Service Pack 1 (Build 6001)
Graphics Card Vendor: NVIDIA Corporation
Graphics Card: GeForce 9300 GE/PCI/SSE2/3DNOW!
OpenGL Version: 3.0.0
Issue Links:
Duplicate
 
Parent/Child
 
Relates

Last Triaged: 25/Mar/09 08:30 AM
Linden Lab Issue ID: DEV-29573
Linden Lab Internal Branch: maint-server-11


 Description  « Hide

Sometimes attachments put into the wearer's inventory by llAttachToAvatar will become 'parentless' – that is, appear below the Library (outside the wearer's inventory) or nowhere at all. Detaching these will work, but it may cause the viewer to crash afterwards.

Information Originally posted in the caveats section on llAttachToAvatar by Crystals Galicia

The crashes usually don't happen on detach, they happen if the person tries to select them in inventory.

Just wearing an object rezzed inworld can cause this also, not just using llAttachToAvatar


Baron Nowhere repro of this from VWR-6110:

baron nowhere added a comment - 10/May/09 09:08 PM
This is still an issue in 1.23 [Second Life 1.23.1 (119104) May 4 2009 17:53:10 (Second Life Release Candidate)]

I reproduced it 7x today to ensure I understood what was going on. It repeats every time with this procedure:

1. Have another avatar create an object with default permissions ( no copy / no modify / yes transfer )
2. Give the object to a second avatar
3. Have the 2nd avatar rez the object on the ground
4. Right click on the object and choose Wear (Right Click > More > Wear)
5. Detach the object (Right Click > More > Detach)
6. Open Inventory, scroll all the way to the bottom, there should be an object outside of any folder
7. Click on the object and attempt to drag it inside of the inventory

As soon as you start the drag, the client crashes.

On reload, the object is lost from inventory.



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order

Crystals Galicia added a comment - 24/Mar/09 12:32 PM - edited
I was about to put this bug up, but I see I've been beaten to it w!

Vote and watch, thanks for putting it up for me.

EDIT: And I'm changing the title a bit. The crashes usually don't happen on detach, they happen if the person tries to touch them in inventory.


Strife Onizuka added a comment - 25/Mar/09 03:51 AM
Crystals, what client version are you using? Could you edit this issue and fill in the "Environment" field?

Strife Onizuka added a comment - 25/Mar/09 05:00 AM
When an attachment gets screwed up this way, does it's scripts still work?

Crystals Galicia added a comment - 30/Apr/09 04:03 PM
Yeah, umm, I forgot this was here. ^^;

I filled in my environment info, but it doesn't really matter, I have friends using old and official viewers that report the same results. And yes, the objects themselves are unaffected by becoming parentless, their scripts still function properly. It's trying to left or right-click them in inventory that causes problems.


Andrew Linden added a comment - 01/May/09 03:35 PM
Has anyone been able to reproduce this lately? Louise Linden was able to reproduce this in late March but failed to reproduce in early April. I just tried to reproduce it and failed.

Crystals Galicia added a comment - 02/May/09 03:47 PM - edited
Andrew: This is still a daily occurrence for me. I have a bondage restraint HUD that rezzes other restraints, which in turn ask to attach to me. Unfailingly, they ALWAYS disappear if I relog still wearing them. Perhaps that's what causes it?

Edit: And by 'disappear', I mean from inventory, not from my avvy.


Andrew Linden added a comment - 04/May/09 08:46 AM
Hrm... an item that reproduces the bug. I'm tempted to try it, but am not very interested in bondage restraints. If anyone has a simple less restrictive object that reliably reproduces the problem then they can give me a copy and I will use it to try to reproduce the problem and then figure out how to fix it.

Crystals Galicia added a comment - 05/May/09 08:39 AM - edited
laugh No, I'm not expecting you to go that far. I'm still having a little trouble repro-ing, but I think it has to do with how long it's worn, perhaps – I've only tested a few seconds. I'll try something longer, hopefully I can figure out how the restraint was doing it.

EDIT: About ten minutes after this comment, I successfully reproduced with this script (follow commented instructions):

//How to use:
//1. Make this script No-Copy/No-Mod/Yes-Trans
//2. Make the object containing it Yes-Mod/Yes-Copy/No-Trans
//3. Give the object to another account, so that it becomes no-trans.
//4. Rez and allow it to attach. When it detaches automatically, try clicking it in inventory. It will disappear to below the Library.

default
{
    on_rez(integer ss){llRequestPermissions(llGetOwner(),PERMISSION_ATTACH);}
    run_time_permissions(integer perm){if(perm&PERMISSION_ATTACH){llAttachToAvatar(ATTACH_RHAND);llSleep(10);llDetachFromAvatar();}}
}

It requires an alt for step 3, or a friend. You won't be able to repro yourself (because you have it full-perms as creator), but anyone you give it to should see what I'm talking about.


arton rotaru added a comment - 10/May/09 09:22 PM - edited
I noticed this issue today, but with a 'little' difference. It happend to me with a no copy object, that luckily could be redeliverd from the creator. Because it doesn't crash my viewer at all, but after detach to inventory, the object moved below the Library folder and it won't rez anymore. After I relog, the object is deleted completely from inventory. Tested with and without clearing cache.

Tested it then with Crystals Script above, a no mod,no copy cube and send it to an Alt, and the same happend again. This make content lost permanently in my case.

Official Second Life Viewer 1.22.11 . Happend on three different regions.

Edit: ok, saw the related entrys now and go vote on them, too.


Moon Metty added a comment - 10/May/09 09:54 PM
Please note Baron Nowhere's post on VWR_6110

llAttachToAvatar and wearing from the ground appear to have the same root problem.


Thomas Shikami added a comment - 17/May/09 11:45 PM - edited
This bug seems to be related to, that the object has been in a specific folder before. The sim remembers the folder it was rezzed from, but assets also have a folder-id stored in them. Reproducing this bug needs to be done with an object, that has been last rezzed from a folder that doesn't exist in your own agent inventory, thus Crystals' mentioning to give it to someone else to repro. Maybe needs to be rezzed from an object as it happens with some toys

The bug can be prevented when you got the item into inventory and while it appears, you move it into another folder before having it detached by script.

Time seems to be a factor as well, so adding a bunch of complex mono scripts would make this bug happen more likely.


Thomas Shikami added a comment - 18/May/09 12:01 AM - edited
After some thinking,

derez is something that happend on detaching and taking

when taking objects, they are moved back to the folder they were rezzed from
should this feature happen during derez, the shared code of take and detach, it may try to move the item into a non-existing folder

if derez exists in that form, I'd point out, that the sim's idea of folder_id for the root prim of a linkset should be changed during attach to have the folder_id of the Object folder, so derez would simply move it to the Object folder, having no effects then

uhm, alternatively, it could be just because the item is no modify, that it's moved to NULL_KEY folder


Andrew Linden added a comment - 18/May/09 11:19 AM
Crystals' recipe for reproducing this bug works. I'm going to copy it to the internal version of this bug.

Nemesis Greatrex added a comment - 20/May/09 05:59 PM - edited
I've had several different HUD-spawned attachments, and a few non-HUD attachments as well, do this to me on Detach... they appear BELOW the "My Inventory" and "Library" folders, and I can't delete or move them. On a relog, they are no longer in that wierd location though.

I'm using the official Second Life 1.22.11 (113941) Viewer

It's spooky to see an Object appear in an "impossible and inaccessible" location like that...


shamus carter added a comment - 29/May/09 03:05 AM
"I've had several different HUD-spawned attachments, and a few non-HUD attachments as well, do this to me on Detach... they appear BELOW the "My Inventory" and "Library" folders, and I can't delete or move them. On a relog, they are no longer in that wierd location though.

I'm using the official Second Life 1.22.11 (113941) Viewer

It's spooky to see an Object appear in an "impossible and inaccessible" location like that..."
I have had this happen as well and whats even more freaky when you try to drag the item to your trash the black circle with a dash tho it icon comes up and the viewer crashes.


Lulu Ludovico added a comment - 07/Jun/09 05:00 PM
Bumped the priority up to Critical as this is a reproduceable crash, with follow-on consequences of content loss .

Salid Sewell added a comment - 24/Jun/09 01:46 AM - edited
The behaviour in 1.23.4 is still not correct:
(edit: i didn't see that there was already a usable repro above, so just stating that it still happens with 1.23.4)

The avatar who reproduces this is not the creator of the item and item is yes-copy/no-transfer/no-modify.
(if it matters: the creator of the item had it in the MyInventory->Objects-folder before giving it to the test person.
Test person now:
1. rezzes the item inworld (on the ground)
2. this item asks for permission_attach
3. when permission is granted it attaches,
the item appears in the MyInventory->Objects, so far correct.
4. if test person now detaches the item, it moves out of the Objects-folder to below the Library-folder.

This out-of-all-folders-item cause these problems:

  • The attempt to drag'n'drop the item into any folder/trash results in a crash.
  • After a relog the item has disappeared from inventory. (even if it's still worn it is not visible in inventory or the "Attach to..."-menu.

Keiki Lemieux added a comment - 26/Jun/09 07:05 AM
Please note the other reproductions of this in the comments of SVC-2956 and VWR-6110. In those reproductions you have essentially the same thing except that instead of using llAttachToAvatar, the user is wearing or attaching the item directly from the ground.

One other thing of note that keeps coming up from my customers is that existing items can lose their place in the inventory. Try these steps to compare:

1. Create a new object and name it "Test"
2. Create a new folder in your inventory in the "My Inventory" folder and name it "Test" as well.
3. Take the Test Object into your inventory and then move it to the Test Folder.
4. Drag the Test Object onto the ground again.
5. Drop a (no copy) item into the Test Object (Please note, you will lose this item).
6. Right click on the object and choose Attach to Left Hand.

At this point the object appears in the Object folder rather than the Test folder where it is from.

7. Detach the Test object.

Just as in other reproductions, it moves out of the object folder to the root directory. Any attempt to move it causes a crash and it disappears when you next log in.

I think it's interesting that if you skip step 5 and simply wear it from the ground, it goes to the Objects folder, but it stays there after it detaches. There is something critical happening when you add a no copy item to the Object. This particular property is making this bug very nasty, causing people to lose HUDs with hundreds of no copy items inside. This bug should be getting the highest priority. It's been around in some form for at least a year. I have personally helped several hundred people who have lost items from this bug.


Salid Sewell added a comment - 27/Jun/09 02:36 AM
Today it got even worse.
An object i have full rights on (i'm creator of it) moved into the root-folder, below Library.

I'm not able to reproduce at the moment, but will keep an eye on it.


Keiki Lemieux added a comment - 27/Jun/09 12:54 PM
Please note that if you lose anything important from this bug, you can ask Linden Lab support to retrieve it for you. They have a fix they can run on your account which should retrieve things lost from this bug. More details here: http://imakehuddles.com/wordpress/tag/lost-inventory/

Kimmie Sweetwater added a comment - 30/Jun/09 11:03 AM
I recently purchased a puppy on here, and I wore it, and then detached it, and when it was detached it disappeared and then I crashed. I cannot find it anywhere in my inventory.

Any ideas??


Andrew Linden added a comment - 28/Jul/09 04:12 PM
I've got a server-side fix for this (and also VWR-6110), however it missed the deadline for inclusion in server-1.27.1. If we deploy a server-1.27.2 it will probably be in that, otherwise it would go into server-1.30. My fix doesn't address the viewer crash problem, but instead fixes the server behavior that is tickling the viewer crash bug.

This bug only affects no-modify objects, but causes no-copy objects to be "lost". Until this fix is deployed the workaround for VWR-6110 problem would be to NEVER attach from in-world – always first take to inventory, then wear from inventory. Unfortunately that does not work for llAttachToAvatar() which only functions for in-world objects.

I believe, the "lost" inventory items are not eliminated from the inventory database, but instead have an invalid "location" record and so don't show up in the inventory view. We have a automatic script that runs in the background and tries to find such objects and restore them to inventory, however I have reason to believe this automatic script is malfunctioning because I scanned Crystals Galicia's inventory and found 112 items that have been lost – I doubt Crystals lost all those today. I'm going to try to figure out why the repair script is broken.


Andrew Linden added a comment - 28/Jul/09 05:03 PM
Keiki Lemieux is correct. There is a script that can find these lost items in your inventory. I looked into it and found that the script takes too long per account – I estimate it would take at least 278 days to complete!

In the meantime (until my fix is deployed) if you have lost inventory items send me an IM asking to have them found and I'll run the scan on your account. Any lost items would show up in your "Lost and Found" folder.


Crystals Galicia added a comment - 28/Jul/09 05:46 PM
Andrew: Great news that a fix has been made ^^. I'm not really surprised that so many items were lost in my own inventory, because after I figured out that this bug was happening, I tended to ignore it – it was almost convenient that the HUD's rezzed restraints were deleting themselves when I wasn't using them anymore. That could end up being a feature. In all seriousness, nothing was restored to my Lost and Found, at least not that I see. Did you attempt to restore them, or just run the check?

Satomi Ahn added a comment - 29/Jul/09 05:51 AM
Oh well, my little story that doesn't help this precise bug resolution:
I stumbled first upon this issue while trying to understand how restraint HUDs that do not remain in inventory were scripted.
Fortunately, I quickly figured out that it was actually a bug, although very useful in that case, as it prevents littering in the inventory.

So I don't know... would it be possible to provide a mean (this time intended and documented) to attach something to avatars without adding it permanently in their inventory?


Andrew Linden added a comment - 29/Jul/09 08:41 AM
@Crystals Galicia, I did try to recover your objects. That they aren't in "Lost and Found" is odd. I wonder if the script is properly marking that folder in the db as "changed", or if they are going somewhere else. I'll have to investigate in more detail.

@Satomi Ahn, in theory it would be possible to add such a feature (temporary attachment doesn't go to inventory). Perhaps it is possible today by making a no-copy object that calls llDie() upon login after a logout? Dunno, I haven't tested it.


Andrew Linden added a comment - 29/Jul/09 09:04 AM
I just tested --> Indeed, the objects are going into "Lost and Found" however it seems that the folder is not getting flagged as "changed". There are two workarounds for this:

(1) Intentionally lose some object in-world such that it gets sent into your "Lost and Found" folder. This will flag the directory as having changed and your SL client will download the new list of contents.

(2) Clear your cach via the user iterface (EditMenu->PreferencesOption>NetworkTab->ClearCacheButton) and then logout/login.


Strife Onizuka added a comment - 29/Jul/09 12:08 PM
Andrew, might I point you to SVC-2454, SVC-2281 & SVC-2282, all which deal with the issue of different ways of detaching attachments.

Quicksilver Darkfold added a comment - 11/Aug/09 05:20 PM
Dear Andrew I attached a new pet kitty to my avatar, when I hit detach it disappeared totally, and is nowhere to be found! How do I get the scan done to see if it can be returned to me? poor wee kitty cat !
thanks for any help =)

Andrew Linden added a comment - 11/Aug/09 06:02 PM
Quicksilver Darkfold, I ran the "find_lost_inventory" script --> it found and returned one item. Note the workarounds (1) and (2) above for the stale "Lost and Found" cache problem.

Andrew Linden added a comment - 08/Sep/09 07:40 AM
Good News: the fix for this has been merged into server-1.30.

Bad News: the deploy of server-1.30 has been delayed one week. It should start deployment around the middle of next week (probably on Wed. Sept. 16).


Andrew Linden added a comment - 23/Sep/09 08:17 AM
This one was fixed in server-1.30, and is actually a dupe of VWR-6110.

Strife Onizuka added a comment - 23/Sep/09 02:44 PM
After a while it did become apparent that it was a dupe; but there were different repro's and multiple bugs. I just hope all the duplicates are found and closed externally and internally.