Difference between revisions of "User:Which Linden/Office Hours/2009 Sep 10"
Jump to navigation
Jump to search
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...') |
(No difference)
|
Latest revision as of 12:12, 10 September 2009
- [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!