• 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-2060
Type: Bug Bug
Status: Open Open
Priority: Critical Critical
Assignee: Unassigned
Reporter: Lex Mars
Votes: 73
Watchers: 21
Operations

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

llMapDestination (and possibly SLURLs) sometimes fail to use the target vector data

Created: 06/Aug/07 02:29 PM   Updated: 06/Jun/09 12:25 AM
Return to search
Component/s: Scripting
Affects Version/s: 1.18.1.2, 1.21
Fix Version/s: None

Issue Links:
Duplicate
 
Relates

Last Triaged: 07/Apr/09 09:11 AM
Linden Lab Issue ID: DEV-30253


 Description  « Hide
When using a llMapDestination, the target vector will sometimes be ignored by the client and will use the avatar's current position in the current sim.
The destination sim will be set, however. Only the position within the destination sim is incorrect.

I have been unable to determine a repro procedure for this bug, as it is intermittent.
At this point, it appears to crop up most frequently on the first use of llMapDestination in the session.

SLURLs might also be affected, however, I have not tested them myself.

========-

In dupe issue VWR-2057, Doran Zemlja reports:

Sometimes the map displayed when clicking a secondlife:// url does not load the x/y/z coordinates from the url, but instead displays the x/y/z coordinates from the last time I used the map. I also get similar broken behavior with llMapDestination().



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Lex Neva made changes - 08/Aug/07 09:24 AM
Field Original Value New Value
Link This issue Relates to VWR-2057 [ VWR-2057 ]
Ann Otoole added a comment - 10/Aug/07 10:29 AM
confirmed this is a problem. first call to llMapDestination uses random data for X and Y coordinates. Second call is correct.

Except one case. When the X and Y coords are 128, 128 then it gets it right the first time.

this problem appeared with the voice enabling on main grid.

This problem needs to be fixed not ignored.

This works everytime:
default
{
state_entry()

{ llSetText("KDC Main Shop", <1.0, 1.0, 1.0>, 1.0); }

touch_start(integer total_number)

{ llMapDestination( "dead realm", <128, 128, 602>, <0,0,0>); }

}

this always fails on first activation:
default
{
state_entry()

{ llSetText("Fetish Box", <1.0, 1.0, 1.0>, 1.0); }

touch_start(integer total_number)

{ llMapDestination( "Ekota", <110, 83, 102>, <0,0,0>); }

}

i have a shopping directory panel with 60 of these buttons for public convenience and am working on other things that use this call so i need it fixed.

If a linden is assigned to work on this then i will assist with recording where these calls randomly go to on first calls to see if there is a commonality somewhere. As it is I see it is unassigned thus is not being looked at by anyone but people that actually use SL.


Ann Otoole added a comment - 10/Aug/07 10:39 AM
Consider for a moment that this defect is changing hard coded vector data in real time. How many other vector data instances are being scrambled across SL? if one can be scrambled then any can since as far as I know this function was not touched in any update. So there is something more serious going on here that can have a lot of implications for anything involving vector data.

Ann Otoole added a comment - 10/Aug/07 03:13 PM
Considering the troubleshooting done by Adriana Caligari and the fact her use of llMapDestination is not affected by this defect I tried the following successful workaround below that uses declared variables instead of passing hard coded values which is better programming anyway. Note the double use of variable dest instead of the <0, 0, 0> for the unused point at coordinate (thanks Adriana!).

code follows:

vector dest;
default
{
state_entry()

{ llSetText("Death Arena", <1.0, 1.0, 1.0>, 1.0); }

touch_start(integer total_number)

{ dest = <29, 162, 29>; llMapDestination( "The Immortal Realm", dest, dest); }

}


Daedalus Young added a comment - 13/Aug/07 08:28 AM
I'm seeing this happening with SLurls too. I click the Teleport button on the slurl.com page, then SL sets the correct destination region, but not the position. I have to click the teleport button again to set the correct position to tp to.

Torley Linden added a comment - 13/Aug/07 09:49 AM
This sounds clear enough to repro; I hope to have a look soon (since one of my areas of focus is Grid exploration).

Torley Linden made changes - 14/Aug/07 01:51 PM
Link This issue Relates to VWR-2057 [ VWR-2057 ]
Torley Linden made changes - 14/Aug/07 01:53 PM
Link This issue is duplicated by VWR-2057 [ VWR-2057 ]
Torley Linden added a comment - 14/Aug/07 01:54 PM
@Daedalus: I've seen this sporadically but have been unable to come up with a solid repro (so far). Most of the time it works for me, but the occasional times it doesn't is annoying.

@Ann: Your first two scripts didn't repro for me.

Hopefully we can have a solid repro so we can fix it soon. I'll import this.


Torley Linden made changes - 14/Aug/07 01:55 PM
Description When using a llMapDestination, the target vector will sometimes be ignored by the client and will use the avatar's current position in the current sim.
The destination sim will be set, however. Only the position within the destination sim is incorrect.

I have been unable to determine a repro procedure for this bug, as it is intermittent.
At this point, it appears to crop up most frequently on the first use of llMapDestination in the session.

SLURLs might also be affected, however, I have not tested them myself.
When using a llMapDestination, the target vector will sometimes be ignored by the client and will use the avatar's current position in the current sim.
The destination sim will be set, however. Only the position within the destination sim is incorrect.

I have been unable to determine a repro procedure for this bug, as it is intermittent.
At this point, it appears to crop up most frequently on the first use of llMapDestination in the session.

SLURLs might also be affected, however, I have not tested them myself.

-=-=-=-=-=-=-=-=-

In dupe issue VWR-2057, Doran Zemlja reports:

Sometimes the map displayed when clicking a secondlife:// url does not load the x/y/z coordinates from the url, but instead displays the x/y/z coordinates from the last time I used the map. I also get similar broken behavior with llMapDestination().
lindenrobot made changes - 14/Aug/07 01:55 PM
Linden Lab Issue ID SL-51900
Ann Otoole added a comment - 14/Aug/07 06:13 PM
those are not repros but workarounds. but there is a better workaround down below.

here is the code that fails:
default
{
state_entry()
{ llSetText("Death Arena", <1.0, 1.0, 1.0>, 1.0); }

touch_start(integer total_number)
{ llMapDestination( "The Immortal Realm", <29, 162, 29>, <0, 0, 0>); }
}

Note the use of a hard coded coordinate set.
Another stranger thing going on now is the hard coded coordinates mysteriously change in the scripts themselves.
How this can happen is beyond my comprehension. But it is happening from time to time.
Sometimes it is the vector data and sometimes the region name that changes by itself.

Anyway...

The best workaround so far:

vector dest;
default
{
state_entry()
{ llSetText("Death Arena", <1.0, 1.0, 1.0>, 1.0); } }

touch_start(integer total_number)

{ dest = <29, 162, 29>; llMapDestination( "The Immortal Realm", dest, dest); llMapDestination( "The Immortal Realm", dest, dest); }

}

Note the double call to llMapDestination that mimics the manual process of trying to get a slurl or llMapDestination call to product the correct results by using it twice in a row.

Who knows. Maybe someone saw this and slipped in a fix on you Torely.


Strife Onizuka made changes - 15/Aug/07 03:59 PM
Link This issue Relates to VWR-1405 [ VWR-1405 ]
Ann Otoole added a comment - 16/Aug/07 05:06 AM
worth a note to say that the code that fails does bring up the map. look closely at the coordinates.
if they do not match what is in the script then you just repro'd the defect.

Fluf Fredriksson added a comment - 16/Aug/07 05:35 AM
I'm getting this roughly 75% of the time when I click on a SLURL in the chat history window.
It doesn't help that there's also a scroll bug at the moment! So:

Scroll back up chat history window to SLURL
Click SLURL
Observe - map opens with right region but wrong coordinates
Raise chat history window which has now sprung back to most recent line
Scroll back up chat history window to SLURL
Click SLURL
Observe - map updated with correct coordinates

I'll try and find an entry on the chat history jumping back to line 1 somewhere else in the JIRA.


Torley Linden made changes - 21/Aug/07 10:32 AM
Link This issue Relates to VWR-1405 [ VWR-1405 ]
Torley Linden made changes - 21/Aug/07 10:33 AM
Link This issue is duplicated by VWR-1405 [ VWR-1405 ]
Torley Linden added a comment - 21/Aug/07 10:34 AM
Also see Hugo Dalgleish and others' observations in VWR-1405.

Torley Linden made changes - 21/Aug/07 10:34 AM
Component/s Scripting [ 10030 ]
Component/s User Interface [ 10033 ]
Torley Linden added a comment - 08/Oct/07 12:43 PM
This repro works reliably for me:
  • Observe: On the World Map, the coordinates say Rizzo (0, 0, 90) (or something close to that).
    = Expected: Coordinates should be Rizzo (134, 120, 128).
    > Workaround: Click the "Teleport Now" button on the SLURL webpage twice.

Torley Linden made changes - 08/Oct/07 12:43 PM
Assignee Jake Linden [ Jake Linden ]
Rifkin Habsburg made changes - 12/Oct/07 08:18 AM
Link This issue is duplicated by VWR-1405 [ VWR-1405 ]
Rob Linden made changes - 22/Dec/07 01:41 AM
Workflow jira [ 14443 ] jira-2007-12-21 [ 22898 ]
Rob Linden made changes - 22/Dec/07 02:01 AM
Workflow jira [ 22898 ] jira-2007-12-21 [ 24018 ]
Rob Linden made changes - 22/Dec/07 03:01 PM
Workflow jira-2007-12-21 [ 24018 ] jira-2007-12-22 [ 30643 ]
Rob Linden made changes - 22/Dec/07 03:23 PM
Workflow jira-2007-12-21 [ 30643 ] jira-2007-12-22 [ 32341 ]
Rob Linden made changes - 22/Dec/07 08:07 PM
Workflow jira-2007-12-22 [ 32341 ] jira-2007-12-22a [ 37538 ]
Rob Linden made changes - 22/Dec/07 08:30 PM
Workflow jira-2007-12-22 [ 37538 ] jira-2007-12-22a [ 38928 ]
Rob Linden made changes - 22/Dec/07 09:23 PM
Workflow jira-2007-12-22 [ 38928 ] jira-2007-12-22a [ 41451 ]
Rob Linden made changes - 22/Dec/07 09:45 PM
Workflow jira-2007-12-22 [ 41451 ] jira-2007-12-22a [ 42797 ]
Torley Linden made changes - 18/Jan/08 05:42 AM
Linden Lab Issue ID SL-51900 VWR-8982
Celierra Darling added a comment - 18/Mar/08 12:03 AM
removed "VWR-8982" from LLID field, this isn't an internal ID...?

Celierra Darling made changes - 18/Mar/08 12:03 AM
Linden Lab Issue ID VWR-8982
Celierra Darling added a comment - 18/Mar/08 12:04 AM
undo, I'll leave it alone...

Celierra Darling made changes - 18/Mar/08 12:04 AM
Linden Lab Issue ID VWR-8982
mcp Moriarty added a comment - 19/May/08 04:29 PM
I've tried the fix as noted here, it works. The coordinates appear correctly.

The problem I have now is the 'Teleport' button is always disabled. But if I click somewhere on the map so the red arrow appears, then close the map, then touch the object again, then the 'Teleport' button is enabled. Is this a related problem?


CrystalShard Foo added a comment - 25/May/08 06:35 AM
This problem was resolved when LL switched llMapDestination's behavior into opening a parcel information window instead of the map directly.

Unfortunately, due to user demand it was shifted back to opening a map, and the bug has returned with that code.


Jake Linden made changes - 09/Jun/08 12:34 PM
Assignee Jake Linden [ Jake Linden ]
Strife Onizuka made changes - 13/Jun/08 07:05 PM
Link This issue Relates to VWR-1405 [ VWR-1405 ]
Lex Mars made changes - 11/Aug/08 07:32 AM
Link This issue is related to by VWR-7331 [ VWR-7331 ]
Cheshyr Pontchartrain added a comment - 15/Aug/08 08:07 AM
I'm updating this to Major as it breaks huge amounts of Second Life content. Although there is a workaround (call llMapDestination() twice with the same coordinates), it's a hack at best and sometimes results in the user getting hit with a second map after reaching their destination.

And of course, nobody at Linden Lab even bothered to FINISH this function. Half of its spec doesn't work. The second set of coordinates is supposed to determine which way the avatar faces upon landing.


Cheshyr Pontchartrain made changes - 15/Aug/08 08:07 AM
Priority Normal [ 4 ] Major [ 3 ]
Cheshyr Pontchartrain added a comment - 29/Sep/08 11:41 AM - edited
Upgrading to critical because (a) it is, and (b) it's so easy to fix that Linden Lab has no excuse for not doing so

Cheshyr Pontchartrain made changes - 29/Sep/08 11:41 AM
Priority Major [ 3 ] Critical [ 2 ]
darling brody added a comment - 30/Sep/08 09:52 PM
I have found the cause might be the focus in the viewer.

If someone is pressing a movment button when the map appears it can clear the mapped destination.

I use the workaround of sending the map 3 times waiting 0.5 seconds between each map to give them time to stop pressing buttons, while resetting the map to the desired destination.

@Cheshyr Pontchartrain
You could have used show stopper. (1) It breaks content. (2) It is widly used and effects a huge number of people.

Darling Brody.


darling brody made changes - 30/Sep/08 09:57 PM
Link This issue is related to by VWR-8485 [ VWR-8485 ]
WarKirby Magojiro made changes - 01/Oct/08 05:14 PM
Link This issue Relates to SVC-1038 [ SVC-1038 ]
Jahar Aabye added a comment - 07/Oct/08 12:35 PM
I seem to remember reading a while back, possibly during the big issue with llGetObjectDetails() being able to track people when teleporting, that the first stage of a teleport, the region handoff, teleports the user to the new sim in the same coordinates as in the previous sim, and then a second step moves them to the new coordinates.

Could this behavior, or something similarly related, be responsible for the observed issues here? That for whatever reason, the map is displaying only the first part of the teleport jump?


darling brody made changes - 08/Oct/08 09:04 AM
Priority Critical [ 2 ] Normal [ 4 ]
darling brody made changes - 08/Oct/08 11:22 AM
Comment [ I am sorry. It is not critical to block the map spamming when it only effects a small number of people who hang out in combat areas.

It is critical to fix the Height Limitations on the MAP and the bad focus on the map window. When those two problems are solved this issue can be addressed without breaking any content. If this if "fixed" first it will break more things that it fixes.

Priority set normal. It is important to implement changes in an order that will enhance existing content without breaking it. This fault should not have a higher priority that the other faults that are relying on this as a work-around, pending their fixs. If you dont understand why, look at the other JIRA issues i linked to in an earlier post.

Please understand I am not attempting to obstruct this fix (despite some rude comments above). I am attempting to ensuring all teleporter products continue to work by prioritizing this issue in line with the others so that existing content is not broken.


Darling Brody. ]
darling brody made changes - 08/Oct/08 11:23 AM
Comment [ The problem is that the region name (region search box) is the in-focus element on the map page window. For some reason pressing any key, even an arrow key, will clear the region and reset the map page to an invalid location.

The problem can be solved by Linden Labs having the default focus on the map page window as the 'Teleport' button. This is logical because most of the time llMapDestination gives you a map you will press the teleport button. Having the Teleport button in focus means the players can just press ENTER to teleport. It also means that the destination will not be accedently cleared by any unprocessed keyboard imput sent before/after the map page opens.

The current work-around for this is to send the map several times. Once the player sees a map page up they will stop pressing buttons within a couple of seconds. Sending the map 3-4 times within 2 seconds is the current work around for the badly focused map page. It is also a fix for lost UDP map packets which is another common problem people have when using llMapDestination.

Darling Brody.
]
darling brody made changes - 08/Oct/08 11:23 AM
Priority Normal [ 4 ] Critical [ 2 ]
Jahar Aabye added a comment - 08/Oct/08 02:53 PM
With regards to the focus issue, it would be better to simply have the map not steal focus at all (as was mentioned in SVC-1038) for a number of reasons, than to have it focus on the "Teleport" button. As I mentioned in VWR-8485, it is generally bad coding procedure for any function to automatically redirect focus to a button that takes input on pressing Enter. While it may be slightly more efficient under certain circumstances, it creates real potential for problems if an item is clicked accidentally, or if there is a delay between clicking and having the map come up (perhaps due to lag) with the result that one accidentally hits the Enter key thinking it will input chat text and finds oneself teleported.

On the other hand, if the map pops up and does NOT steal focus, then there shouldn't be any problem of input (such as walking) affecting the map coordinates, if in fact that is what is causing the problem. From Torley's repro, however, it really sounds like the problem may be something else, possibly related to how the teleport information is being relayed to the map.

Regardless of the cause of the problem, switching focus to the Teleport button is not a very good solution and will create more problems. The map simply should not be stealing focus anyways, and so I would start from there.


Strife Onizuka added a comment - 25/Oct/08 11:24 AM

Sue Linden made changes - 13/Nov/08 11:01 AM
Workflow jira-2007-12-22a [ 42797 ] jira-2008-11-14 [ 62069 ]
Sue Linden made changes - 13/Nov/08 11:16 AM
Workflow jira-2007-12-22a [ 62069 ] jira-2008-11-14 [ 67402 ]
Sue Linden made changes - 13/Nov/08 04:31 PM
Workflow jira-2008-11-14 [ 67402 ] jira-2008-11-14a [ 87340 ]
Sue Linden made changes - 13/Nov/08 04:43 PM
Workflow jira-2008-11-14 [ 87340 ] jira-2008-11-14a [ 91126 ]
Sue Linden made changes - 13/Nov/08 04:55 PM
Workflow jira-2008-11-14 [ 91126 ] jira-2008-11-14a [ 95279 ]
Sue Linden made changes - 13/Nov/08 05:06 PM
Workflow jira-2008-11-14 [ 95279 ] jira-2008-11-14a [ 99388 ]
Sue Linden made changes - 13/Nov/08 05:24 PM
Workflow jira-2008-11-14 [ 99388 ] jira-2008-11-14a [ 106086 ]
Sue Linden made changes - 13/Nov/08 05:41 PM
Workflow jira-2008-11-14 [ 106086 ] jira-2008-11-14a [ 112433 ]
Sue Linden made changes - 13/Nov/08 05:57 PM
Workflow jira-2008-11-14 [ 112433 ] jira-2008-11-14a [ 117653 ]
Sue Linden made changes - 13/Nov/08 06:17 PM
Workflow jira-2008-11-14 [ 117653 ] jira-2008-11-14a [ 125271 ]
Sue Linden made changes - 13/Nov/08 06:33 PM
Workflow jira-2008-11-14 [ 125271 ] jira-2008-11-14a [ 131456 ]
Robin Cornelius added a comment - 28/Dec/08 11:03 AM
Is anyone still able to repro this? I've had no luck at all but i can't be sure if thats because its fixed or if its just not happening to me. I tried trying to steal focus before the map appeared and no luck so far and the first map of the session is working fine for me too.

Nava Muni added a comment - 02/Jan/09 12:09 PM
Yes; this still continues to be a problem. It's still an intermittent problem but it does happy regularly. The "call it twice" kludge does seem to reliably work - however the kludge itself has an intermittent side effect of showing the map twice.

Nava Muni added a comment - 02/Jan/09 12:11 PM
updated "Affects Version/s" – and honestly... why not just call this field "Affects Version/s since?"

Nava Muni made changes - 02/Jan/09 12:11 PM
Affects Version/s 1.21 [ 10370 ]
Maggie Darwin added a comment - 08/Jan/09 07:26 AM
The problem with the field nomenclature is that JIRA was designed for normal software products where known reported bugs are not permitted to persist across many releases, and releases are required to fix most known bugs before going final.

SL is different.


Jahar Aabye added a comment - 24/Mar/09 09:30 AM
Well, if switching back to the behavior of popping up the parcel information window or landmark window or whatever the behavior was called,that was briefly introduced a few iterations ago, if that would fix this problem, then is that a viable option? I mean, if LL is having trouble figuring out where things are going wrong, then might switching back to that behavior, which worked reliably well, be an option? I know that there was quite a bit of opposition to that change when it was introduced, but if it does behave more reliably than the current behavior of llMapDestination(), then perhaps it is worth looking at?

Cheshyr Pontchartrain added a comment - 24/Mar/09 05:17 PM
Absolutely! if nothing else, the landmark code works, the llTeleportMap() code does not. So clearly there is a difference in the two functions, and the proper code can be gleaned by looking at the landmark source.

Harleen Gretzky made changes - 04/Apr/09 08:36 AM
Linden Lab Issue ID VWR-8982
Alexa Linden made changes - 07/Apr/09 09:10 AM
Last Triaged 06/Apr/09 09:10 AM
lindenrobot made changes - 07/Apr/09 09:11 AM
Last Triaged 06/Apr/09 09:10 AM 07/Apr/09 09:11 AM
Linden Lab Issue ID DEV-30253
Angela Talamasca added a comment - 24/May/09 10:40 AM
Probable cause: How about map lag? It is extremely likely that this is a latency issue that could be a result of everything from the toy database that SL uses to distributed data centers to network traffic load.

Supporting factors: The problem disappears when "show map" was replaced with "show parcel destination." Hence, masking the latency issue by allowing time for the client to receive necessary data, should the user, at that point, click show location on map.

Potential solutions: The client code appears to be using a system timer that is set to n-µsecs, as opposed to, say, a map destination callback from the server. With this in mind, following are some potential solutions with both Pros and Cons listed.

++++++++++++++++++++++++++++++++++

PS1: Compute n on the fly by relying upon reported stats.

Pros: This is a client only change. Increases the likelihood that the required data will arrive before the client software displays the map.

Cons: Increases client load, though this is negligible. It's a stop-gap as even the computation will be somewhat arbitrary since database access time and network latency is highly volatile. And, in some instances, behavior that is described under cons in the following potential solution could also occur.

++++++++++++++++++++++++++++++++++

PS2: Implement callback

Pros: Guaranteed data delivery

Cons: Requires changes to both server and client code. Latency issues are now visible to the client. In other words, the inherent prob in this solution is waiting for a callback. If latency is especially high, a noticeable period of time will pass before the map (or even, say, a timeout notice, similar to say, the group chat timeout notice) is displayed. This could, in return, be seen as a bug by the user. So next thing you know, users are regularly complaining about map lag.

++++++++++++++++++++++++++++++++++

PS3: Revert to showing the "parcel destination" instead of the map for slurl & llMapDestination calls.

Pros: This is a client only change. This buys time for the data to arrive.

Cons: Although viewing the parcel info can be nice, in general, users want/expect to see the map. This additional step required by the user (i.e., now having to click "show destination on map") has already been proven to be seen as an unnecessary extra step by the user community.

++++++++++++++++++++++++++++++++++

Summary: Even though SL is now sitting on a network backbone, as long as it continues to use a toy database, this and other latency issues will continue to be seen. In other words, from the big picture perspective, this is about scaling (or lack thereof), and the obvious culprit is the toy database.


Maggie Darwin added a comment - 24/May/09 12:22 PM
Now Angela, how is Oracle going to feel about you calling the DBMS they just bought a "toy database".

Angela Talamasca added a comment - 24/May/09 01:54 PM
Well, I use mysql for many of my sites. However, they are not enterprise sites, so they do not need an enterprise (read, truly scalable) database. LOL

Cheshyr Pontchartrain added a comment - 04/Jun/09 01:39 PM
Hmm, two years for a trivial bug and you STILL haven't managed to fix it. I know it's trivial because this did not occur when we used landmark windows to teleport. So obviously the code is correct for landmarks, and mangled for manual map usage and/or llMapDestination(). Solution? Copy the code that works. Wake up and do your job, Lindens.

sasun steinbeck added a comment - 05/Jun/09 01:39 AM
I agree. This is rediculous that I have to put hacks in my tour HUD to work around this bug that EVERYONE and I mean EVERYONE must have run into at some point or other. If you EVER teleport via some gadget that pops up a map, you will get hit by this and get frustrated, most users probably think it's the innocent scripter that's messing up. Ugh!! FIX THIS!

darling brody added a comment - 06/Jun/09 12:25 AM
What I dont understand is they added a throttle tot he llMapDestination to stop map bombing, so they had their head under the hood of this code!

What I also dont understand is how this bug which EVERONE suffers from dosn't get fixed while the map bomb that only effects people involved in combat get fixed!

Maybe the trick is to be rude and abnoxious like the people were in the map bombing jira? They demanded that their jira be fixed before this one and they got what they wanted.