• 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-13316
Type: Bug Bug
Status: Fix Pending Fix Pending
Priority: Critical Critical
Assignee: Unassigned
Reporter: Larissa Vacano
Votes: 45
Watchers: 14
Operations

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

Can't copy a copyable item while it is worn

Created: 08/May/09 02:13 AM   Updated: 05/Nov/09 01:11 PM
Return to search
Component/s: Inventory
Affects Version/s: 1.23 Release Candidate, 1.23
Fix Version/s: None

File Attachments: 1. File slviewer-0-v12340-AllowCopyWornAttachments.patch.bz2 (0.4 kB)

Environment:
RC Candidate 1.23.1-119104

Windows Vista x64 Professional
Geforce 8800 Nvidia
4 Gbyte Ram
Opteron 185 AMD Processor
Issue Links:
Duplicate
 
Relates
 

Last Triaged: 27/Aug/09 09:56 AM
Linden Lab Issue ID: DEV-32809
Patch attached: Patch attached


 Description  « Hide
I cant copy an attached item from inventory to another folder. The "copy" function is graylighted and not avaiable anymore. For example you attached a prim hair to your head and then you changed the size, colour or anything else with EDIT. If you do a mistake now, the attachment is lost. In before versions it was possible to copy the attachment to another folder and it was rescued again.
Now i need to copy it before i change something. That is not very comfy and a big backstep into handling attachments and inventory.

I need to have the copy / paste function back, so i can copy and paste attached items again.

Thank you very much. Please excuse my poor english, i am from germany. I try my best to describe the problem and i hope you can understand me. Thanks again

1. First i attach a prim hair or prim collar to my body (head/spine/pelvis)
2. I edit the attached prim at my body with EDIT (recolor / resize )
3. I did a mistake and messed the attachment up, its destroyed now
4. In before versions i just copy the messed up attachement from inventory to a fresh folder and then it was rescued
5. In RC 1.23.1-xxxxxxx i cant copy the attached Item anymore. The function is graylighted in menu
6. Now you need to copy any item before editing it and if you forget to copy it, its maybe destroyed forever

I need the copy / paste function of attached items back please.



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Ellla McMahon added a comment - 08/May/09 08:27 AM
Although not a complete solution to your issue, please see a possible work around in some situations; Knowledge Base article How to use Undo

Larissa Vacano added a comment - 08/May/09 08:29 AM
Hello, thank you very much i know the Undo function. But it doesnt help in some situations and not work correct. I really miss my copy function, its helpful for other operations and things too.

Moon Metty added a comment - 13/May/09 12:42 PM
Qarl removed the ability to copy worn items in an attempt to fix VWR-6110.
However, it didn't fix the problem of vanishing attachments, see Baron's repro at VWR_6110 and also VWR-12525, which seems to share the same root of the problem.

Maybe if that problem is fixed, the ability to copy worn items can be brought back.


Qarl Linden added a comment - 14/May/09 10:40 AM
hm - this is problematic. but first, let me see if i'm understanding you:

you wear some hair.

you edit the hair.

you copy the hair while it is being worn.

the new copy does NOT contain the edits you previously made.

hm - that sounds like incorrect behavior... probably the very same behavior that's causing content loss in VWR-6110...


Masha Eilde added a comment - 14/May/09 10:50 AM - edited
Qari, you have it a bit off.

The bug is this:

When an item in Inventory is worn (bolded, white), it CANNOT be copied. If you right click in the inventory list, the option to copy is greyed out in the context menu. If you press CTRL+C to copy then CTRL+V, nothing happens.

If you remove the item (unbolded, normal color), you can copy it from within the inventory just fine.

It's a pain because any of us who make edits to an attachment, like hair, are usually wearing it when we want to make changes. We go to make a copy for backup, then start editing the current copy. Right now, the attachment has to be removed first, which, if you're in public and want to sneak in some tweaks, can be a bit startling to others

Hope that clarifies!


Qarl Linden added a comment - 14/May/09 10:56 AM
aha. i think i got it now.

the problem is: copying a worn object is causing content loss. if you want all the programmatic details - i can happily share them with you - but they're quite tedious.

so, we've intentionally removed this functionality. i understand that it's annoying to temporarily remove your hair before copying it - but weighed against the threat of content loss, i think you'll agree this is the best action.


Ephyu Reino added a comment - 19/May/09 10:40 PM
It seems a lot of the changes to the new viewer are motivated by something like this:

"This button doesn't work, so let's remove the button."

Why does copying a worn object have to cause content loss?

As I understand it, when you attach an item, it fetches that item and attaches it. At that point, there shouldn't be a relation between the attached item and the one in your inventory, aside from highlighting it so you know it's attached. When you detach it, it should save in place of the old one. The expected behavior is that you can copy an already-worn object to get an older, "backed up" copy of it.

The issue isn't that it's an inconvenience to remove the object before copying it, it's that removing that object saves any bad edits that were made with no way to revert (since Undo is problematic and often messes an object up even worse). While people should make backups of objects before attaching them, if they plan on making edits, it often doesn't occur to them that a small edit might break their object until it happens, at which point there used to be a safe, easy way to restore it.


Qarl Linden added a comment - 20/May/09 11:38 AM
Ephyu - actually, that's not true. a worn object in your inventory is "connected" to the item in-world - as you change the item in-world, it changes in your inventory as well.

Ephyu Reino added a comment - 20/May/09 12:23 PM
As I said, "there shouldn't be a relation between the attached item and the one in your inventory."

If that's the case, how is the previous behavior explained, where copying a worn object reverted all changes made since attaching, as if you'd made a copy beforehand? I also know that even now, I can change an item that I'm wearing, take it off, put it back on, and have everything reverted, even if I WANTED to save those changes when I detached it.

Is there any reason for the worn object to be related to the one in inventory until detached (at which point it should reliably save, as if taking rezzed copy into its place)? The presumed benefit of having a worn object actively change the one in inventory is that things would be more reliably saved, but this benefit isn't seen. I also imagine that if worn objects truly do save all changes to inventory (or attempt to), that this would create a lot of unnecessary communication with the inventory servers.


Qarl Linden added a comment - 20/May/09 12:43 PM
Ephyu - yes, i hear what you're saying. the reasoning for this behavior (for better or worse) is for sim-transversal. anytime you move from sim to sim (via teleport, crossing, logout/login, etc.) your attachments are saved to your inventory for transmission.

imagine if you had to save your attachments every time you logged out.


Ephyu Reino added a comment - 20/May/09 01:11 PM
Wouldn't it be better to only save them in certain cases, rather than (supposedly) all the time?

I'm thinking on detach, on region crossing, on region shutdown/crash (when possible), logout, and maybe a few other cases, but shouldn't it be a case of saving and updating when needed, rather than constantly? And if it IS required that an inventory copy of the attachment always be preserved, wouldn't some kind of temporary "attached" assets be a better move, to prevent damage to the originals? I'd always thought region crossings were handled in such a way, having all your attachments saved as temporary assets for redownloading, rather than the original assets being modified.. but if it works that way, is this why going offworld, crossing regions, or teleporting during severe sim/asset server strain can result in destroyed attachments?


Kitty Barnett added a comment - 12/Jun/09 02:04 PM
blinks confuzzled

"a worn object in your inventory is "connected" to the item in-world - as you change the item in-world, it changes in your inventory as well."

When did that change?

As far as I always knew:

  • you wear an attachment
  • the sim fetches a copy of the data from the asset server
  • at this point the inventory item still points to the original asset
  • the attachment that is worn is an entirely new asset, exisiting solely on the sim your avie is currently on and gets transported from sim to sim directly
  • when you log off all attachments are reuploaded by the sim to the asset server and only then does the inventory item get updated to point to the new asset

Case in point: change an attachment, tp around as much as you want, end up on a sim that crashes => asset never gets reuploaded => when you relog the attachment will have the state it had when you last attached it (ie none of your changes since got updated)

"so, we've intentionally removed this functionality. i understand that it's annoying to temporarily remove your hair before copying it - but weighed against the threat of content loss"

I'm not sure if you're understanding why being able to copy/paste a worn attachment without first detaching it is entirely necessary.

Scenario:

  • you're wearing hair where you want to retexture the hair band
  • for whatever ever you do it wrong and rextexture the entire hair
  • you do NOT want to detach it because that will upload the asset with no way to restore the "original"
  • you definitely DO want to copy/paste the attachment because the new copy will point to the original asset
  • now you can detach the ruined original, it will upload to the asset server and the original inventory item points to the new asset
  • now you wear the new inventory item and it will attach a copy of the attachment that isn't ruined

This is vital functionality, please do not remove it.


Darv Linden added a comment - 15/Jun/09 11:46 AM
Changing title to be more clear...

Qarl Linden added a comment - 16/Jun/09 10:06 AM
> Case in point: change an attachment, tp around as much as you want, end up on a sim that crashes => asset never gets reuploaded => when you relog the attachment will have the state it had when you last attached it (ie none of your changes since got updated)

yeahbut, Kitty, this just isn't true. (i'm also wondering how you managed to test, given that it requires you crash a sim.

teleporting causes all attachments to resave (which is why teleporting when you have tons of attachments is so slow.) this also breaks your use case, in that you can't undo changes after a teleport. so what you're describing is a "super undo" which only works on attachments (not regular objects) and only works as long as you don't teleport. given how weird that is, i don't think it's something we want to support.

i understand that the behavior you describe (not being "attached to the inventory") might be the best way for the mechanism to work - however, that's not currently the case - and is a serious engineering task to change it now.


Qarl Linden added a comment - 16/Jun/09 10:13 AM
actually - i'm wondering why our undo function doesn't work on textures. it seems that this is the proper fix for your problem (and many others): make undo work for texture changes as well as position/rotation/scale changes.

Qarl Linden added a comment - 16/Jun/09 10:16 AM
> Wouldn't it be better to only save them in certain cases, rather than (supposedly) all the time?

maybe / probably. but like i said above - that change is a big engineering effort, for a sorta weird behavior. the best fix here is to let you use the ctrl-z button to undo bad changes - right?


Lisa Fossett added a comment - 16/Jun/09 01:04 PM
(a whole slew of editorial comments withheld)

Qarl, undo will only undo a few steps back in your editing, and then only if you have not closed your edit window. It will not fix something you did way back and discover it was wrong now that you've moved something else. And, if you have changed color or texture, undo will not work regardless (at least not for me). Furthermore, with your attachment highlighted while in edit mode it is sometimes virtually impossible to see the effects of your changes (especially texture and color changes) without exiting edit mode. (And this issue applies to non-attachment editing as well)

Please re examine this change.


Kitty Barnett added a comment - 16/Jun/09 01:20 PM - edited
"this also breaks your use case, in that you can't undo changes after a teleport."

Using 1.22:
1) rez a prim and take it to inventory
2) attach the prim
3) edit it and change it to a sphere
4) tp around to your heart's content without ever detaching the attachment
5) edit it and change it to a cylinder
6) copy/paste the attachment while worn
7) wear the copy

According to you it should be a sphere (the state it had at the time of the last teleport), but in fact if you actually try the steps you'll find that it's the original prim in the state it was when you first attached it.

If you attach the "original" it'll be a cylinder (the state it had at the time of detach), ie the asset UUID of the inventory item only gets updated at 1) detach or 2) log-off... with the understanding that the sim is in good working order (hence my comment to a sim crash, actually the far more common case is a sim with stuck pending downloads/uploads which doesn't upload the attachments in time and when you relog all changes have been lost, including any changes in script state which is very annoying).

Unless I'm missing something I don't see why the use case of copy/pasting a worn attachment to undo accidental (or the very frequent failure of the "Undo" feature to actually undo anything) is invalid. It does work.


Elbereth Witte added a comment - 16/Jun/09 01:56 PM
A more useful undo would definitely be appreciated I think.

Re: attachments and simcrashes
I noticed the same thing a year or two ago, reversion to initially worn state. If you take too close an interest in dying sims you'll find you don't need to actually cause a crash to test it.
(heck, I died in a crash at least three times in a row once rushing into a dying sim to stop someones multilayer physics log cabin from crashlooping a sim, and failed)


Qarl Linden added a comment - 16/Jun/09 02:15 PM
Kitty - but it DOESN'T work - the asset retains a pointer to the inventory location where it is worn - when copied both assets point to the same location, and when saved one of them is destroyed (the second overwrites the first.) that's the reason this was disabled, right?

i'll take your word for the TP issue - that behavior may have changed since last i looked. regardless, copying worn objects causes content loss, and there's no easy way to fix it. so given the choice of content loss or re-enabling this form of undo, i'm going to chose leaving this disabled.

i think you all would agree, right?

in a perfect world we'd fix this, i agree. but it's hard, we don't have infinite resources, so we make choices.


Kitty Barnett added a comment - 18/Jun/09 01:50 PM - edited
"Kitty - but it DOESN'T work - the asset retains a pointer to the inventory location where it is worn - when copied both assets point to the same location, and when saved one of them is destroyed (the second overwrites the first.) that's the reason this was disabled, right?"

But isn't that just a manifestation of an entirely unrelated bug?

1. rez a prim
2. attach the prim while it's rezzed
3. copy/paste the worn attachment
4. wear a different attachment
Result: the first copy vanishes and you're left only with the second copy

The problem doesn't seem to be step 3, but step 2.

Attaching a prim that's rezzed in-world is the step that frequently leads to content loss, and whether or not you copy it doesn't really seem to matter? llAttachToAvatar shows the exact same behaviour: half the time the inventory item doesn't actually make it into your inventory (or at least not in a way that will survive a relog) since it ends up orphaned outside of the avie's inventory.

If you relog, you still have the attachment right there, but it won't be anywhere in inventory until LL does its yearly "shake the inventory servers, see what comes out orphaned and restore it to the Lost and Found" routine which just seems that rather than things getting "lost", they simply end up "misplaced" in a way that can be fixed manually if need be.

I still don't see how the ability to copy a worn attachment leads to content loss in cases where the attachment was attached from inventory rather than world? Attaching in-world rezzed prims frequently does lead to content loss, so if anything should be fixed/disabled it should be that.


Qarl Linden added a comment - 18/Jun/09 02:01 PM
Kitty - hm. you have a good point. i'm digging into the code again soon... i'll get a definitive answer for you.

Ethari Hallstrom added a comment - 21/Jun/09 06:53 AM
Ohhh! I noticed this but didn't realise it was a 1.23 issue and disregarded it. I remember before when I used to work on HUDs, I'd realise I forgot to backup the original and then I'd copy it before the changes were saved by detaching, but I noticed in 1.23 it wouldn't let me copy it (I thought it was bizzare but didn't realise it was an actual issue at the time.)

Voting, as I just described, I've already been affected by this issue and didn't even realise it until reading about it here!


Kitty Barnett added a comment - 21/Jun/09 06:06 PM - edited
"Kitty - hm. you have a good point. i'm digging into the code again soon... i'll get a definitive answer for you."

Thankies for taking the time to look into this again, Qarl .

I'd also like to point to an issue that's related to this change that I ran into this weekend: I was working on adjusting a necklace that attached to chest and then wanted to make a copy to attach to spine.

Since I couldn't copy the attachment while wearing it, I detached it, copy/pasted and wore the "original" again to use as a reference for placing the spine one.

However, the "original" had reverted to it's pre-adjusted state (and so had the copy), because a detach followed by an attach don't seem to be "serialized" (= the attach can happen before the detach points the inventory item to the new asset). While this isn't a new problem, since you now have to detach, then copy and then reattach the original it's likely going to occur more frequently.

Ideally the viewer would wait for the sim's SaveAssetIntoInventory message before allowing a copy operation and before allowing you to reattach the item because any kind of lag will result in either copying or attaching a previous version and loosing any changes between the last attach and last detach.


Strife Onizuka added a comment - 22/Jun/09 06:12 AM
Historically (I'm talking dark ages), when a sim crashed it would eat attachment edits... heck it might even eat regular object edits. It was annoying as heck if you were writing scripts. It was especially annoying if your script triggered the sim crash. Good times. ^_^

Henri Beauchamp added a comment - 23/Jun/09 05:42 PM
Attaching a patch to revert to pre-v1.23 behaviour and allow to copy worn attachments.

Granted, the copy is always the copy of the attachment as it was before being worn, but this quirk was actually used by many power-users (me included) as an "undo" feature (i.e. when you mess up something while editing an attachment, or when the Mono engine fails to deserialize the scripts properly on rezzing, you still can recover the untouched attachment by copying it).

Qarl, I do understand your point of view (possible content lost, though as long as the original attachment is not deleted, there is no loss at all, just possibly outdated copies), but removing such a feature is not only annoying for the mundane users (who will not even modify their attachments but still want to be able to copy a bunch of worn items into another outfit folder), but also for the power users. I do need this feature or another mean to undo the modifications on a worn attachment.

Beside the reversal patch I attached, other possibilities would be:

  • warn the user when they try and copy an attachment that was modified since it was worn.
  • add a debug setting to allow to switch on or off (off being the default) the copy of worn attachments.

The attached patch will be used in the next Cool SL Viewer release.


Sylvie Grizot added a comment - 29/Jun/09 12:42 AM
Henri explains the issue well - power users are missing their "undo" feature.

Possibly related, I came across a blog post http://vextramessing.blogspot.com/2009/06/nice-little-secret.html which talks about a bug/issue:

"...1) 'wear' an object (such as on your right hand, which is the default wearing location), then
2) add contents to it,

... it will NOT update it's permissions to reflect the permissions of the added contents (and until it is rezzed will reflect the permissions of the object before you put the new contents in)!

So, you could, for example, make an object that is transferable, and/or copyable, but which would lose these permissions after it's rezzed on the ground by someone you give it to (or someone they give it to)..."


Henri Beauchamp added a comment - 29/Jun/09 10:28 AM
@Sylvie

This security issue has been solved in the recent server versions (IIRC it was solved in v1.25). It is now impossible to add no-tfr or no-copy items to the contents of a tfr-ok or respectively copy-ok item which is attached to your avatar.


Larissa Vacano added a comment - 29/Jun/09 11:50 PM - edited
Well, i am using the recent version of the viewer now. And the copy function is still without any function. I am using subfolders with my fav. outfits and to do that i really need the copy function back.
Example:
I am exploring my inventory (15.000 Items) and i did a nice combination of clothes and attachments. Before the copy function was removed, i typed "worn" into the search window of my inventory. Now i could see all my actually worn items, attachments and clothes.
With old viewer i just drag them, copy them, and paste them to the new subfolder of my outfits. Done ...
Now i cant do that anymore. I need to detach first (btw i hate the new pie menu too, where is my detach button now) and after detach i can copy it to the subfolder. But if i detach it, its not worn anymore, so the search function "worn" in my inventory browser dont work anymore too and the item is gone. I need to search it again. This is so bad, i really cant work with that new viewer. So i switched to snowglobe, in the hope to get my copy function back, but its the same problem. After 2.5 years loyal using the original LL Viewer, today i will switch to 3rd party Browser and give up the 1.23.x viewer of LL.
For me its so sad, i am a heavy power user and highly professional in SL and i need this function so much.
@Qarl, i tried different ways to provokate an inventory loss, like you described. I never had an inventory loss, the only way you can loose parts of your inventory is with "No Copy" items. You know how to do that

Please give us the copy function back.

Thank you very much
Larissa


Moon Metty added a comment - 30/Jun/09 06:37 AM
Larissa, your comment made me think ...

It's still possible to make a copy of a worn item, using the "Make Outfit" feature in edit appearance-mode.


Argent Stonecutter added a comment - 09/Jul/09 07:04 PM
OK, I opened another JIRA on this. I'm closing it and putting the description here.

Qarl: the behavior you're saying is strange and unnatural is a normal and routine part of my second life and I want it back.

The data loss scenarios I've seen are NOT due to copying something while worn, they're due to WEARING a copy of something without detaching the original, because different mechanisms of detaching objects work differently. You can lose content by attaching a second object to the same point as a modified attachment without ever having copied any attachments, anywhere. This needs to be fixed so that no matter HOW you detach an object, it's detached, atomically, and completely, before anything else is done with that attachment point. It doesn't need to be partially fixed by breaking other stuff.

Per VWR-6110, the ability to copy an attachment while you're wearing it has been removed from viewer 1.23.
This capability is absolutely necessary to recover from problems caused by the unreliable "undo" operation on attachments.

In 1.22 and earlier, I have to go through this process at least once a week:

1. Move the wrong prim.
2. Hit undo.
3. Half the prims in the attachment go haywire.
4. Go to inventory, copy attachment, paste it back in the same folder.
5. Detach and delete original.
6. Attach new copy.
7. Continue working.

As far as I'm concerned, removing this capability is a showstopper for upgrading beyond 1.22.


Argent Stonecutter added a comment - 09/Jul/09 07:07 PM
Raising to "critical" because this is the final straw for me, there's no way I can go beyond 1.22 without this being fixed.

Aphrodite Atlas added a comment - 17/Jul/09 06:57 AM
Prior to the last 1.27.nnn server roll this week I was able to right-click/copy/paste items in inventory while the items are attached.

Today on a 1.27.latest.borkage SIM the only right-click menu items I have (NOT pie menu, I'm in the inventory pane) are DETATCH and PROPERTIES. I have verified in four different viewers that my menu appears to be broken.

1. Attach an item (skirt, for example)
2. See the item needs to be adjusted
3. Go to inventory, right-click item
4. Formerly choose COPY and then PASTE from the mouse menu
5. Go edit the attached item, secure in the knowledge there is a backup in case of gross destruction of the worn copy

This has nothing to do with on-the-fly editing and seems to have been broken in the last server roll.

Argh.


Henri Beauchamp added a comment - 17/Jul/09 10:38 AM
@Aphrodite

This has nothing to do with the sim server version, but with the viewer: v1.23 forbids copying attached items. Simply use a v1.22.11.0 viewer, or get the Cool SL Viewer v1.23 (http://sldev.free.fr/) and you will be able to copy attached items, including in sims running v1.27


Ezian Ecksol added a comment - 21/Aug/09 02:24 AM
If you have the situation that you changed e.g. a script in a HUD, saved it but then you recognize that you want to fallback to the previous version, a work-around is:

just let the viewer crash (kill it by TaskManager). In most cases the changes of the object are NOT saved to asset server. (btw this behaviour is in my eyes a bug, again, and is partially described in VWR-15236).


Rob Linden added a comment - 03/Sep/09 09:56 AM
This might be a good candidate for Snowglobe

Rob Linden added a comment - 05/Nov/09 10:32 AM
This is fixed on the server side in version 1.32, so the viewer patch will not be necessary for much longer

Moon Metty added a comment - 05/Nov/09 10:39 AM
That's good news Rob, thanks for the update.

Henri Beauchamp added a comment - 05/Nov/09 12:33 PM
The attached patch removes the code that was added to v1.23 to prevent any worn item to be copied.

This is NOT a server side issue, and even with v1.32 servers, you are still unable to copy a worn attachment with the official v1.23.5 viewer.

The patch is therefore still needed (tested and verified today with v1.23.5.136262 viewer and v1.32.0.136920 sim server).


Moon Metty added a comment - 05/Nov/09 01:11 PM
I think Rob means the patch that disabled copying worn items in the inventory dropdown.
It's still possible to copy attachments using "Make Outfit" in edit appearance mode.