Chat log from the meeting on 2017-10-24

[11:10] Arielle Popstar: anyone seen  issues? [11:10] Kayaker Magic: Well, I submitted a mantis about that slowdown in list fetches in mono 5.x [11:11] Andrew Hellershanks: Yes, I saw it. [11:11] Kayaker Magic: List fetches are ~50 times slower than mono 4.2, which is livable compared to the AppDomain problem that slowed fetches down to 1000 times slower! [11:12] Andrew Hellershanks: The problem is in mono? [11:12] Kayaker Magic: Probably. [11:13] Kayaker Magic: I'm hoping there is something Ubit can do, like change the data type for lists or something. [11:13] OtakuMegane Desu: It seems something in Mono 5 changed which triggers the slowdown with AppDomainLoading active. [11:14] Ubit Umarov is online. [11:14] Kayaker Magic: No, the AppDomainLoading problem is still there. If I set that to true, then I get BOTH slowdowns and fetches are 3000 times slower. [11:14] Arielle Popstar: what is the current recommended  mono version for Opensim? [11:14] Andrew Hellershanks: I wonder what could have been changed to affect list handling so drastically. [11:14] OtakuMegane Desu: So two issues that stack [11:14] Leighton.Marjoram @grid.lighthousepoint.co.uk:8002: Hi Ubit [11:15] Ubit Umarov: Hi [11:15] Andrew Hellershanks: brb [11:15] Kayaker Magic: Yeah, so I started a new mantis (8251) instead of adding it to the old (and different) one (8127) [11:15] Selby.Evans @grid.kitely.com:8002: hi Ubit [11:16] Andrew Hellershanks: Arielle, IIRC, not 4.2 :) [11:16] Ubit Umarov: the lsl lists thing ? [11:16] Kayaker Magic: Yes, there are apparently two problems. [11:16] Kayaker Magic: Mono 5.x makes list fetches ~50 times slower. [11:17] Kayaker Magic: If you also set AppDomainLoading=true they stack and you get list fetches 3000 times slower. [11:17] Ubit Umarov: think we did pass the AppDomain issue.. it can't be use if you want some performance from scripts [11:18] Ubit Umarov: leaves us with the problem of deleted script resources not being released [11:18] Ubit Umarov: but appdomains are not a good solution for this case [11:19] Ubit Umarov: they are 2 heavy on any simple function call [11:20] Ubit Umarov: now diferent performance on diferent mono versions..  is a diferent issue... and possible harder [11:20] George Equus: Hi to those I missed while away :) [11:20] Ubit Umarov: hmm ? you are all so silent.. [11:21] Arielle Popstar pats herr windows  server [11:21] Andrew Hellershanks: I was looking over the two mantis [11:24] Andrew Hellershanks: I was thinking of some other tests to check the difference in execution times [11:24] Kayaker Magic: I looked up mono on the opensimulator.org page, it says "mono 5.x seems to work" [11:25] Kayaker Magic: "mono 4.0 to 4.6 not ok" I certainly noticed that I could not compile opensim on mono 4.2 [11:25] Arielle Popstar: guess a  1000 times  slower  qualifies  as "seems" [11:25] Ubit Umarov: well on my home i7 i need to increase the look to 100 000 to see meaninful time [11:25] OtakuMegane Desu: For the most part yes it seems to. Not perfect though. [11:25] Kayaker Magic: But mono 4.2 seems to run it OK, even though it cannot compile [11:25] Andrew Hellershanks: Arielle, not likely to notice the problem unless you run timing tests. [11:26] Ubit Umarov: 0.000 009 time with 100 000 loops [11:26] Kayaker Magic: I only noticed because I have some terraforming scripts that loop for every meter of a region. [11:26] Ubit Umarov: err [11:26] Ubit Umarov: 0.000 09 ms [11:27] Kayaker Magic: ms or seconds? [11:27] Ubit Umarov: oops s [11:27] Ubit Umarov: its yr script jsut c&p so guess seconds [11:27] Kayaker Magic: what's 3 orders of magnitude between friends? :) [11:27] OtakuMegane Desu: It may not be a huge issue in many cases but it shouldn't be chewing up that much extra time without a good reason. [11:28] Kayaker Magic: I suppose I could go find the mono bug report page and try to write a report up for them..... [11:28] Ubit Umarov: well a lot slower on the linux VM on mono 5.2 [11:28] Ubit Umarov: 0,0106 S, 100 000 loops [11:29] Ubit Umarov: hmm i hope im not running with appdomain on it lol [11:30] Andrew Hellershanks: :) [11:31] Ubit Umarov: screen -r [11:31] Ubit Umarov: hmm doesn't work here [11:32] Arielle Popstar: e and  you know it [11:33] Ubit Umarov: AppDomainLoading = false  nopes [11:33] Ubit Umarov: well that vm is on a old Xeon.. and it is a VM [11:34] Ubit Umarov: BIll coild tell its details [11:34] Ubit Umarov: ( i know it does not suport AVX.. so older then 2012 ) [11:35] Arielle Popstar: HAi Brian [11:35] Brian.. @hg.viewtwo.net:8654: hello [11:35] Ubit Umarov: there is also that odd up/down keys issue.. i have no clue at the moment [11:35] Leighton.Marjoram @grid.lighthousepoint.co.uk:8002: Hi Brian [11:35] Kayaker Magic: What C# data structure does OpenSim use to implement lists? [11:35] George Equus: Hi Brian [11:35] Selby.Evans @grid.kitely.com:8002: Hi Brian [11:35] Andrew Hellershanks: My standalone has ADL set to false. I'll have to run some tests to see what sort of times I get with lists. [11:36] Andrew Hellershanks: Welcome, Brian. [11:36] Ubit Umarov: oops ppl just attached the test scripts to mantis [11:37] Ubit Umarov: hmm does sound like colsion btw vehicle and attachments [11:37] Ubit Umarov: ADL ? [11:38] Ubit Umarov: kay at moment think it uses a array [11:38] Arielle Popstar: app domain loading [11:39] Ubit Umarov: well adl was a try to release script resources as i said,  but it was not done for than on .net... it is a lot heavy [11:39] Ubit Umarov: it is just a simplicified inter process comunication.. but still a IPC [11:40] Ubit Umarov: that means tons a extra code on each simple call [11:40] Arielle Popstar: IPC? [11:40] Ubit Umarov: ( Inter Process Comunication) [11:40] Arielle Popstar: ty [11:40] Ubit Umarov: like word putting things on excel etc.. [11:41] Ubit Umarov: domains where created for a lot simpler cases.. but still IPC [11:42] Ubit Umarov: so.. we can't really use them on scripts, that do need to have some minimal performance [11:43] Ubit Umarov: ( and yes that leaves us with the memory and resources leak : [11:43] Andrew Hellershanks: Ubit, I was looking at the code. From what I can tell lists are handled as an array. [11:44] Andrew Hellershanks: it is defined in LSL_Types.cs [11:44] Ubit Umarov: but if its a compiler issue.. well we are in trouble... [11:46] Ubit Umarov: r=llList2Float(test,(integer)llFrand(500.0)); no reason for this to be slower [11:46] Ubit Umarov: hmm or is it the frand ? [11:46] Ubit Umarov: lets see with a constant index [11:47] Kayaker Magic: I never measured the time to create the list, only the time to read it. [11:47] Andrew Hellershanks: easy to determine that. Just change it to a sequential check of the list elements. [11:49] Ubit Umarov: r=llList2Float(test,i & 0x1ff); //random fetch   same time [11:50] Andrew Hellershanks: Another test is whether it is a problem with floats or all data types [11:50] Ubit Umarov: r=llList2Integer(test,i & 0x1ff); same time [11:50] Kayaker Magic: i originally saw the problem in a mixed list with string and floats. [11:50] Andrew Hellershanks: ok [11:51] Ubit Umarov: well i can't test other versions of mono on that VM [11:52] Ubit Umarov: just can tell my I7, compiled as release and running in 32B it a lot faster [11:52] Ubit Umarov: ( and on win7 64b) [11:52] Ubit Umarov: at least 100x [11:52] Andrew Hellershanks: My machine has mono 3.2.8 that I compiled and 5.2 installed via packages. [11:53] Andrew Hellershanks: I can test it later with both of those versions. [11:53] Ubit Umarov: odd the numbers do look a lot like ADL false/true no ? [11:54] Ubit Umarov: hmm ADL was like 100000x no ? [11:54] Kayaker Magic: No, it is two orders of magnitude less bad than the ADL results. [11:54] Ubit Umarov: ok [11:55] Ubit Umarov: hm and we do use arrays elsewhere on main code... lets hope this is not a larger issue [11:56] Ubit Umarov: i do expect adding/removing items from lists to be slow [11:56] Ubit Umarov: not getting them [11:56] Kayaker Magic: exactly [11:57] Ubit Umarov: anymore issues? [11:58] Ubit Umarov: im not beeing very active creating new bugs.. just keep looking to mantis [11:58] Ubit Umarov: and did mess up the C ( C++) ubOde ODE code [11:58] Kayaker Magic: Ubit, I would rather that you did not create bugs! Please work on fixing them instead! :) [11:59] Ubit Umarov: ufff fixing bugs, most time implies add new ones :p [11:59] Andrew Hellershanks nods [11:59] Ubit Umarov: but you should know how i say somethings by now ;) [12:00] Ubit Umarov: well i do see a few things that can be improved on the unmanaged part of ODE [12:00] Andrew Hellershanks: I've had a couple reports come my way that I'm looking at to see if they are really bugs or not.. [12:00] Ubit Umarov: so playing with that [12:00] Ubit Umarov: ( yes my test region is now running a odd version ) [12:01] Ubit Umarov: did also some testing using AVX instruction set... but.. yeack no visible improvements [12:01] Andrew Hellershanks: Wow. This hour really flew by. [12:02] Ubit Umarov: ( of course fell free to give any tips/donations to my paypal account ) [12:02] Ubit Umarov: :) [12:03] Ubit Umarov: at some point the httptests branch will be merged into master [12:03] Andrew Hellershanks: Any other topics for todays meeting? [12:03] Leighton.Marjoram @grid.lighthousepoint.co.uk:8002: just one quick question [12:03] Ubit Umarov: that will have some issues with some external modules.. ( one money module at least) [12:03] Ubit Umarov: due to changes on SSL suport [12:03] Leighton.Marjoram @grid.lighthousepoint.co.uk:8002: Is SSL fully implemented [12:03] Leighton.Marjoram @grid.lighthousepoint.co.uk:8002: I am testing it out and not having huge success getting it setup properly [12:04] Ubit Umarov: i have still a issue with SSL certs control on the several connection types [12:04] Ubit Umarov: we need diferent rules applied acording to the connection, [12:04] Ubit Umarov: and .net does not make that any easy [12:05] Ubit Umarov: adicionallyi do not find some sources of things we use, that needed some change for that [12:05] Ubit Umarov: (XMLRPC for example) [12:05] Ubit Umarov: so on SSL part im a bit stuck on that [12:06] Ubit Umarov: but it does read and uses certs now and we can run a region with SSL enabled [12:06] Leighton.Marjoram @grid.lighthousepoint.co.uk:8002: Ok that is the bit I am trying to get working [12:06] Ubit Umarov: just as i said, the control of the validations rules is not good [12:06] Leighton.Marjoram @grid.lighthousepoint.co.uk:8002: I was also wondering with Robust and OpenSim running SSL is the chat encrypted [12:07] Ubit Umarov: Robust is another nightmare [12:07] Ubit Umarov: what services should use SSL... make that configurable... yeack [12:08] Ubit Umarov: on regions, if you have a valid cert, enforce its use on all things.. httptests should work now [12:08] Ubit Umarov: ( i did fix the certs load code etc ( [12:08] Ubit Umarov: was dead since 2009 or something :( [12:08] Leighton.Marjoram @grid.lighthousepoint.co.uk:8002: ok :( [12:09] Ubit Umarov: well the changes related to that, will make some money modules unhappy [12:09] Ubit Umarov: bc they do depend on SSL of course [12:10] Ubit Umarov: and do even patch our code.. something we need to avoid in future [12:10] Andrew Hellershanks: Ubit, again? :) We already got complaints about money modules breaking due to the API change. [12:10] Ubit Umarov: since it is a maintnance nightmare [12:10] Leighton.Marjoram @grid.lighthousepoint.co.uk:8002: Is there any information about SSL support and how to enable it any where [12:11] Leighton.Marjoram @grid.lighthousepoint.co.uk:8002: I am using Bill BLights version of Opensim osCore2 [12:11] Ubit Umarov: Changed affecting external modules are to be expected.. the surprise was people not understanding that, specially on a major release [12:12] Ubit Umarov: and at a point where some of those modules do even patch our code, all over [12:12] Ubit Umarov: impossible to not break things in this case [12:12] Andrew Hellershanks nods [12:12] George Equus: Must run along as well, Interesting to follow discussion as always. [12:12] Leighton.Marjoram @grid.lighthousepoint.co.uk:8002: Bye George [12:13] George Equus try finding the exit... hmmm [12:13] Andrew Hellershanks: Just need to make sure the information gets in to the release notes next time. [12:13] Arielle Popstar: nod [12:13] Ubit Umarov: and we still need to improve a bit our basic suport for money actions [12:13] Ubit Umarov: ( not doing any true money code.. that is a opensim NO NO ) [12:14] Ubit Umarov: we will not do code to handle real money.. ( even limited with fake money ) [12:14] Andrew Hellershanks: np, Kayaker. It took a while to get the cast ray stuff sorted out. This may take a while too but eventually we'll get to the bottom of it. [12:15] Leighton.Marjoram @grid.lighthousepoint.co.uk:8002: I am going to head off too bye for now and see you again next week. [12:16] Ubit Umarov: a "compilers" diference is not a easy thing [12:16] Andrew Hellershanks: Ubit, not it isn't. I didn't say how long it would take. :) The raycast thing took a while. [12:17] Ubit Umarov: raycasts worked for ages ( on ubOde :p )