Skip site navigation (1)Skip section navigation (2)
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>