Date: Thu, 22 Feb 2018 14:46:52 +0100 From: Karli =?ISO-8859-1?Q?Sj=F6berg?= <karli@inparadise.se> To: Marcin Cieslak <saper@saper.info> Cc: ports@freebsd.org, ruby@freebsd.org Subject: Re: monitoring ruby app memory usage with passenger-recycler (was: Cannot require library for passenger in ruby) Message-ID: <1519307212.1980.36.camel@inparadise.se> In-Reply-To: <1519290717.1980.31.camel@inparadise.se> References: <nycvar.OFS.7.76.6.1802202034350.2659@z.fncre.vasb> <1519282237.1980.26.camel@inparadise.se> <1519290717.1980.31.camel@inparadise.se>
next in thread | previous in thread | raw e-mail | index | archive | help
--=-QDo7nAmwfunbpiTj4ROo Content-Type: multipart/mixed; boundary="=-Jw6dE+CHeSE4vZUvY6cQ" --=-Jw6dE+CHeSE4vZUvY6cQ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, 2018-02-22 at 10:11 +0100, Karli Sj=C3=B6berg via freebsd-ports wrote: > On Thu, 2018-02-22 at 07:50 +0100, Karli Sj=C3=B6berg via freebsd-ports > wrote: > > On Tue, 2018-02-20 at 21:31 +0000, Marcin Cieslak wrote: > > > On Mon, 19 Feb 2018, Karli Sj=C3=B6berg wrote: > > >=20 > > > > > What is the tool you are trying to deploy? foreman_maintain? > > >=20 > > > Sorry, I was too quick. This foreman_main is used to > > > download/update > > > foreman > > > from RedHat Satellite servers, which is not what you want. > >=20 > > Well, I want the "foreman_maintain" package, which includes > > "passenger- > > recycler", so I guess I do want it :) > >=20 > > >=20 > > > However, the passenger-recycler script is a standalone script > > > which > > > could possibly used with this little fix: > >=20 > > Ooh, awesome! Yeah, should=C2=B4ve figured since it=C2=B4s only at 0.1.= 3 :) > >=20 > > >=20 > > > https://github.com/theforeman/foreman_maintain/pull/143 > > >=20 > > > To apply this, please add files/patch-bin_passenger-recycler in > > > the > > > port I've sent before: > > >=20 > > > --- bin/passenger-recycler.orig 2018-02-20 21:09:18 UTC > > > +++ bin/passenger-recycler > > > @@ -41,10 +41,10 @@ def process_status?(pid) > > > end > > > =20 > > > require 'phusion_passenger' > > > +PhusionPassenger.locate_directories > > > require 'phusion_passenger/platform_info' > > > require 'phusion_passenger/platform_info/ruby' > > > require 'phusion_passenger/admin_tools/memory_stats' > > > -PhusionPassenger.locate_directories > > > stats =3D PhusionPassenger::AdminTools::MemoryStats.new > > > unless stats.platform_provides_private_dirty_rss_information? > > > puts 'Please run as root or platform unsupported' > >=20 > > Yes, this works, thanks! > >=20 > > >=20 > > >=20 > > > But the real problem is that Passenger does think it supports > > > getting process private dirty RSS memory information only on > > > Linux: > > >=20 > > > https://github.com/phusion/passenger/blob/219ad24159ae4033a342e6a > > > d7 > > > 53 > > > cfee05d98bae0/src/ruby_supportlib/phusion_passenger/admin_tools/m > > > em > > > or > > > y_stats.rb#L121 > > >=20 > > > In file > > > src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb > > > : > > >=20 > > > 120 def platform_provides_private_dirty_rss_information? > > > 121 return os_name_simple =3D=3D "linux" > > > 122 end > > >=20 > > > This support probably would need to be written. So, > > > unfortunately, > > > passenger-recycler > > > as written will exit with: > > >=20 > > > Please run as root or platform unsupported > >=20 > > Yes, I have now gotten to this stage at least, thank you very much! > > I > > don=C2=B4t mind having a look at it, it might be simplest thing to > > write, > > or > > it=C2=B4s hell, but I=C2=B4ll have a look! > >=20 > > Thank you for pointing me in the right direction! > >=20 > > /K > >=20 > > >=20 > > > But passenger-recycler does something very simple - if the amount > > > of > > > "private resident RSS > > > memory" is higher than specified amount in the configuration > > > file, > > > it > > > kills the process. > > >=20 > > > You might get a much better monitoring on FreeBSD by monitoring > > > the > > > output of > > >=20 > > > procstat -v <processid> > > >=20 > > > which will give you details about the memory usage of the process > > > and > > > see how it is growing > > > over time. Maybe you can pinpoint the shared library that causes > > > this, if you are lucky. >=20 > How do I interpret the output of 'procstat -v <pid>' though? Can I > sum > up all of the RES or PRES numbers to get the total virtual memory > that > this process is consuming? I hacked at it a bit and came up with an updated patch that includes the changes you made, plus my own. Since "private dirty RSS" isn=C2=B4t available, I=C2=B4ve used "maximum RSS= " from 'procstat -r <pid>', which is far from perfect, but it=C2=B4s better than nothing. It now runs and does what you=C2=B4d expect :) I have attached it to this email. /K >=20 /K Marcin --=-Jw6dE+CHeSE4vZUvY6cQ Content-Disposition: attachment; filename="bin_passenger-recycler.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="bin_passenger-recycler.patch"; charset="UTF-8" LS0tIGJpbi9wYXNzZW5nZXItcmVjeWNsZXIgICAgICAyMDE4LTAyLTIyIDE0OjE5OjQwLjAwMDAw MDAwMCArMDEwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKysrIGJpbi9wYXNzZW5nZXItcmVjeWNsZXIgICAgICAyMDE4LTAyLTIyIDE0OjExOjMwLjAz NDkxMTAwMCArMDEwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKQEAgLTQxLDQxICs0MSw3NiBAQCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKIHJlcXVpcmUgJ3BodXNpb25fcGFzc2VuZ2VyJyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKK1BodXNpb25QYXNzZW5nZXIubG9jYXRlX2RpcmVjdG9yaWVzICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKIHJlcXVpcmUgJ3BodXNpb25fcGFzc2VuZ2VyL3BsYXRmb3Jt X2luZm8nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKIHJlcXVpcmUgJ3BodXNpb25fcGFzc2VuZ2VyL3BsYXRm b3JtX2luZm8vcnVieScgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKIHJlcXVpcmUgJ3BodXNpb25fcGFzc2VuZ2VyL2Fk bWluX3Rvb2xzL21lbW9yeV9zdGF0cycgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLVBodXNpb25QYXNzZW5nZXIubG9jYXRlX2Rp cmVjdG9yaWVzCiBzdGF0cyA9IFBodXNpb25QYXNzZW5nZXI6OkFkbWluVG9vbHM6Ok1lbW9yeVN0 YXRzLm5ldyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFs0Ny8zNzddCi11bmxlc3Mgc3RhdHMucGxhdGZvcm1fcHJvdmlkZXNfcHJpdmF0ZV9kaXJ0 eV9yc3NfaW5mb3JtYXRpb24/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCi0gIHB1dHMgJ1BsZWFzZSBydW4gYXMgcm9vdCBvciBwbGF0Zm9ybSB1 bnN1cHBvcnRlZCcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCi0gIGV4aXQgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCi1lbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCi1raWxsZWQgPSAwICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCi1zdGF0cy5wYXNzZW5nZXJfcHJvY2Vzc2VzLmVh Y2ggZG8gfHB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gIHBpZCA9IHAucGlkLnRvX2kgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gIGRlYnVnICJDaGVja2luZyAje3Bp ZH0gd2l0aCBSU1Mgb2YgI3twLnByaXZhdGVfZGlydHlfcnNzfSIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gIG5leHQgdW5sZXNzIHAucHJp dmF0ZV9kaXJ0eV9yc3MgPiBDT05GSUdbOk1BWF9QUklWX1JTU19NRU1PUlldICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gIHN0YXJ0ZWQgPSBiZWdp biAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCitjYXNlIFBodXNp b25QYXNzZW5nZXI6OlBsYXRmb3JtSW5mby5vc19uYW1lX3NpbXBsZSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCit3aGVuICJs aW51eCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgIHVu bGVzcyBzdGF0cy5wbGF0Zm9ybV9wcm92aWRlc19wcml2YXRlX2RpcnR5X3Jzc19pbmZvcm1hdGlv bj8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisg ICAgcHV0cyAnUGxlYXNlIHJ1biBhcyByb290IG9yIHBsYXRmb3JtIHVuc3VwcG9ydGVkJyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CisgICAgZXhpdCAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCisgIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCisgIGtpbGxlZCA9IDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCisgIHN0YXRzLnBhc3Nlbmdlcl9wcm9jZXNzZXMuZWFjaCBkbyB8cHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCisgICAgcGlkID0gcC5waWQudG9faSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCisgICAgZGVidWcgIkNoZWNraW5nICN7cGlkfSB3aXRoIFJTUyBvZiAj e3AucHJpdmF0ZV9kaXJ0eV9yc3N9IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCisgICAgbmV4dCB1bmxlc3MgcC5wcml2YXRlX2RpcnR5X3JzcyA+ IENPTkZJR1s6TUFYX1BSSVZfUlNTX01FTU9SWV0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCisgICAgc3RhcnRlZCA9IGJlZ2luICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgIGBwcyAtcCN7cGlkfSAtbyBz dGFydD1gLnN0cmlwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICByZXNjdWUgU3RhbmRhcmRF cnJvciA9PiBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgIHZlcmJvc2UgIkVy cm9yOiAje2UubWVzc2FnZX0gXG5SZXR1cm5pbmcgJz8nIiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICc/JyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBlbmQgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gIHN0YXR1c19wcyA9IGBw cyAtcCN7cGlkfSAtdWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gIHN0YXR1c19hbGwg PSBgcGFzc2VuZ2VyLXN0YXR1cyAyPiAvZGV2L251bGxgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gIHN0YXR1c19i YWNrdHJhY2VzID0gYHBhc3Nlbmdlci1zdGF0dXMgLS1zaG93PWJhY2t0cmFjZXMgMj4vZGV2L251 bGxgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gIHZlcmJv c2UgIlRlcm1pbmF0aW5nICN7cGlkfSAoc3RhcnRlZCAje3N0YXJ0ZWR9KSB3aXRoIHByaXZhdGUg ZGlydHkgUlNTIiBcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAg c3RhdHVzX3BzID0gYHBzIC1wI3twaWR9IC11YCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisg ICAgc3RhdHVzX2FsbCA9IGBwYXNzZW5nZXItc3RhdHVzIDI+IC9kZXYvbnVsbGAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CisgICAgc3RhdHVzX2JhY2t0cmFjZXMgPSBgcGFzc2VuZ2VyLXN0YXR1cyAtLXNob3c9YmFja3Ry YWNlcyAyPi9kZXYvbnVsbGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCisgICAgdmVyYm9zZSAiVGVybWluYXRpbmcgI3twaWR9IChzdGFydGVkICN7c3RhcnRlZH0p IHdpdGggcHJpdmF0ZSBkaXJ0eSBSU1MiIFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAgICAgICAgICAgIiBzaXplIG9mICN7cC5wcml2YXRlX2RpcnR5X3Jzc30gTUIiICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCi0gIFByb2Nlc3Mua2lsbCAnU0lHVVNSMScsIHBpZCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCi0gIHNsZWVwIENPTkZJR1s6R1JBQ0VGVUxfU0hVVERPV05fU0xFRVBdICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCi0gIGtpbGwocGlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCi0gIHByb2Nlc3Nfc3RhdHVzPyhwaWQpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCi0gIGlmIENPTkZJR1s6U0VORF9TVEFUVVNdICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgdmVyYm9zZSBzdGF0dXNfcHMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgdmVyYm9zZSBzdGF0dXNfYWxsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgdmVyYm9zZSBzdGF0dXNfYmFja3Ry YWNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgUHJvY2Vzcy5raWxsICdTSUdV U1IxJywgcGlkCisgICAgc2xlZXAgQ09ORklHWzpHUkFDRUZVTF9TSFVURE9XTl9TTEVFUF0KKyAg ICBraWxsKHBpZCkKKyAgICBwcm9jZXNzX3N0YXR1cz8ocGlkKQorICAgIGlmIENPTkZJR1s6U0VO RF9TVEFUVVNdCisgICAgICB2ZXJib3NlIHN0YXR1c19wcworICAgICAgdmVyYm9zZSBzdGF0dXNf YWxsCisgICAgICB2ZXJib3NlIHN0YXR1c19iYWNrdHJhY2VzCisgICAgZW5kCisgICAga2lsbGVk ICs9IDEKKyAgICBleGl0KDEpIGlmIGtpbGxlZCA+PSBDT05GSUdbOk1BWF9URVJNSU5BVElPTl0K KyAgZW5kCit3aGVuICJmcmVlYnNkIgorICBraWxsZWQgPSAwCisgIHN0YXRzLnBhc3Nlbmdlcl9w cm9jZXNzZXMuZWFjaCBkbyB8cHwKKyAgICBwaWQgPSBwLnBpZC50b19pCisgICAgcGlkX3JzcyA9 IGBwcm9jc3RhdCAtciAje3BpZH0gfCBhd2sgJy9tYXhpbXVtIFJTUy97cHJpbnQkNX0nYC5zdHJp cC50b19pCisgICAgcGlkX3Jzc19tYiA9IHNwcmludGYoIiUuMWYiLCBwaWRfcnNzIC8gMTAyNC4w KQorICAgIGRlYnVnICJDaGVja2luZyAje3BpZH0gd2l0aCBSU1Mgb2YgI3twaWRfcnNzfSIKKyAg ICBuZXh0IHVubGVzcyBwaWRfcnNzID4gQ09ORklHWzpNQVhfUFJJVl9SU1NfTUVNT1JZXQorICAg IHN0YXJ0ZWQgPSBiZWdpbgorICAgICAgICAgICAgICBgcHMgLXAje3BpZH0gLW8gc3RhcnQ9YC5z dHJpcAorICAgICAgICAgICAgcmVzY3VlIFN0YW5kYXJkRXJyb3IgPT4gZQorICAgICAgICAgICAg ICB2ZXJib3NlICJFcnJvcjogI3tlLm1lc3NhZ2V9IFxuUmV0dXJuaW5nICc/JyIKKyAgICAgICAg ICAgICAgJz8nCisgICAgICAgICAgICBlbmQKKyAgICBzdGF0dXNfcHMgPSBgcHMgLXAje3BpZH0g LXVgCisgICAgc3RhdHVzX2FsbCA9IGBwYXNzZW5nZXItc3RhdHVzIDI+IC9kZXYvbnVsbGAKKyAg ICBzdGF0dXNfYmFja3RyYWNlcyA9IGBwYXNzZW5nZXItc3RhdHVzIC0tc2hvdz1iYWNrdHJhY2Vz IDI+L2Rldi9udWxsYAorICAgIHZlcmJvc2UgIlRlcm1pbmF0aW5nICN7cGlkfSAoc3RhcnRlZCAj e3N0YXJ0ZWR9KSB3aXRoIFJTUyBzaXplIG9mIiBcCisgICAgICAgICAgICAiICN7cGlkX3Jzc19t Yn0gTUIiCisgICAgUHJvY2Vzcy5raWxsICdTSUdVU1IxJywgcGlkCisgICAgc2xlZXAgQ09ORklH WzpHUkFDRUZVTF9TSFVURE9XTl9TTEVFUF0KKyAgICBraWxsKHBpZCkKKyAgICBwcm9jZXNzX3N0 YXR1cz8ocGlkKQorICAgIGlmIENPTkZJR1s6U0VORF9TVEFUVVNdCisgICAgICB2ZXJib3NlIHN0 YXR1c19wcworICAgICAgdmVyYm9zZSBzdGF0dXNfYWxsCisgICAgICB2ZXJib3NlIHN0YXR1c19i YWNrdHJhY2VzCisgICAgZW5kCisgICAga2lsbGVkICs9IDEKKyAgICBleGl0KDEpIGlmIGtpbGxl ZCA+PSBDT05GSUdbOk1BWF9URVJNSU5BVElPTl0KICAgZW5kCi0gIGtpbGxlZCArPSAxCi0gIGV4 aXQoMSkgaWYga2lsbGVkID49IENPTkZJR1s6TUFYX1RFUk1JTkFUSU9OXQogZW5kCiBleGl0IDA= --=-Jw6dE+CHeSE4vZUvY6cQ-- --=-QDo7nAmwfunbpiTj4ROo Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQEcBAABCAAGBQJajsnMAAoJEBpo164N2cuR5CwIAInRLh6H0dzi4UQilwTKrRlW UoZKCEp8bXJ6lmZWopyYRs0dF4uCUHMPYbrJo1K5PNc/SkGkdy7gZU+cxRIwFW9A WbhR/S0suCBn1R0fFQeaHp6/3C/+lU1RpYcgimaxSlBHE5Bk8x7oY+x0UiEynNaL P7aWhV//nf548VeAdPeE6SAe/c7kbbxL3uhOn/n8d9ywCjRCjXrCZDzWJCgK5dDp 6Es+urV7Kxb07CqbOpZNgQcJTDrWoRq0mR9tVenbrSBo7iE7Zp9iTp/NmPiScJPz IX+DKPyaQArZZNcxT/4AffrIh0hoJUo9kkjQ4NiQEQriKQVzKk9FNGM/rH+PxyQ= =uv9y -----END PGP SIGNATURE----- --=-QDo7nAmwfunbpiTj4ROo--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1519307212.1980.36.camel>