Chat log from the meeting on 2018-09-04

From OpenSimulator

Jump to: navigation, search

[11:09] Kayaker Magic: I could start with some OpenSim issues...
[11:09] Andrew.Hellershanks Fire away, Kayaker.
[11:09] Kayaker Magic: Thanks to Bill, I got my OSGrid regions up on 0.9.1 Snail Dev
[11:09] Bill Blight: woot
[11:09] Kayaker Magic: What does the 'Snail' in the name mean?
[11:10] Andrew.Hellershanks I was wondering about that.
[11:10] Bill Blight: means Ubit is Slow
[11:10] Andrew.Hellershanks hehe
[11:10] Gavin.Hird so not there is lag to be expected...
[11:10] Bill Blight: You know the old term "Snail Mail" .. Well, yeah that
[11:11] Andrew.Hellershanks Better than "slow boat from China". :)
[11:11] Kayaker Magic: I noticed there were sections that repeated several times in different ini files, I assume that id because Bill hacked them together from the old OSGrid and the new dev examples.
[11:11] Kayaker Magic: I ran some large complex scripts on XEngine and they worked as expected.
[11:11] Gavin.Hird there was a time when 3 days delivery delay for internet mail across the Atlantic was pretty normal
[11:12] Eldovar.Lamilton :)
[11:12] Kayaker Magic: I re-did the terrain on two regions with a script, and got lots of red error messages in the console about UDP
[11:12] Kayaker Magic: But those may be normal UDP errors... going to try it on some non 'Snail' region.
[11:13] Bill Blight: yes and that and the fact I do most my configs in the gridcommon, so some get repeated so I only have to change one file
[11:13] Andrew.Hellershanks Kayaker, Where you using the inworld terrain editing tools at the time of the red text?
[11:13] Bill Blight: if on linux , do some network tweaks and most the udp errors will go away
[11:13] Bill Blight: the UDP throttles in most nix systems is pretty anemic
[11:13] Kayaker Magic: No, a script that changed the regions with the OSSL set terrain call.
[11:13] Bill Blight: windows, cant help with
[11:15] Gavin.Hird did the terrain screw up because of this?
[11:15] Kayaker Magic: It did not seem to, but it was a fractal mountain and may have had some extra roughness to it.
[11:15] Gavin.Hird ok
[11:16] Kayaker Magic: I'll test with a smooth cubic terrain next time.
[11:17] Kayaker Magic: I was also running two regions in one instance, I just got them separated so I will switch to YEngine next.
[11:17] Eldovar.Lamilton What is Yengine?
[11:17] Kayaker Magic: A new script engine to replace XEngine.
[11:17] Andrew.Hellershanks I read the comments about YEngine in the ini file. Quite a few caveats about its use.
[11:17] Gavin.Hird I have only noticed that terrain edits sends a very large number of writes to the db, so it might be some buffer that overflowed somewhere
[11:17] Eldovar.Lamilton oh
[11:18] Kayaker Magic: Yeah, multiple regions was one caveat that stopped me.
[11:19] Andrew.Hellershanks nods
[11:19] Andrew.Hellershanks I also noticed it doesn't have some of the same setting options that are available to XEngine.
[11:19] Bill Blight: if it is large terrain you could be exceeding your max allowed packet size on mysql as well
[11:20] Bill Blight: YEngine does not need most of those settings I think
[11:21] Andrew.Hellershanks No, but I know of a group of users whi were making use of at least one of the settings in XEngine which isn't available to YEngine.
[11:21] Andrew.Hellershanks whi -> which
[11:21] Bill Blight: but is that setting actually useful or is it a placebo?
[11:21] Kayaker Magic: Hmm, the fractal terrain is writing the terrain in a random access order as it pops triangles off a stack, that might effect the error. A cubic terrain script writes the terrain in order and might not get the error. I'll find out.
[11:21] Andrew.Hellershanks Bill, it was useful for them. It isn't something most people would need to change.
[11:22] Bill Blight: you talking about the script delay factor?
[11:22] Andrew.Hellershanks Bill, yes, that's the one.
[11:22] Bill Blight: not sure how that is ever useful unless your servers are very slow
[11:23] Andrew.Hellershanks It has to do with what their scripts are doing. I mentioned it isn't a good idea to fiddle with that setting. I've set up a test region with YEngine for them. They can see how their scripts perform in it.
[11:24] Bill Blight: yeah , just because you can do a thing , does not mean you should ...
[11:24] Andrew.Hellershanks Right
[11:24] Bill Blight: there are quite a few settings that are undocumented or should not even be settings, IMHO
[11:24] Bill Blight: People screw it up and blame the code ... LOL
[11:24] Gavin.Hird One of the MOSES explosion scripts benefited from reducing the script delay factor significantly, not increasing it
[11:25] Ubit Umarov: (this seems exactly the same beer glass i had 2 weeks ago...)
[11:25] Andrew.Hellershanks If there are undocumented settings that should be settings they should be documented. The others can be left hidden.
[11:25] Bill Blight: funny thing is the scripts will not run faster than the min timer anyway
[11:25] Bill Blight: it is a placebo
[11:26] Bill Blight: Thinking an INI setting is going to make your system process scripts faster, is kind of silly
[11:26] Andrew.Hellershanks nods
[11:26] Bill Blight: all comes down to thread times, and system timers
[11:27] Andrew.Hellershanks right
[11:27] Andrew.Hellershanks Kayaker, do you have any other comments/questions?
[11:28] Kayaker Magic: No, thats it for now, and I have to leave here early for a lunch meeding in RL.
[11:28] Bill Blight: Last night I replaced the cannon balls in a bank of our cannons and was launching a hundred or so mesh smart cars at once that explode when they hit the ground ... No delay at all
[11:28] Andrew.Hellershanks Kayaker, ok.
[11:28] Andrew.Hellershanks grins at Bill
[11:29] Andrew.Hellershanks Someone doesn't like Smart cars?
[11:29] Bill Blight: well Smart cars are not much bigger than cannon balls, and most likely weigh less in real life ... HAHAHA
[11:29] Ubit Umarov: script delay factor is just a mult factor to the funtions time penalty
[11:29] Bill Blight: yeah pretty sure setting that to negative actually does nothing
[11:29] Bill Blight: just falls back to as fast as the system can do it anyway
[11:29] Ubit Umarov: what ? why negative?
[11:30] Bill Blight: umm
[11:30] Bill Blight: I meant percentage as in .5 not negative
[11:30] Bill Blight: mis spoke
[11:30] Ubit Umarov: not sure System.Threading.Thread.Sleep(delay); will like it neg :p
[11:31] Bill Blight: that was my thought Ubit
[11:31] Andrew.Hellershanks A negative should either be ignored or treated the same as 0.
[11:31] Bill Blight: and setting it less than 1 could vary well make it a negative
[11:31] Andrew.Hellershanks I have two brief items for today.
[11:32] Bill Blight: well, ok , not a negative, but less than the system can do anyway
[11:32] Ubit Umarov: hmm hmm sleep? that is actually wrong on ossl
[11:32] Ubit Umarov: damm
[11:32] Andrew.Hellershanks For those of you who don't follow the OS mailing list there was a recent posting that progress has been made in locating the cause of the memory leaks in Robust.
[11:32] Gavin.Hird I installed it and it works
[11:32] Kayaker Magic: GOOD NEWS!
[11:33] Bill Blight: For those not on Master
[11:33] Andrew.Hellershanks Terry Ford has narrowed it down to a problem in HttpServer.
[11:33] Bill Blight: Master does not seem to have the issue
[11:34] Andrew.Hellershanks There is a work around for some users but the root cause within HttpServer hasn't been identified.
[11:34] Bill Blight: Ubit put out a fixed HttpServer DLL
[11:34] Kayaker Magic: Very few systems show the error, only Andrew and one other (Discovery Grid) has ever seen this memory leak.
[11:35] Gavin.Hird I had it
[11:35] Eldovar.Lamilton So does that mean that Terry has fixed the cause for the memory leak?
[11:35] Gavin.Hird and it went away with the update
[11:35] Andrew.Hellershanks Kayaker, there have been a few people seeing it but not many.
[11:35] Bill Blight: I'd not say Terry fixed it, but he did help find it
[11:36] Kayaker Magic: Are there changes in the "snail" dev version of Robust that might have the fix?
[11:36] Bill Blight: if he applied the fixed DLL that should fix it
[11:36] Andrew.Hellershanks I have a grid running the released 0.9 that sees the problem. I haven't updated them to master. I'm thinking about doing that depending on whether there are any issues they might run in to with git master.
[11:36] Gavin.Hird normally after a restart of R obust in the moring, it would have grown from about 150 MB to 900 by now and 1.3 GB by next morning
[11:36] Bill Blight: There are a lot of changes to the httpserver in snail
[11:36] Gavin.Hird now it remains stable at around 180 mb
[11:36] Andrew.Hellershanks Gavin, that is a slow leak if it only went up by 400MB overnight.
[11:37] Andrew.Hellershanks I see a leak in the GB range in a matter of hours.
[11:37] Gavin.Hird it seemed like it slowed down a bit over time, but would eventually exhaust all memory
[11:38] Kayaker Magic: So this is a patch to one of the DLLs? Can I re-build just that and see an improovement?
[11:38] Gavin.Hird just replace the dll
[11:38] Bill Blight: there is a replacement DLL
[11:38] Andrew.Hellershanks Kayaker, the dll comes from opensim-libs.
[11:38] Bill Blight: no
[11:39] Bill Blight: well yes, but the replacement dll goes in the bin
[11:39] Bill Blight:
[11:40] Bill Blight: "Hi,
We had a report that the possible cause of some excessive use of
memory on Robust was its http server library (dll)
And some testing does confirm it.

Please get a replacement dll from:

and replace the files HttpServer_OpenSim.dll and
HttpServer_OpenSim.pdb on Opensim bin folder with this new ones.

On windows you may need to unblock the dll. Right click on it, see
Properties, then mark Unblock if present at bottom. Otherwise windows may
silent fail to load it, assuming it is a unsafe web download.

This applies only to version and possible
(this includes OSgrid OpenSimulator from
05-04-2018 and older releases)

THIS DOES NOT APPLY TO MASTER 0.9.1 or derivatives of it
(or next OSgrid releases)

Thanks Terry Ford for identifying this possible cause, and Dan
Banner for extra testing.

[11:42] Ubit Umarov: opensim-libs only has the source of the http server for master at the moment
[11:42] Andrew.Hellershanks Saying that master doesn't have the problem makes me wonder if that is indeed true or not as many people don't see the problem in the first place.
[11:42] Ubit Umarov: NOT THAT ONE :)
[11:42] Bill Blight: the httpserver in master is quite different
[11:43] Andrew.Hellershanks Ubit, What do you mean by "not that one"?
[11:43] Gavin.Hird what was actually fixed for this rebuilt version?
[11:43] Kayaker Magic: Very good news, but I have to run to lunch! Bye all!
[11:43] Bill Blight: so if you are on snail/master you do not NEED this fix, and it will break
[11:43] Andrew.Hellershanks ok, tc Kayaker.
[11:43] Andrew.Hellershanks Enjoy your lunch.
[11:44] Ubit Umarov: Andrew get new glasses... use of several GB of memory in a few hours is very visible
[11:44] Bill Blight: yeah Ubit, but not everyone was seeing it, and since fewer people are using master , it may not have shown up yet
[11:44] Andrew.Hellershanks Ubit, yes but I don't know how many other people are seeing that level of problem.
[11:45] Bill Blight: I still think it is a Linux kernel, Network stack, mono, lib , combo problem and not everyone sees it
[11:45] Gavin.Hird also many restart everything on a daily basis just out of precaution
[11:46] Ubit Umarov: yes restarts are a good cleanup :)
[11:46] Andrew.Hellershanks Gavin, I do that now so as not to crash the server.
[11:46] Gavin.Hird since I see it on macOS it is not Linux kernel
[11:46] Bill Blight: on linux , or at least ubuntu you can also run
[11:46] Bill Blight: sync; echo 1 > /proc/sys/vm/drop_caches
[11:46] Bill Blight: and free up the cached memory
[11:46] Eldovar.Lamilton Not necessary Linux kernel, as terry Ford runs everything on Windows
[11:47] Bill Blight: I should have just said Kernel
[11:47] Eldovar.Lamilton flüstert: :-
[11:47] Eldovar.Lamilton :-)
[11:47] Bill Blight: because not even all windows users saw it
[11:47] Gavin.Hird I think mono version is more likely
[11:48] Andrew Hellershanks: Gavin, more likely but I tried with several versions of mono and I didn't notice a difference.
[11:48] Gavin.Hird cause it started for me when I upgraded to early 5.x versions
[11:48] Andrew Hellershanks: Gavin, I saw it before I upgraded to 5.x
[11:48] Bill Blight: yes but problems seem to find you very easy Andrew, so you kind of throw the curve off ... LMAO
[11:48] Andrew Hellershanks: :)
[11:49] Andrew Hellershanks: Useful that I can see some of the problems as I can work on tracking down the problem.
[11:49] Eldovar.Lamilton indeed
[11:49] Andrew Hellershanks: Either fixing it or bugging Ubit about it to get it fixed. :)
[11:50] Eldovar.Lamilton :)
[11:50] Andrew Hellershanks: We are getting close to the hour. I have one other quick item the Eldovar has something for todays discussions.
[11:51] Andrew Hellershanks: I was looking at the changes in available OSSL functions between 0.8 and 0.9 and found there are some new functions not listed in the wiki. I'll be working on updating the wiki and ensuring the new functions are listed.
[11:52] Andrew Hellershanks: I'll also check the release notes for 0.9 and see if they should also be included there.
[11:52] Eldovar.Lamilton excellent!
[11:52] Andrew Hellershanks: That's it for my news.
[11:52] Andrew Hellershanks: Eldovar, You can go ahead with your item(s).
[11:52] Eldovar.Lamilton Thank you, that fits very well to my small topic
[11:52] Eldovar.Lamilton Regular expressions in scripts.
I recently thought that it would be helpful to have a builtin ossl function for regular expressions, something like

vector osRegexp(string regexp, string txt, integer startpos);
returning <index to first character, index to last character, 0>

Has this been discussed in the history of Opensimulator yet?
[11:54] Andrew Hellershanks: Have you looked at osRegexIsMatch()?
[11:54] Andrew Hellershanks:
[11:54] Eldovar.Lamilton oh ... no, I haven't ... have to check that, thank you
[11:54] Andrew Hellershanks: yw
[11:55] Bill Blight: this sounds a lot like llSubStringIndex as well
[11:55] Eldovar.Lamilton ah, ok .. that is a beginning, but not exactly what I need
[11:55] Andrew Hellershanks: Substring and regex are quite different operatinos.
[11:55] Eldovar.Lamilton right.
[11:55] Bill Blight: you looking to find any part of a string regardless of caps and such?
[11:56] Bill Blight: yes I understand regex just not sure what you are trying to do with it, as it can do so many things

[11:56] Eldovar.Lamilton I am looking to find a substring within a long string that matches the specified regular expression (longest match)
[11:56] Bill Blight: ahhh, so complete or partial match?
[11:57] Eldovar.Lamilton partial match
[11:57] Eldovar.Lamilton imagine I have a text and I am searching for a certain pattern in the text
[11:58] Bill Blight: I have a script that does something like that you can say "anything you want but if it contains the phrase hail hydra, in an case, it sees it and opens the doors"
[11:58] Andrew Hellershanks: "Hail Hydra"  :)
[11:59] Bill Blight: wrong sim
[11:59] Bill Blight: LOL
[11:59] Eldovar.Lamilton I have thought about implementing a regex dynamic state machine builder in a script, but that is absolutely inefficient.
[11:59] Bill Blight: but yes
[11:59] Eldovar.Lamilton I don't know C# (yet), but I know how to program in C. So then my question is: if I would provide a C function that parses regular expressions, would it be a lot of work to C-sharpify it and create the corresponding ossl function for usage in scripts?
And would someone do that?
[11:59] Eldovar.Lamilton :-)
[12:00] Andrew Hellershanks: Eldovar, there is a chance that the function you want already exists in C#.
[12:00] Christoph.Balhaus what about list osMatchString(string src, string pattern, integer start) ... would that do what you need?
[12:01] Eldovar.Lamilton only if pattern is a real regular expression and not just a fix pattern
[12:01] Eldovar.Lamilton Somethign like "G[a-zA-Z]? 0.*xx"
[12:02] Bill Blight: you can already cast an entire string to uppoer or lowercase and then test it with that function
[12:02] Eldovar.Lamilton So that would match a capital G optionally followed by a letter, then a space, then a zero, then anything and ending with xx
[12:03] Bill Blight: yeah
[12:03] Gavin.Hird I have a regex that search a dae file with the pattern count="133">[ID[-]?0-9 ]+</Name_array> and replace with all the named joints of a Bento skeleton
[12:03] Bill Blight: could be useful, for some,
[12:03] Gavin.Hird so you need regexes for complex pattern matching
[12:03] Eldovar.Lamilton yes, I mean a real finite state machine
[12:03] Eldovar.Lamilton yes
[12:04] Eldovar.Lamilton well, just for regular languages
[12:04] Eldovar.Lamilton not context free, that would be the next step :-)
[12:05] Bill Blight: osRegexIsmatch does check a string for a regex pattern , just does not return the indexes
[12:05] Eldovar.Lamilton right
[12:05] Bill Blight: just returns true/false it looks like
[12:06] Gavin.Hird Also since most DB engines now can do regex search and replace in database records, having access to regex in script could enable some interesting use cases
[12:06] Eldovar.Lamilton That would not be enough
[12:06] Andrew Hellershanks: Eldovar, do you want a function that returns an index to the start of the string that matches the regex?
[12:07] Bill Blight: start and end I think was what it looked like
[12:07] Eldovar.Lamilton yes, an index to the start of the substring that matches the regular expression, and an index to the end of the (longest) substring that matches it
[12:07] Andrew Hellershanks: Eldovar, I just did a quick search for regex in C# and found ->
[12:08] Andrew Hellershanks: That might not be the specific page you need but will give you an idea of some of the regex features available in C#.
[12:08] Eldovar.Lamilton scanning the page ...
[12:08] Ubit Umarov: better change the framework to 4.6
[12:09] Ubit Umarov: just is case..
[12:09] Eldovar.Lamilton ok, not exactly clean this microsoft regexp, but that would be a start. I think we can do better when implementing it by hand
[12:09] Ubit Umarov: some of those thinks may leak mem
[12:09] Ubit Umarov: not sure..
[12:10] Eldovar.Lamilton I usually don't trust library functions I haven't messed up myself :)
[12:10] Eldovar.Lamilton .. especially when they come from Microsoft
[12:10] Andrew Hellershanks: :)
[12:10] Eldovar.Lamilton These days I am cursing about the new version of Skype ...
[12:10] Ubit Umarov: they my do specialized dynamic compile and never release it, like happens with xml
[12:11] Andrew Hellershanks: Eldovar, if you click on the left side at the top of the list you will get more information on the regex features in C#. That includes two sets of links related to matching.
[12:11] Eldovar.Lamilton thank you, Andrew
[12:12] Andrew Hellershanks: Click "System.Text.RegularExpressions"
[12:12] Andrew Hellershanks: yw
[12:12] Eldovar.Lamilton done
[12:12] Andrew Hellershanks: Eldovar, do you have anything else you wanted to discuss?
[12:13] Andrew Hellershanks: Anything further to be said about the Robust memory leak we were talking about earlier, or any other last minute topic?

Personal tools
About This Wiki