Views

Chat log from the meeting on 2017-10-24

From OpenSimulator

[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 )