Chat log from the meeting on 2022-05-03

 [11:02] Kayaker Magic: Here he comes! [11:03] Andrew Hellershanks: Hello, everyone. [11:03] Kayaker Magic: I have an issue today: Anybody know what can cause this error message on the opensim console? [11:03] Kayaker Magic: 10:54:41 - [WATCHDOG]: Timeout detected for thread "Heartbeat-(Test_Bed_3x3)". ThreadState=Running. Last tick was 21253ms ago. [11:04] Kayaker Magic: I have a script that can llock up a region and cause that message a minute or so later. EVERY TIME [11:04] Ubit Umarov: the bed is very good and heartbeat fallen asleep [11:05] Kayaker Magic: But I try to make a smaller version of the script, and the error doesn't happen. At least not yet... [11:05] Ubit Umarov: well scripts can do that, hard to tell [11:05] Vincent.Sylvester @hg.zetaworlds.com:8002: You just answered your own question [11:05] Vincent.Sylvester @hg.zetaworlds.com:8002: Usually script load or poorly written ones consuming a ton of memory [11:06] Kayaker Magic: The script worked perfectly on older versions of OpenSim. The error started with recent versions. [11:06] Vincent.Sylvester @hg.zetaworlds.com:8002: It does recover though [11:06] Kayaker Magic: No, this script is not a bad one. Worked fine for years. [11:06] Vincent.Sylvester @hg.zetaworlds.com:8002: Hints at potential scene update queue failure in the long term [11:07] Kayaker Magic: Testing is difficult, every test usually requires restarting or waiting 2 minutes for the region to recover. [11:08] Andrew Hellershanks: Yes, you take things out of a script until the errors stop. The last thing removed was the cause of the error. [11:08] Andrew Hellershanks: :) [11:08] Ubit Umarov: selby, are you stuck? [11:09] Vincent.Sylvester @hg.zetaworlds.com:8002: It doesn't need to be a single script, overall load is also a factor and the type of operations done by those scripts [11:09] Andrew Hellershanks: Kayaker, Does the script use a timer? If so, is it doing too much in the timer handler? [11:09] Kayaker Magic: Unless it is a race condition, then removing something unrelated changes the timing enough to change the result. [11:09] Kayaker Magic: The script is completely event driven, has a timer that runs at 0.5 seconds. [11:10] Kayaker Magic: Actually there are two scripts, a rezzer and the thing it rezzes. I'm considering a race condition about how the two of them communicate, but can't verify that yet. [11:10] Selby.Evans @grid.kitely.com:8002: I guess so, but fixed [11:11] Ubit Umarov: ok [11:11] Andrew Hellershanks: Kayaker, is it your own rezzer or one of the readily available ones? [11:11] Ubit Umarov: kayker we can't guess those things [11:11] Andrew Hellershanks: I have used Builder's Buddy and not had a problem with it. [11:12] Ubit Umarov: only looking to script code, finding potencial relatuons and testing [11:12] Ubit Umarov: ofc to rez a prim is a heavy operation.. [11:12] Ubit Umarov: 1000 od them a bit worse.. [11:12] Ubit Umarov: :p [11:13] Kayaker Magic: My own rezzer. [11:13] Ubit Umarov: and rez is not a multithread operation [11:13] Andrew Hellershanks: Kayaker, have you checked the regions stats when the region is outputting the error to see if it shows a high LPS number or low FPS numbers? [11:13] Kayaker Magic: I'm only hoping for suggestions on what can cause the lockup now when it didnt happen in the last Yeti I build [11:13] Andrew Hellershanks: Hello, Michael. [11:13] Michael.Christopher @cc.opensimulator.org:8002: hello [11:13] Ubit Umarov: it will stop other threads while changing shared data [11:14] Ubit Umarov: but, as i said, we can only guess [11:15] Ubit Umarov: wel abotu code changes last week [11:16] Ubit Umarov: i did made ubode use own copies of the unmanaged libraries [11:16] Andrew Hellershanks: I saw mostly code cleanup type changes but there were two commits referencing mantis reports. [11:16] Ubit Umarov: so old ode module can stay unchanged [11:16] Kayaker Magic: Yeah, I will keep trying to find a simple way to repeat the problem. But be warned: There is a way to crash Yeti that was not there before. I cannot use recent versions on my regions any more for fear that other things will trigger this. [11:16] Ubit Umarov: so now ubode uses ubode.dll and old ode uses ode.dll [11:17] Vincent.Sylvester @hg.zetaworlds.com:8002: Yeah that were some fun little bugs that slipped by, all resolved now, but given the changes to physics might see one or two more as more people test things [11:17] Ubit Umarov: that on windows, similar for other operating systems [11:18] Ubit Umarov: then updated ubode with code i had here getting dust for years now [11:18] Andrew Hellershanks: brb [11:18] Ubit Umarov: well and some i made also recently [11:18] Ubit Umarov: mostly same thing, try to save cpu here and there [11:18] Ubit Umarov: in fact ODE is pretty bad code [11:19] Ubit Umarov: like it is a collection of diferent libraries, all glued somehow [11:19] Ubit Umarov: so the typical issue.. each one has own idea of what a rotation his [11:20] Ubit Umarov: and tons of code converting and copieng between thsoe diference flavours [11:20] Vincent.Sylvester @hg.zetaworlds.com:8002: It's not all quaternions? [11:20] Ubit Umarov: ofc not [11:20] Ubit Umarov: quaternions are actually bad [11:20] Michael.Christopher @cc.opensimulator.org:8002: oh? [11:21] Ubit Umarov: all use matrices for rotations [11:21] Michael.Christopher @cc.opensimulator.org:8002: that caught my attention lol. what's the better way? [11:21] Ubit Umarov: you can understand that if i tell you that to make a rotation with a quaternion you always need to get the respective matrice [11:22] Ubit Umarov: so everyone really uses matrices on low level engines [11:23] Ubit Umarov: quaternium only has the space advantage.. like 4 floats versus 9 of similar matrice [11:23] Ubit Umarov: quaternion [11:23] Vincent.Sylvester @hg.zetaworlds.com:8002: Difference in processing required for them? [11:24] Ubit Umarov: also does not fit on SIMD instrutions moder [11:24] Ubit Umarov: using SIMD on them may actually be a lot slower [11:24] Ubit Umarov: well SIMD was made with matrices operations in mind [11:25] Ubit Umarov: well most at least [11:25] Vincent.Sylvester @hg.zetaworlds.com:8002: Conversion floating point values and applying some operations to fit 9 into 4 also doesn't sound efficient at all [11:26] Ubit Umarov: well you can see the code on libomv for example [11:26] Ubit Umarov: as i said to multiply a vector by a quat, code is basicly getting the matrice then doing the matrice multiplication [11:27] Ubit Umarov: on matrx you can also extract more information direct [11:27] Ubit Umarov: like the axis associated with the rotation.. balba [11:27] Ubit Umarov: also a rotation can also be a scale operation [11:28] Ubit Umarov: so only a few not that fast code uses quaternion as rotation representation [11:28] Ubit Umarov: or as long term unchanged storage, ofc [11:29] Andrew Hellershanks: I'm back. [11:29] Ubit Umarov: with a quaternion a rotation is even just 3 floats [11:29] Michael.Christopher @cc.opensimulator.org:8002: wb [11:29] Ubit Umarov: because a quat must be normalized.. that meand the 4th float is 1 - Sum of squares of the others [11:29] Ubit Umarov: LLUDP uses that [11:30] Ubit Umarov: lindens used to be clever coders in tose days [11:30] Ubit Umarov: not that very low performance code mess they do today [11:30] Ubit Umarov: well by that is other story [11:31] Ubit Umarov: i actually did refuse to suport another cap viewer use [11:31] Ubit Umarov: rye or beq did mentioned it [11:32] Ubit Umarov: happens it is just moving from very compact and fast lludp to slow http using xml like encoding [11:32] Ubit Umarov: that tuns 10 bytes of information in like 200 [11:32] Ubit Umarov: ( in that case a lot more ) [11:33] Ubit Umarov: so.. code changes... [11:33] Ubit Umarov: it is possible ubode now has new issues, ofc [11:33] Ubit Umarov: nad very hard to debug [11:33] Ubit Umarov: usually we only get BUMMMMM region died [11:33] Ubit Umarov: kind of reports :P [11:34] Ubit Umarov: in windows case a BSOD is also possible :) [11:34] Michael.Christopher @cc.opensimulator.org:8002: :)) [11:34] Ubit Umarov: the last one i got was testing ode.dll changes [11:34] Ubit Umarov: :) [11:34] Michael.Christopher @cc.opensimulator.org:8002: ouch [11:35] Ubit Umarov: another changes where a few recent bug fixes [11:35] Ubit Umarov: changed some user por uuid parse by tryparse [11:35] Ubit Umarov: because parse now does stop with a error, like guid does. [11:36] Ubit Umarov: in past it did not, just did return uuid.zero, like tryparse does [11:36] Ubit Umarov: same on int, vector3 and bool parse [11:37] Ubit Umarov: ofc made a silly bug on that, found by vicent and now also fixed [11:37] Ubit Umarov: the avatars new jump code also had a small issue [11:37] Ubit Umarov: jumps on top of a mesh prim where a lot shorter than on top of a normal prim or terrain [11:38] Ubit Umarov: added some work aroudn on that.. they look similar again [11:38] Ubit Umarov: issue is how collision is detected... [11:39] Ubit Umarov: on a simulation look, a avatar collsion with any prim returns at most 2 collisions [11:39] Ubit Umarov: with a mesh can returrn like 80... [11:40] Ubit Umarov: hte overall IsColliding basicly counts collisions [11:40] Ubit Umarov: so.. well bad :) [11:40] Ubit Umarov: should be better now [11:40] Ubit Umarov: but other area of code tha tneeds revision [11:41] Ubit Umarov: still old ode code structure.. [11:41] Ubit Umarov: sadly not the best.. but still there [11:41] Ubit Umarov: i had also broken sits :p [11:42] Ubit Umarov: in same cases, depending on timing, the sit rotation could be lost due to a delayed update sent by viewers [11:42] Ubit Umarov: still with a standing rotation... [11:43] Ubit Umarov: that delayed one is again ignored... [11:44] Ubit Umarov: hope you all see others sitting right here now :) [11:44] Selby.Evans @grid.kitely.com:8002: I do [11:45] Ubit Umarov: wel was a bit random, but we coudl see wrong rotations as i told [11:46] Ubit Umarov: typical opensim... 1 improvement 2 new bugs [11:46] Ubit Umarov: oops :p [11:46] Michael.Christopher @cc.opensimulator.org:8002: lol [11:46] Ubit Umarov: ( still looking for the second bug on that :P ) [11:47] Ubit Umarov: about ubode unmaged code, i can only compile for win32, 64 and linux64 [11:47] Ubit Umarov: not mac or linux32 [11:48] Ubit Umarov: good news is that gavin told he will complie for mac in next few days [11:48] Ubit Umarov: as i did many times in past [11:48] Ubit Umarov: i mean as HE did.. [11:48] Ubit Umarov: :) [11:48] Michael.Christopher @cc.opensimulator.org:8002: ok good lol i was trying to think of a way to safely offer to use ours :)) [11:49] Ubit Umarov: so mac users will also get the happy BSODs [11:49] Ubit Umarov: ( not sure if also blue on mac ) [11:51] Ubit Umarov: so what news do you have? [11:52] Michael.Christopher @cc.opensimulator.org:8002: done with the patent filing and supposed to have a database specialist on the way over to try ti figure out where we should start [11:52] Andrew Hellershanks: Hearing that Gavin is still working on the code is good news. [11:52] Andrew Hellershanks: Michael, what patent filing? [11:53] Michael.Christopher @cc.opensimulator.org:8002: reality integration layer [11:53] Ubit Umarov: Well and speaking of Gavin, there is a new pre-release Firestorm [11:53] Ubit Umarov: oops lol :) [11:53] Andrew Hellershanks: :) [11:53] Ubit Umarov: that includes now LL code with inventory validation [11:54] Ubit Umarov: seems some people is getting errors on that and can't use the viewer [11:54] Ubit Umarov: i have no idea still [11:54] Ubit Umarov: but that "validation" is ofc acording to current lindens idea of what a inventory should be [11:54] Ubit Umarov: would not be suprised if the also had fails at SL [11:55] Ubit Umarov: but sadly many to be expected here, with the old inventories some ppl have [11:55] Kayaker Magic: The new FS beta solves a problem with Vivox that Kitely was having with HG TPs. [11:55] Ubit Umarov: ahh the loop thing? [11:56] Kayaker Magic: I hear Vivox was hanging up on an HG TP [11:56] Ubit Umarov: seem a commi tby Beq fixing that [11:56] Ubit Umarov: seems the viewer was placed on a never ending loop :) [11:57] Kayaker Magic: Right. That has been fixed! [11:57] Michael.Christopher @cc.opensimulator.org:8002: Opensim was the original inspiration, but "the same solution" should be usable in most to all virtual environments. It's a question of use case for each company how they would best use it (end users should benefit from our platform but not have to pay for it) [11:57] Ubit Umarov: well the rebakes 2 seconds or so afatasr arrival on a region also now gone [11:58] Ubit Umarov: i did spoke about that fix on another meeting [11:58] Ubit Umarov: me rye and beq [11:59] Selby.Evans @grid.kitely.com:8002: must go -- bye all [11:59] Ubit Umarov: and the bad extra "!" [11:59] Michael.Christopher @cc.opensimulator.org:8002: bye selby! [12:00] Andrew Hellershanks: Bye, Selby [12:00] Andrew Hellershanks: Another hour has gone by. Any last minute items for today? [12:00] Michael.Christopher @cc.opensimulator.org:8002: not here [12:01] Kayaker Magic: Not from me! [12:01] Andrew Hellershanks: ok. I don't see anyone else typing so I will take that as a no from the others. [12:01] Andrew Hellershanks: Thank you all for coming. See you again next week. [12:01] Michael.Christopher @cc.opensimulator.org:8002: have a great week everyone!