User:Which Linden/Office Hours/2009 Sep 10

From Second Life Wiki
< User:Which Linden/Office Hours
Revision as of 12:12, 10 September 2009 by Which Linden (talk | contribs) (Created page with '* [11:01] Saijanai Kuhn: hey Which, yer doomed * [11:02] Which Linden: doooooooooomed or just doomed? * [11:02] [[User:Morgaine Din...')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
  • [11:01] Saijanai Kuhn: hey Which, yer doomed
  • [11:02] Which Linden: doooooooooomed or just doomed?
  • [11:02] Morgaine Dinova: waters the flower pot
  • [11:02] Latif Khalifa: heya Which
  • [11:02] Morgaine Dinova: Hiya Which :-)
  • [11:02] Which Linden: good morning!
  • [11:02] ATechwolf Foxclaw: waters the plant.
  • [11:02] Which Linden: "watering the plant" is the new "kissing the ring" :-P
  • [11:03] Latif Khalifa: lol
  • [11:03] ATechwolf Foxclaw: Depends on how one waters the plant. :-D
  • [11:03] Latif Khalifa: Don Which de Lindedn :P
  • [11:03] Which Linden: so hey, I'd like to try something today if you all are up for it
  • [11:03] Morgaine Dinova: Which, we've been discussing for a couple of hours in Groupies a scheme for preserving creator metadata and object authenticity in XML dumps of objects made by viewers. This is named the "Nyx Object Authenticity proposal".
  • [11:03] Saijanai Kuhn: wassup?
  • [11:04] Which Linden: how would you feel about collaboratively debugging SVC-4182, since it's a viewer issue?
  • [11:04] Latif Khalifa: Listens to WHich's experiment proposal
  • [11:04] Morgaine Dinova: Sure, what's on your mind Which?
  • [11:04] Aimee Trescothick: "Does it look like a tiny robot?" ... yes ... "then it's authentic"
  • [11:04] ATechwolf Foxclaw: surl please.
  • [11:04] ATechwolf Foxclaw: url that is
  • [11:05] Which Linden: copy and paste ain't workin for me for some reason
  • [11:05] Aimee Trescothick: [1]
  • [11:05] Morgaine Dinova: Ta Aimee :-)
  • [11:05] Which Linden: thanks!
  • [11:05] Aimee Trescothick:  :)
  • [11:05] Which Linden: and by debug I don't mean actually debug, because we don't have a repro
  • [11:05] Which Linden: but just look through the source and identify possible reasons that the duplicates might be happening
  • [11:06] Which Linden: sorry if you were hoping to continue discussing the licensing thing; I know it's rare that I have a topic of my own :-)
  • [11:06] Morgaine Dinova: No no, go with yours please :-))))
  • [11:07] ATechwolf Foxclaw: First thing I do is grep the source to find otu there the logging info is comming from and backtrance from there on.
  • [11:07] Which Linden: yes, that's a good start
  • [11:08] Which Linden: should we do our source spelunking on snowglobe? seems likely to also contain whatever bug it is
  • [11:08] Which Linden: https://svn.secondlife.com/svn/linden/projects/2009/snowglobe/trunk
  • [11:08] ATechwolf Foxclaw: I am familar with the pie menu and mouse hover as they both get pay/buy info. I was playing with beacons last month.
  • [11:08] Which Linden: oh now paste works
  • [11:09] Morgaine Dinova: There does seem to be a random function associated with paste, I've noticed on Linux. Sometimes it just won't, no matter what you do with the clipboard.
  • [11:10] Morgaine Dinova: In the viewer I mean.
  • [11:10] Morgaine Dinova: grabs Snowglobe 1.2.0 source.
  • [11:10] Which Linden: so the debug message that's printed twice is printed from here: [2]
  • [11:12] Which Linden: so we know that the problem is that give_money is being called twice
  • [11:12] ATechwolf Foxclaw: case CLICK_ACTION_PAY:
  • handle_give_money_dialog();
  • [11:13] Latif Khalifa: this is reported only when paying objects?
  • [11:13] Twisted Laws: maybe the message isn't ack'd in time and its resent and this isn't called twice
  • [11:13] Which Linden: Latif: no it's reported when paying agents too
  • [11:13] Twisted Laws:  ?
  • [11:13] Which Linden: well I think so; the give_money function works with both
  • [11:14] ATechwolf Foxclaw: llviewermenu.cpp handle that function.
  • [11:14] Which Linden: Twisted: I don't think it's related to the message system directly, but yeah, maybe something that calls give_money gets two packets and does two actions
  • [11:14] Which Linden: grepping through the source I see lots of function pointers
  • [11:14] Which Linden: [3]
  • [11:15] ATechwolf Foxclaw: llviewermenu is huge.
  • [11:15] Which Linden: that's handle_give_money_dialog, and it wraps up a pointer to complete_give_money
  • [11:15] Latif Khalifa: it's unlikely message system since each packet has a serial and repeated serial numbers are discarded
  • [11:15] Which Linden: Latif: good point
  • [11:15] Which Linden: so maybe it's a UI race condition?
  • [11:15] Latif Khalifa: and the log indicates function called twice
  • [11:16] Latif Khalifa: yeah, my guess is ui problem
  • [11:16] Latif Khalifa: i'd focus on fast pay floater
  • [11:16] Which Linden: I think that floater is LLFloaterPay
  • [11:17] Latif Khalifa: kind of difficult to debug stuff on no build/no script land
  • [11:17] Which Linden: oh...want me to turn those on?
  • [11:17] Latif Khalifa: could you please
  • [11:17] Which Linden: done
  • [11:17] Saijanai Kuhn: could give Gfoupies building rights
  • [11:17] Object: Hello,: Avatar!
  • [11:17] ATechwolf Foxclaw: I foudn the function "llgivemoney.cpp:void LLFloaterPay::payViaObject(money_callback callback, const LLUUID& object_id)
  • [11:18] Aimee Trescothick: yeah, there's payDirectly and payViaObject I see
  • [11:18] ATechwolf Foxclaw: payDirectly is to an avatar, and pay viaobject is to object.
  • [11:19] ATechwolf Foxclaw: llviwermenu is where it desides what funciton to use.
  • [11:19] Which Linden: so it looks like the way those work is.... they get called, stick up their floater UI, and call their callback when the user decides what to do with the UI
  • [11:19] Object: Hello,: Avatar!
  • [11:19] Which Linden: and the callback is give_money, so if somehow the UI was screwing up such that it called teh callback twice.... boom
  • [11:20] ATechwolf Foxclaw: llviewermenu complete_give_money is where it desides what funciton to use, direct or objectpay.
  • [11:20] Which Linden: here's the definition for LLFloaterPay: [4]
  • [11:22] Which Linden: so from the bug reports we only know the bug happens when paying via object
  • [11:22] Which Linden: so let's focus on that code path
  • [11:22] Which Linden: (let me know if I'm reading that wrong)
  • [11:22] Latif Khalifa: i had that reported by my customers as well
  • [11:23] Latif Khalifa: and i use money() event in my vendors scripts
  • [11:24] ATechwolf Foxclaw: It may be a hack, but would adding code to prevent another money event withen xx time help stop all the double pay stuff?
  • [11:24] Which Linden: yes but it would actually probably be harder to implement than finding and fixing the bug :-)
  • [11:24] Which Linden: implement correctly that is
  • [11:25] Which Linden: so the other clue we have is that the *second* give_money call somehow fails to send a description to the simulator
  • [11:25] Which Linden: and presumably that's how the money() event doesn't get called a second time
  • [11:25] Morgaine Dinova: Highlighting multiple payments within a short time window in the log is worth doing though, whether or not bug is fixed. It could recur.
  • [11:26] Which Linden: surely
  • [11:26] Which Linden: we should get processes in place to check on that
  • [11:26] Which Linden: unfortunately there is a lot of legit traffic that would show up as noise; zyngo comes to mind
  • [11:27] Latif Khalifa: Which, are you sure money() does not get called twice?
  • [11:27] Which Linden: seem to be a lot of games whose basic mechanic involves ping-ponging 1 L$ back and forth between player and game
  • [11:27] Morgaine Dinova: What's the timestamp granularity? Are these doubles at the SAME time, or just very close together?
  • [11:27] Which Linden: Latif: no, I just assume so
  • [11:27] Which Linden: Morgaine: we only have second granularity
  • [11:27] Morgaine Dinova: Hmmm
  • [11:28] Which Linden: well actually I can get better than that, lemme do that for ya
  • [11:28] Latif Khalifa: Which, i recall seeing some transactions in my store, getting payed twice for a copy item, and item gets deliver twice and me wondering why the heck are they buying it twice when is copiable
  • [11:28] Morgaine Dinova: Latif: altruism :P
  • [11:28] Latif Khalifa: hehe
  • [11:29] Which Linden: Latif: really, that's interesting
  • [11:29] Which Linden: Might not be the same bug, though
  • [11:30] Which Linden: If you notice that again, look at the logs and if the second transaction has no description, then that's da bug
  • [11:31] Latif Khalifa: trying to trick fast pay with double clicks and what no
  • [11:32] Which Linden: oh god I'm sure there's some recipe out there for "free lindens if you input this code"
  • [11:32] Morgaine Dinova: Shhhhhh
  • [11:32] Aimee Trescothick: oooooh, weird
  • [11:34] Which Linden: ugh ok we don't have finer time resolution
  • [11:34] Morgaine Dinova: Eeek
  • [11:35] Aimee Trescothick: notice anything funny in this screenshot?!
  • [11:35] Aimee Trescothick: beside the fact it's not rezzing properly for me :S
  • [11:35] Which Linden: texture downloading is slow as all hell?
  • [11:35] Morgaine Dinova: Not rezzed yet
  • [11:35] Which Linden: ha ha ha
  • [11:36] Aimee Trescothick: that's the result of clicking rapidly on the pay button
  • [11:36] Aimee Trescothick: I've been left with a Pay floater, with just a cancel button
  • [11:37] Which Linden: Oh I see it now, right above the prim
  • [11:37] Aimee Trescothick: so definitely something going awry with the UI
  • [11:37] Aimee Trescothick: even if that's not the particular bug we're looking for
  • [11:37] Aimee Trescothick: yeah
  • [11:38] Which Linden: nice find!
  • [11:38] Latif Khalifa: Aimee, at firt I thought you stole my screen lol
  • [11:38] Aimee Trescothick: bet I can't replicate it now though lol
  • [11:38] Latif Khalifa: scary same layout lol
  • [11:38] Aimee Trescothick: lol
  • [11:38] Morgaine Dinova: 2-3 minutes at max bandwidth and still not rezzed
  • [11:38] Which Linden: great minds think alike ... :-)
  • [11:38] Latif Khalifa: same perspective focusing on a cube
  • [11:39] Twisted Laws: maybe the floater should close before it send the money?
  • [11:39] Twisted Laws: in void LLFloaterPay::onGive(void* data)
  • [11:39] Aimee Trescothick: hrm, think the screenshot got slammed to 512x256 because of my aspect ratio
  • [11:39] Twisted Laws: or disable itself anyway
  • [11:40] Ardy Lay: It's loaded, just still blurry and yeah, 512x256.
  • [11:40] Aimee Trescothick: should certainly disable all it's UI the moment anything in that window is committed I'd say
  • [11:40] Latif Khalifa: well if this has started appearaing since "the bestt viewer ever" aka 1.23 has been released, and it seems that it has, i'd go diffing changes in the related code
  • [11:40] Morgaine Dinova: It must be downloading all of Aimee's inventory .... still at max bandwidth :P
  • [11:40] Aimee Trescothick: yeah, could run back through the commits to llgivemoney.cpp
  • [11:40] Which Linden: yeah maybe; so LLFloaterPay::give is the one that fills in the description field
  • [11:40] Morgaine Dinova: I reckong this 1.2.0 Snowglobe has problems.
  • [11:41] Which Linden: 468 LLSelectNode* node = mObjectSelection->getFirstRootNode();
  • 469 std::string object_name;
  • 470 if (node)
  • 471 {
  • 472 object_name = node->mName;
  • 473 }
  • [11:41] Which Linden: so.... if object_name is empty, or it goes through some other branch, then the description would be empty
  • [11:41] Aimee Trescothick: AH!
  • [11:41] Which Linden: so I think it's reasonable to say that give() is being called twice as well
  • [11:41] Aimee Trescothick: think I know what may be happening
  • [11:42] Which Linden: do tell
  • [11:42] Which Linden:  :-)
  • [11:42] Aimee Trescothick: take your prim, click it like buggery
  • [11:42] Aimee Trescothick: get multiple floaterpays on top of each other
  • [11:43] Aimee Trescothick: click the first, it works and goes away
  • [11:43] Which Linden: starts a band called "click it like buggery"
  • [11:43] Latif Khalifa: ah, i have all may vendors set like this cube
  • [11:43] Ardy Lay: Ah... twitchy gamers finding bugs?
  • [11:43] Aimee Trescothick: but there's an identical one hiding behind it, so it looks like your click didn't work
  • [11:43] Latif Khalifa: its pay on click
  • [11:43] Aimee Trescothick: so you click again
  • [11:43] Morgaine Dinova: Oh joy, it's the new translator stuff that's filling the link ---> 2009-09-10T18:42:07Z INFO: getSize: Variable Language not in message ChatFromSimulator block ChatData (zillions of them)
  • [11:43] Latif Khalifa: so double clicl on object + double click on the pay button will do the trick
  • [11:43] Aimee Trescothick: on the second window
  • [11:44] Morgaine Dinova: Relogging to Techwolf's ebuild.
  • [11:44] Ardy Lay: Somepeople doubleclick on everything. I see this walking through offices.
  • [11:44] Latif Khalifa: i got the same log lol
  • [11:45] Tiny Blue: Kitty Head: All Go
  • [11:45] Aimee Trescothick: if I click three times on the object rapidly on the object, I get the proper floaterpay, with one behind it with just a cancel button
  • [11:45] Latif Khalifa: yeah i can repro that
  • [11:45] Aimee Trescothick: ah, sometimes just a cancel button, sometimes two full floaterpays with all their buttons
  • [11:46] Which Linden: hm....that sounds pretty broken
  • [11:46] Aimee Trescothick: yuck lol
  • [11:46] Aimee Trescothick: definitely should only be pulling up one floaterpay for one object at a time
  • [11:47] Aimee Trescothick: maybe even just one floaterpay at a time full-stop
  • [11:47] Which Linden: yeah....perhaps
  • [11:47] Aimee Trescothick: should be a singleton basically
  • [11:47] Latif Khalifa: when i rapidly click on my object, i get about 3 out of 10 without buttons
  • [11:47] Which Linden: I could see the use case for having multiples for different objects
  • [11:47] Aimee Trescothick: hmm, unless you want to shop and play zyngo at the same time I guess
  • [11:48] Aimee Trescothick: yeah, one per object then
  • [11:48] Latif Khalifa: hates artificial limitations like that
  • [11:48] Aimee Trescothick: heh
  • [11:49] Aimee Trescothick: or at least don't make them pop up in the same place
  • [11:49] Aimee Trescothick: tile them or something
  • [11:49] Latif Khalifa: I wonder if this could be a user error, double clicking on the object, then double clicking on the pay button, which would do what this bug describes nicely
  • [11:49] Aimee Trescothick: the actual problem (besides the broken ones missing their buttons) is that they appear to the user as being one
  • [11:49] Which Linden: could you explain how it would lead to the blank second description? that's still fuzzy for me
  • [11:50] Aimee Trescothick: hmm
  • [11:50] Latif Khalifa: Which, I would ask the Original Poster of that bug if his vendor's default action is set to pay
  • [11:50] Latif Khalifa: (or buy)
  • [11:50] Which Linden: what would that tell us?
  • [11:50] Aimee Trescothick: well there's clearly stuff going missing somewhere in that some of them are coming up with just a cancel button
  • [11:51] Which Linden: is ignorant of how vendors work
  • [11:51] ATechwolf Foxclaw: reads the scrollback
  • [11:51] ATechwolf Foxclaw: I do double clicks ALL the time due to SL not reacting to my first one.
  • [11:51] Latif Khalifa: Which, if the answer is "No" it would eliminate my theory of double click user error
  • [11:52] Which Linden: ah ok latif, that makes sense
  • [11:52] ATechwolf Foxclaw: right click, buy. Can't buy withen a second or two, cancell and try just clicking on the object. If not, try again and again untill you CAN buy the object.
  • [11:53] Which Linden: I think I see the chain now -- user double-clicks, kicks off two pay dialogs, each of which requests the object info; only one of them wins the race to set _PREHASH_PayPriceReply handler, and thus only one of them has a description
  • [11:54] Latif Khalifa: Which, rez that one and click twice on it, then double click $L1 on the dialog
  • [11:54] Which Linden: but these are happening really close to each other in the logs; not quite simultaneously but pretty sub-secon
  • [11:54] Latif Khalifa: gave you Fake vendor.
  • [11:54] Fake vendor: Got 1
  • [11:54] Fake vendor: Got 1
  • [11:55] Which Linden: hm I got the dialog with only a cancel button
  • [11:55] Fake vendor: Got 1
  • [11:55] Latif Khalifa: no $L1?
  • [11:55] Aimee Trescothick: twitchy finger or bouncy mouse button
  • [11:55] Which Linden: I got two dialogs, one with a 1L$ button and one with only a cancel
  • [11:55] Latif Khalifa: lol there you go 1 bug
  • [11:56] Which Linden: so actually that's consistent with what I just said, but doesn't explain how we get dupes
  • [11:56] Latif Khalifa: i get two dialogs with $1L exactly on top of one another, so double click on $1L gives me two transactions within a few ms
  • [11:56] Which Linden: does anyone here know if Zyngo machines are default-action-pay?
  • [11:57] Latif Khalifa: none of them are
  • [11:57] Latif Khalifa: since they need touch
  • [11:57] Which Linden: Latif: hah my lag must be worse I didn't get two legit pay dialgos, let me keep trying
  • [11:57] Fake vendor: Got 1
  • [11:57] Latif Khalifa: vendors like mine don't need touch event so i set them to pay
  • [11:57] Fake vendor: Got 1
  • [11:57] Fake vendor: Got 1
  • [11:57] Which Linden: oh there we go
  • [11:57] Fake vendor: Got 1
  • [11:57] Fake vendor: Got 1
  • [11:58] Fake vendor: Got 1
  • [11:58] Fake vendor: Got 1
  • [11:59] Which Linden: hm, so latif that seems to suggest that the dupe bug is not caused by this dialog bug given what we know so far
  • [11:59] Which Linden: the dupe bug is definitely happening to zyngo machines
  • [11:59] Latif Khalifa: ah ok
  • [11:59] Aimee Trescothick: ah right
  • [12:00] Which Linden: (we should definitely file a pjira bug on these dialogs though if one doesn't exist already)
  • [12:00] Which Linden: maybe double-clicks on the pay pie menu item?
  • [12:01] Fake vendor: Got 1
  • [12:01] Twisted Laws: possible solution would be to have a flag in viewer object if the mClickAction is triggered and cleared when done, would stop dupes on any click action event
  • [12:01] Aimee Trescothick: hmm, wonder if the pie will take a double click if you're quick
  • [12:01] Which Linden: or have low framerate.... :-)
  • [12:01] Aimee Trescothick: yeah
  • [12:02] Which Linden: doesn't seem to work for me
  • [12:02] Tiny Blue: Kitty Head: All Go
  • [12:02] Aimee Trescothick: hmm, need a way to artificially drag the frame rate down lol
  • [12:03] Which Linden: actually mine is pretty terrible right now
  • [12:03] Aimee Trescothick: don't have a turbo button on the front of computers these days :(
  • [12:03] Which Linden: all your beauty is straining my video card
  • [12:03] Aimee Trescothick: LOL
  • [12:03] Aimee Trescothick: what do you class as terrible?
  • [12:04] Which Linden: 4-5
  • [12:04] ATechwolf Foxclaw: graphics to Ultra and 512m at a buzy help island will kill your frame rate.
  • [12:04] Which Linden: oddly if I increase window size it gets better
  • [12:04] Aimee Trescothick: yeah I'm around 7 or 8
  • [12:04] Latif Khalifa: i'm at 17 here
  • [12:04] Latif Khalifa: draw distance 128
  • [12:05] Which Linden: so yeah I'm having no luck with double clicks on the pie menu, shouldn't rule it out though
  • [12:05] Aimee Trescothick: all settings maxed out and 1920x1200 rers, I'm getting about 6-7
  • [12:06] Latif Khalifa: pie does sone weird stuff in 1.23, i would not rule it out either
  • [12:06] Aimee Trescothick: ah, I just got the "cancel button only" version double clicking on the pie menu
  • [12:06] Which Linden: orly! nice work
  • [12:06] Aimee Trescothick: yep! just got the double fully filled out version
  • [12:06] Which Linden: but did you second click go through and click the objet?
  • [12:07] Aimee Trescothick: hmm, good point
  • [12:07] Aimee Trescothick: turned it back to touch now, so we shall see
  • [12:07] Object: Touched.:
  • [12:07] Object: Touched.:
  • [12:07] Object: Touched.:
  • [12:08] Aimee Trescothick: hmm, yeah, looks like that may have been it
  • [12:08] Object: Touched.:
  • [12:08] John13 Tigerfish: Hey!
  • [12:08] Which Linden: lots a touching going ont :-)
  • [12:08] Aimee Trescothick: lol
  • [12:08] Latif Khalifa: finding a repro case is always the most efficient approach, staring at code alone requires extraordinary skill ;)
  • [12:09] Which Linden: so hey -- I should run, but this has been fantastic
  • [12:09] Latif Khalifa: plus trying to break stuff is fun :P
  • [12:09] Aimee Trescothick: ok that's weird, I'm getting tootips from Safari which is behind my SL window lol
  • [12:09] Latif Khalifa: take care which
  • [12:09] Which Linden: does someone want to file a bug for the dialog thing we found?
  • [12:09] Aimee Trescothick: bye Which :)
  • [12:09] Aimee Trescothick: yep
  • [12:09] Which Linden: Thanks aimee :-)
  • [12:09] Morgaine Dinova: I was at 20 FPS on 1.2.0 at 1920x1200 on 9800, but only 10 FPS on Tech's ebuild currently. From fast timers, it's alpha sorting that' changed.
  • [12:10] Morgaine Dinova: Cyu Which, tc :-)
  • [12:10] Which Linden: Thanks again!