Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1eu970-0002Qk-Pk for pgadmin-hackers@arkaria.postgresql.org; Fri, 09 Mar 2018 03:54:31 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1eu96y-0006VP-TM for pgadmin-hackers@arkaria.postgresql.org; Fri, 09 Mar 2018 03:54:28 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1eu96y-0006VF-JX for pgadmin-hackers@lists.postgresql.org; Fri, 09 Mar 2018 03:54:28 +0000 Received: from mail-oi0-x231.google.com ([2607:f8b0:4003:c06::231]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1eu96u-0000tW-4B for pgadmin-hackers@postgresql.org; Fri, 09 Mar 2018 03:54:27 +0000 Received: by mail-oi0-x231.google.com with SMTP id f186so6063407oig.4 for ; Thu, 08 Mar 2018 19:54:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=s760oXFx8/8UZQatWnJ0/m8GjNeRaR7mBELUcFQ2uaw=; b=1IMpRq6P9BO8kxjijCNjhIO4ISUHk8Fx9EDrB+txlR0X2bYssvHAiDLZXKRaO1kWuI jE3n05ssBp2sFOQ5wCo+oNuF+/uYrx5fNvkiADYUbQSNpd3mGkUG0U5TkS6YzUuqeKad 36qp8yV4O3lbbJIzs7m0lZiB0/vqEk96eQe1Nj5SbTAzKQAw5sNN20nD1RQ5rh/hKN4v 6HaAXFf9yxV5Cb4e3n3ldEASX7+z7n5bYXrX2A5ZLuannpUKU8TCJrSvZcSfEl9k3dss bpLUimu4CZ1kZdgb0ikEgeW+O7M7PYD9fn4PsjYeLDx21G+lRxlAR7BvA8hfiOteemv7 2xRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=s760oXFx8/8UZQatWnJ0/m8GjNeRaR7mBELUcFQ2uaw=; b=da8LszyOneB0HZAxs54/nE50SLD2ak4668Os2NQ3puMERADtd5F/9giBt110OBzTJv EDqYWQo6EpUHSlOddvUdtU93yR9MyHmTSj2lYk3dVEJfvtfhOTb0FMbKryUCcrUogYXg JqO/lJEwofkVRMcc4S6bCj0gSeLioXU+7RYcKJOgElac+T+2rpe9qE5b9eckYavYRVwL 3hTA9wr/xRP41u9iX3tdPpSGXe89B/Y0ColZ5GrlYfo5dujqSNULSc92vV9D9B1elogr dr8Jei2EBDetzB5oGnmQd0T0XLILz+ozvzjJ42MyXAp7oragg5kLWWlOQqfTOsBkLCFt q3Uw== X-Gm-Message-State: AElRT7HsarFMC0n/xDiJhHbNLfJHpTMpc/WbJk9rHFo8Q/wqOzw6T63K CPyf7U6o0HVjM9cDmLPIbbdRZxFygttq933BsKSV1w== X-Google-Smtp-Source: AG47ELu80+4iwB0WLrJeyQv0S71FFmcbIB+iVhjaCe37cOHQdJScchDTvCteqpqFsh3o3Pa1SDuwTMJK9qoW84z/Oqo= X-Received: by 10.202.183.2 with SMTP id h2mr19056303oif.127.1520567661878; Thu, 08 Mar 2018 19:54:21 -0800 (PST) MIME-Version: 1.0 Received: by 10.74.203.154 with HTTP; Thu, 8 Mar 2018 19:54:21 -0800 (PST) In-Reply-To: References: From: Khushboo Vashi Date: Fri, 9 Mar 2018 09:24:21 +0530 Message-ID: Subject: =?UTF-8?Q?Re=3A_=5BpgAdmin4=5D=5BPatch=5D=3A_RM_=232963_=2D_Backup_database=2C_R?= =?UTF-8?Q?estore_database_and_Maintenance_Database_failed_for_=C3=A9_objec?= =?UTF-8?Q?t=2E?= To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="001a113cd336587dad0566f2bf9d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --001a113cd336587dad0566f2bf9d Content-Type: multipart/alternative; boundary="001a113cd336587da80566f2bf9b" --001a113cd336587da80566f2bf9b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, Please find the attached patch to fix below issues: 1. #2963 - Backup database, Restore database and Maintenance Database failed for =C3=A9 object 2. #3157 - Process viewer doesn't show complete command executed. Test cases are not included for these fixes as we don't have test cases for these modules (backup, restore, maintenance). I will create one separate RM for the same which will cover this. Thanks, Khushboo On Fri, Jan 12, 2018 at 3:24 PM, Dave Page wrote: > Hi > > On Wed, Jan 10, 2018 at 6:59 AM, Khushboo Vashi < > khushboo.vashi@enterprisedb.com> wrote: > >> >> >> On Wed, Jan 3, 2018 at 8:54 PM, Dave Page wrote: >> >>> Hi >>> >>> On Mon, Dec 25, 2017 at 11:03 AM, Khushboo Vashi < >>> khushboo.vashi@enterprisedb.com> wrote: >>> >>>> Hi, >>>> >>>> Please find the attached patch to fix RM #2963: Backup database, >>>> Restore database and Maintenance Database failed for =C3=A9 object. >>>> >>> >>> With the patch applied, I get: >>> >>> 2018-01-03 15:23:00,110: INFO pgadmin: Executing the process executor >>> with the arguments: ['/Users/dpage/.virtualenvs/pgadmin4/bin/python', >>> '/Users/dpage/git/pgadmin4/web/pgadmin/misc/bgprocess/process_executor.= py', >>> '/usr/local/pgsql/bin/pg_dump', u'--file', u'/Users/dpage/e.sql', >>> u'--host', u'localhost', u'--port', '5432', u'--username', u'postgres', >>> u'--no-password', u'--verbose', u'--format=3Dc', u'--blobs', u'\xe9'] >>> 2018-01-03 15:23:00,117: INFO werkzeug: 127.0.0.1 - - [03/Jan/2018 >>> 15:23:00] "POST /backup/job/1/object HTTP/1.1" 200 - >>> Exception in thread Thread-6: >>> Traceback (most recent call last): >>> File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/py= thon2.7/threading.py", >>> line 810, in __bootstrap_inner >>> self.run() >>> File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/py= thon2.7/threading.py", >>> line 763, in run >>> self.__target(*self.__args, **self.__kwargs) >>> File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/py= thon2.7/SocketServer.py", >>> line 602, in process_request_thread >>> self.handle_error(request, client_address) >>> File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/py= thon2.7/SocketServer.py", >>> line 599, in process_request_thread >>> self.finish_request(request, client_address) >>> File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/py= thon2.7/SocketServer.py", >>> line 334, in finish_request >>> self.RequestHandlerClass(request, client_address, self) >>> File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/py= thon2.7/SocketServer.py", >>> line 655, in __init__ >>> self.handle() >>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/= werkzeug/serving.py", >>> line 200, in handle >>> rv =3D BaseHTTPRequestHandler.handle(self) >>> File "/System/Library/Frameworks/Python.framework/Versions/2.7/li >>> b/python2.7/BaseHTTPServer.py", line 340, in handle >>> self.handle_one_request() >>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/= werkzeug/serving.py", >>> line 235, in handle_one_request >>> return self.run_wsgi() >>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/= werkzeug/serving.py", >>> line 177, in run_wsgi >>> execute(self.server.app) >>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/= werkzeug/serving.py", >>> line 165, in execute >>> application_iter =3D app(environ, start_response) >>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/= flask/app.py", >>> line 2000, in __call__ >>> return self.wsgi_app(environ, start_response) >>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/= flask/app.py", >>> line 1991, in wsgi_app >>> response =3D self.make_response(self.handle_exception(e)) >>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/= flask/app.py", >>> line 1567, in handle_exception >>> reraise(exc_type, exc_value, tb) >>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/= flask/app.py", >>> line 1988, in wsgi_app >>> response =3D self.full_dispatch_request() >>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/= flask/app.py", >>> line 1641, in full_dispatch_request >>> rv =3D self.handle_user_exception(e) >>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/= flask/app.py", >>> line 1544, in handle_user_exception >>> reraise(exc_type, exc_value, tb) >>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/= flask/app.py", >>> line 1639, in full_dispatch_request >>> rv =3D self.dispatch_request() >>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/= flask/app.py", >>> line 1625, in dispatch_request >>> return self.view_functions[rule.endpoint](**req.view_args) >>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/= flask_login.py", >>> line 792, in decorated_view >>> return func(*args, **kwargs) >>> File "/Users/dpage/git/pgadmin4/web/pgadmin/misc/bgprocess/__init__.p= y", >>> line 62, in index >>> return make_response(response=3DBatchProcess.list()) >>> File "/Users/dpage/git/pgadmin4/web/pgadmin/misc/bgprocess/processes.= py", >>> line 512, in list >>> desc =3D loads(p.desc) >>> File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/py= thon2.7/pickle.py", >>> line 1381, in loads >>> file =3D StringIO(str) >>> UnicodeEncodeError: 'ascii' codec can't encode character u'\ufffd' in >>> position 138: ordinal not in range(128) >>> >>> Fixed. Please find the attached updated patch. >> >>> > That's getting further, but still not right. Please see the attached > screenshot - the beginning of the executed command has been lost. > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --001a113cd336587da80566f2bf9b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Please find the attached patch to f= ix below issues:

1. #2963 - Backup database, Resto= re database and Maintenance Database failed for =C3=A9 object
2. = #3157 - Process viewer doesn't show complete command executed.

Test cases are not included for these fixes as we don'= t have test cases for these modules (backup, restore, maintenance).
I will create one separate RM for the same which will cover this.<= div>
Thanks,
Khushboo


=

On Fr= i, Jan 12, 2018 at 3:24 PM, Dave Page <dpage@pgadmin.org> wr= ote:
Hi

On Wed,= Jan 10, 2018 at 6:59 AM, Khushboo Vashi <khushboo.vashi@ent= erprisedb.com> wrote:
=


On Wed, Jan 3, 2018 at 8:54= PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Mon, Dec 25, 2017 at 11:03 AM, Khushboo Vashi <khushboo.vashi@enterprisedb.com> wrote:
Hi,
Please find the attached patch to fix RM #2963:=C2=A0Backup= database, Restore database and Maintenance Database failed for =C3=A9 obje= ct.

With the patch appli= ed, I get:

2018-01-03 15:23:00,110: INFO pgadmin: Executing the process executor with the arguments: ['/User= s/dpage/.virtualenvs/pgadmin4/bin/python', '/Users/dpage/git/p= gadmin4/web/pgadmin/misc/bgprocess/process_executor.py', '= ;/usr/local/pgsql/bin/pg_dump', u'--file', u'/Users/dp= age/e.sql', u'--host', u'localhost', u'--port',= '5432', u'--username', u'postgres', u'--no-pas= sword', u'--verbose', u'--format=3Dc', u'--blobs= 9;, u'\xe9']
2018-01-03 15:23:00,117: INFO werkzeug: 127.0.0.1 - - [03/Jan/2018 15:23:00] "POST /backup/job/1/obje= ct HTTP/1.1" 200 -
Exception in thread Thread-6:
T= raceback (most recent call last):
=C2=A0 File "/System/Libra= ry/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threadi= ng.py", line 810, in __bootstrap_inner
=C2=A0 =C2=A0 self.ru= n()
=C2=A0 File "/System/Library/Frameworks/Python.fram= ework/Versions/2.7/lib/python2.7/threading.py", line 763, in run<= /div>
=C2=A0 =C2=A0 self.__target(*self.__args, **self.__kwargs)
<= div>=C2=A0 File "/System/Library/Frameworks/Python.framework/Vers= ions/2.7/lib/python2.7/SocketServer.py", line 602, in process_req= uest_thread
=C2=A0 =C2=A0 self.handle_error(request, client_addre= ss)
=C2=A0 File "/System/Library/Frameworks/Python.fram= ework/Versions/2.7/lib/python2.7/SocketServer.py", line 599, in p= rocess_request_thread
=C2=A0 =C2=A0 self.finish_request(request, = client_address)
=C2=A0 File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", li= ne 334, in finish_request
=C2=A0 =C2=A0 self.RequestHandlerClass(= request, client_address, self)
=C2=A0 File "/System/Lib= rary/Frameworks/Python.framework/Versions/2.7/lib/python2.7/Socke= tServer.py", line 655, in __init__
=C2=A0 =C2=A0 self.handle= ()
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/= python2.7/site-packages/werkzeug/serving.py", line 200, in handle=
=C2=A0 =C2=A0 rv =3D BaseHTTPRequestHandler.handle(self)
=C2=A0 File "/System/Library/Frameworks/Python.framework/= Versions/2.7/lib/python2.7/BaseHTTPServer.py", line 340, in = handle
=C2=A0 =C2=A0 self.handle_one_request()
=C2=A0 F= ile "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa<= wbr>ges/werkzeug/serving.py", line 235, in handle_one_request
=C2=A0 =C2=A0 return self.run_wsgi()
=C2=A0 File "/Users/d= page/.virtualenvs/pgadmin4/lib/python2.7/site-packages/werkzeug/s= erving.py", line 177, in run_wsgi
=C2=A0 =C2=A0 execute(self= .server.app)
=C2=A0 File "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/werkzeug/serving.py", line 165,= in execute
=C2=A0 =C2=A0 application_iter =3D app(environ, start= _response)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadm= in4/lib/python2.7/site-packages/flask/app.py", line 2000, in __ca= ll__
=C2=A0 =C2=A0 return self.wsgi_app(environ, start_response)<= /div>
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/pyt= hon2.7/site-packages/flask/app.py", line 1991, in wsgi_app
<= div>=C2=A0 =C2=A0 response =3D self.make_response(self.handle_exceptio= n(e))
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/l= ib/python2.7/site-packages/flask/app.py", line 1567, in handle_ex= ception
=C2=A0 =C2=A0 reraise(exc_type, exc_value, tb)
= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/sit= e-packages/flask/app.py", line 1988, in wsgi_app
=C2=A0= =C2=A0 response =3D self.full_dispatch_request()
=C2=A0 File &qu= ot;/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", line 1641, in full_dispatch_request
=C2=A0 = =C2=A0 rv =3D self.handle_user_exception(e)
=C2=A0 File "/Us= ers/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask= /app.py", line 1544, in handle_user_exception
=C2=A0 =C2=A0 = reraise(exc_type, exc_value, tb)
=C2=A0 File "/Users/dpage/.= virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py&quo= t;, line 1639, in full_dispatch_request
=C2=A0 =C2=A0 rv =3D self= .dispatch_request()
=C2=A0 File "/Users/dpage/.virtualenvs/p= gadmin4/lib/python2.7/site-packages/flask/app.py", line 1625= , in dispatch_request
=C2=A0 =C2=A0 return self.view_functions[ru= le.endpoint](**req.view_args)
=C2=A0 File "/Users/dpage= /.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask_login.py= ", line 792, in decorated_view
=C2=A0 =C2=A0 return func(*ar= gs, **kwargs)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/misc/bgprocess/__init__.py", line 62, in index
=C2=A0 =C2=A0 return make_response(response=3DBatchProcess.list())
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/misc/= bgprocess/processes.py", line 512, in list
=C2=A0 =C2= =A0 desc =3D loads(p.desc)
=C2=A0 File "/System/Library/Fram= eworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py"= ;, line 1381, in loads
=C2=A0 =C2=A0 file =3D StringIO(str)
=
UnicodeEncodeError: 'ascii' codec can't encode character u= '\ufffd' in position 138: ordinal not in range(128)=C2=A0

Fixed. Please find the attached updated patch.=C2=A0

Tha= t's getting further, but still not right. Please see the attached scree= nshot - the beginning of the executed command has been lost.

--
Dave Page
Blog: http://pgsnake.blogspot.com=
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterpr= ise PostgreSQL Company

--001a113cd336587da80566f2bf9b-- --001a113cd336587dad0566f2bf9d Content-Type: text/x-patch; charset="US-ASCII"; name="RM_2963_3157.patch" Content-Disposition: attachment; filename="RM_2963_3157.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jejelg7x1 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2MvYmdwcm9jZXNzL3Byb2Nlc3Nlcy5weSBiL3dl Yi9wZ2FkbWluL21pc2MvYmdwcm9jZXNzL3Byb2Nlc3Nlcy5weQppbmRleCAwMmI5NTNkLi4zODVi N2JkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9taXNjL2JncHJvY2Vzcy9wcm9jZXNzZXMucHkK KysrIGIvd2ViL3BnYWRtaW4vbWlzYy9iZ3Byb2Nlc3MvcHJvY2Vzc2VzLnB5CkBAIC03OCwxMCAr NzgsMjAgQEAgY2xhc3MgQmF0Y2hQcm9jZXNzKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgXygi Q291bGQgbm90IGZpbmQgYSBwcm9jZXNzIHdpdGggdGhlIHNwZWNpZmllZCBJRC4iKQogICAgICAg ICAgICAgKQogCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRtcF9kZXNjID0gbG9hZHMocC5k ZXNjLmVuY29kZSgnbGF0aW4tMScpKSBpZiBcCisgICAgICAgICAgICAgICAgSVNfUFkyIGFuZCBo YXNhdHRyKHAuZGVzYywgJ2VuY29kZScpIGVsc2UgbG9hZHMocC5kZXNjKQorICAgICAgICBleGNl cHQgVW5pY29kZURlY29kZUVycm9yOgorICAgICAgICAgICAgdG1wX2Rlc2MgPSBsb2FkcyhwLmRl c2MuZW5jb2RlKCd1dGYtOCcpKSBpZiBcCisgICAgICAgICAgICAgICAgSVNfUFkyIGFuZCBoYXNh dHRyKHAuZGVzYywgJ2VuY29kZScpIGVsc2UgbG9hZHMocC5kZXNjKQorICAgICAgICBleGNlcHQg RXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICB0bXBfZGVzYyA9IGxvYWRzKHAuZGVzYy5lbmNv ZGUoJ3V0Zi04JywgJ2lnbm9yZScpKSBpZiBcCisgICAgICAgICAgICAgICAgSVNfUFkyIGFuZCBo YXNhdHRyKHAuZGVzYywgJ2VuY29kZScpIGVsc2UgbG9hZHMocC5kZXNjKQorCiAgICAgICAgICMg SUQKICAgICAgICAgc2VsZi5pZCA9IF9pZAogICAgICAgICAjIERlc2NyaXB0aW9uCi0gICAgICAg IHNlbGYuZGVzYyA9IGxvYWRzKHAuZGVzYykKKyAgICAgICAgc2VsZi5kZXNjID0gdG1wX2Rlc2MK ICAgICAgICAgIyBTdGF0dXMgQWNrbm93bGVkZ2VkIHRpbWUKICAgICAgICAgc2VsZi5hdGltZSA9 IHAuYWNrbm93bGVkZ2UKICAgICAgICAgIyBDb21tYW5kCkBAIC0xNzEsNiArMTgxLDE2IEBAIGNs YXNzIEJhdGNoUHJvY2VzcyhvYmplY3QpOgogICAgICAgICAgICAgY3N2X3dyaXRlci53cml0ZXJv dyhfYXJncykKIAogICAgICAgICBhcmdzX3ZhbCA9IGFyZ3NfY3N2X2lvLmdldHZhbHVlKCkuc3Ry aXAoc3RyKCdcclxuJykpCisgICAgICAgIHRtcF9kZXNjID0gZHVtcHMoc2VsZi5kZXNjKQorICAg ICAgICB0cnk6CisgICAgICAgICAgICB0bXBfZGVzYyA9dG1wX2Rlc2MuZGVjb2RlKCd1dGYtOCcp IGlmXAorICAgICAgICAgICAgICAgIElTX1BZMiBhbmQgaGFzYXR0cih0bXBfZGVzYywgJ2RlY29k ZScpIGVsc2UgdG1wX2Rlc2MKKyAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKKyAg ICAgICAgICAgIHRtcF9kZXNjID0gdG1wX2Rlc2MuZGVjb2RlKCdsYXRpbi0xJykgaWYgXAorICAg ICAgICAgICAgICAgIElTX1BZMiBhbmQgaGFzYXR0cih0bXBfZGVzYywgJ2RlY29kZScpIGVsc2Ug dG1wX2Rlc2MKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHRtcF9kZXNj ID0gdG1wX2Rlc2MuZGVjb2RlKCd1dGYtOCcsICdpZ25vcmUnKSBpZiBcCisgICAgICAgICAgICAg ICAgSVNfUFkyIGFuZCBoYXNhdHRyKHRtcF9kZXNjLCAnZGVjb2RlJykgZWxzZSB0bXBfZGVzYwog CiAgICAgICAgIGogPSBQcm9jZXNzKAogICAgICAgICAgICAgcGlkPWludChpZCksCkBAIC0xNzgs NyArMTk4LDcgQEAgY2xhc3MgQmF0Y2hQcm9jZXNzKG9iamVjdCk6CiAgICAgICAgICAgICBhcmd1 bWVudHM9YXJnc192YWwuZGVjb2RlKCd1dGYtOCcsICdyZXBsYWNlJykKICAgICAgICAgICAgIGlm IElTX1BZMiBhbmQgaGFzYXR0cihhcmdzX3ZhbCwgJ2RlY29kZScpIGVsc2UgYXJnc192YWwsCiAg ICAgICAgICAgICBsb2dkaXI9bG9nX2RpciwKLSAgICAgICAgICAgIGRlc2M9ZHVtcHMoc2VsZi5k ZXNjKSwKKyAgICAgICAgICAgIGRlc2M9dG1wX2Rlc2MsCiAgICAgICAgICAgICB1c2VyX2lkPWN1 cnJlbnRfdXNlci5pZAogICAgICAgICApCiAgICAgICAgIGRiLnNlc3Npb24uYWRkKGopCkBAIC01 MzQsNyArNTU0LDE3IEBAIGNsYXNzIEJhdGNoUHJvY2VzcyhvYmplY3QpOgogICAgICAgICAgICAg ZXRpbWUgPSBwYXJzZXIucGFyc2UocC5lbmRfdGltZSBvciBnZXRfY3VycmVudF90aW1lKCkpCiAK ICAgICAgICAgICAgIGV4ZWN1dGlvbl90aW1lID0gKGV0aW1lIC0gc3RpbWUpLnRvdGFsX3NlY29u ZHMoKQotICAgICAgICAgICAgZGVzYyA9IGxvYWRzKHAuZGVzYykKKyAgICAgICAgICAgIGRlc2Mg PSAiIgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGRlc2MgPSBsb2FkcyhwLmRl c2MuZW5jb2RlKCdsYXRpbi0xJykpIGlmIFwKKyAgICAgICAgICAgICAgICAgICAgSVNfUFkyIGFu ZCBoYXNhdHRyKHAuZGVzYywgJ2VuY29kZScpIGVsc2UgbG9hZHMocC5kZXNjKQorICAgICAgICAg ICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKKyAgICAgICAgICAgICAgICBkZXNjID0gbG9h ZHMocC5kZXNjLmVuY29kZSgndXRmLTgnKSkgaWYgXAorICAgICAgICAgICAgICAgICAgICBJU19Q WTIgYW5kIGhhc2F0dHIocC5kZXNjLCAnZW5jb2RlJykgZWxzZSBsb2FkcyhwLmRlc2MpCisgICAg ICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIGRlc2MgPSBsb2Fkcyhw LmRlc2MuZW5jb2RlKCd1dGYtOCcsICdpZ25vcmUnKSkgaWYgXAorICAgICAgICAgICAgICAgICAg ICBJU19QWTIgYW5kIGhhc2F0dHIocC5kZXNjLCAnZW5jb2RlJykgZWxzZSBsb2FkcyhwLmRlc2Mp CisKICAgICAgICAgICAgIGRldGFpbHMgPSBkZXNjCiAKICAgICAgICAgICAgIGlmIGlzaW5zdGFu Y2UoZGVzYywgSVByb2Nlc3NEZXNjKToKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2MvYmdw cm9jZXNzL3N0YXRpYy9qcy9iZ3Byb2Nlc3MuanMgYi93ZWIvcGdhZG1pbi9taXNjL2JncHJvY2Vz cy9zdGF0aWMvanMvYmdwcm9jZXNzLmpzCmluZGV4IDVlMzA1OTAuLjhhZDJjNjUgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL21pc2MvYmdwcm9jZXNzL3N0YXRpYy9qcy9iZ3Byb2Nlc3MuanMKKysr IGIvd2ViL3BnYWRtaW4vbWlzYy9iZ3Byb2Nlc3Mvc3RhdGljL2pzL2JncHJvY2Vzcy5qcwpAQCAt MjQ4LDcgKzI0OCw3IEBAIGRlZmluZSgnbWlzYy5iZ3Byb2Nlc3MnLCBbCiAgICAgICAgICAgaWYg KCFzZWxmLm5vdGlmaWVyKSB7CiAgICAgICAgICAgICB2YXIgaGVhZGVyID0gJCgnPGRpdj48L2Rp dj4nLCB7CiAgICAgICAgICAgICAgICAgY2xhc3M6ICdoNSBwZy1iZy1ub3RpZnktaGVhZGVyJywK LSAgICAgICAgICAgICAgfSkuYXBwZW5kKCQoJzxzcGFuPjwvc3Bhbj4nKS50ZXh0KHNlbGYuZGVz YykpLAorICAgICAgICAgICAgICB9KS5hcHBlbmQoJCgnPHNwYW4+PC9zcGFuPicpLnRleHQoXy5l c2NhcGUoc2VsZi5kZXNjKSkpLAogICAgICAgICAgICAgICBjb250ZW50ID0gJCgnPGRpdiBjbGFz cz0icGctYmctYmdwcm9jZXNzIHJvdyI+PC9kaXY+JykuYXBwZW5kKAogICAgICAgICAgICAgICAg IGhlYWRlcgogICAgICAgICAgICAgICApLmFwcGVuZCgKQEAgLTM2Niw3ICszNjYsNyBAQCBkZWZp bmUoJ21pc2MuYmdwcm9jZXNzJywgWwogICAgICAgICAgICAgc2VsZi5sb2dzWzBdLnNjcm9sbFRv cCA9IHNlbGYubG9nc1swXS5zY3JvbGxIZWlnaHQ7CiAgICAgICAgICAgfSk7CiAgICAgICAgICAg Ly8gc2V0IGJncHJvY2VzcyBkZXRhaWxlZCBkZXNjcmlwdGlvbgotICAgICAgICAgICRoZWFkZXIu ZmluZCgnLmJnLWRldGFpbGVkLWRlc2MnKS5odG1sKHNlbGYuZGV0YWlsZWRfZGVzYyk7CisgICAg ICAgICAgJGhlYWRlci5maW5kKCcuYmctZGV0YWlsZWQtZGVzYycpLmh0bWwoXy51bmVzY2FwZShz ZWxmLmRldGFpbGVkX2Rlc2MpKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIHNldCBiZ3Byb2Nl c3Mgc3RhcnQgdGltZQpAQCAtNTYyLDQgKzU2Miw0IEBAIGRlZmluZSgnbWlzYy5iZ3Byb2Nlc3Mn LCBbCiAgICAgfSk7CiAKICAgcmV0dXJuIHBnQnJvd3Nlci5CYWNrZ3JvdW5kUHJvY2Vzc09ic29y dmVyOwotfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfSk7CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi90b29scy9iYWNrdXAvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi90b29scy9i YWNrdXAvX19pbml0X18ucHkKaW5kZXggNzE1ZmY2ZS4uOWU3MGM0ZiAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vdG9vbHMvYmFja3VwL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xz L2JhY2t1cC9fX2luaXRfXy5weQpAQCAtOTcsMTEgKzk3LDkgQEAgY2xhc3MgQmFja3VwTWVzc2Fn ZShJUHJvY2Vzc0Rlc2MpOgogCiAgICAgICAgIGRlZiBjbWRBcmcoeCk6CiAgICAgICAgICAgICBp ZiB4OgotICAgICAgICAgICAgICAgICMgeCA9IGh0bWwuc2FmZV9zdHIoeCkKICAgICAgICAgICAg ICAgICB4ID0geC5yZXBsYWNlKCdcXCcsICdcXFxcJykKICAgICAgICAgICAgICAgICB4ID0geC5y ZXBsYWNlKCciJywgJ1xcIicpCiAgICAgICAgICAgICAgICAgeCA9IHgucmVwbGFjZSgnIiInLCAn XFwiJykKLQogICAgICAgICAgICAgICAgIHJldHVybiAnICInICsgeCArICciJwogICAgICAgICAg ICAgcmV0dXJuICcnCiAKQEAgLTExMSw2ICsxMDksNyBAQCBjbGFzcyBCYWNrdXBNZXNzYWdlKElQ cm9jZXNzRGVzYyk6CiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHNlbGYuY21k ICs9IGNtZEFyZyhhcmcpCiAKKwogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBtZXNzYWdlKHNlbGYp OgogICAgICAgICAjIEZldGNoIHRoZSBzZXJ2ZXIgZGV0YWlscyBsaWtlIGhvc3RuYW1lLCBwb3J0 LCByb2xlcyBldGMKQEAgLTE4OSw3ICsxODgsNyBAQCBjbGFzcyBCYWNrdXBNZXNzYWdlKElQcm9j ZXNzRGVzYyk6CiAgICAgICAgIHJlcyArPSAnPC9kaXY+PGRpdiBjbGFzcz0iaDUiPicKICAgICAg ICAgcmVzICs9IF8oIlJ1bm5pbmcgY29tbWFuZDoiKQogICAgICAgICByZXMgKz0gJzwvYj48YnI+ PHNwYW4gY2xhc3M9InBnLWJnLWNtZCBlbmFibGUtc2VsZWN0aW9uIj4nCi0gICAgICAgIHJlcyAr PSBodG1sLnNhZmVfc3RyKHNlbGYuY21kKQorICAgICAgICByZXMgKz0gaHRtbC5zYWZlX3N0cihj bWQgKyBzZWxmLmNtZCkKICAgICAgICAgcmVzICs9ICc8L3NwYW4+PC9kaXY+JwogCiAgICAgICAg IHJldHVybiByZXMK --001a113cd336587dad0566f2bf9d--