Debug vdsm 4.0.0 report error: libvirt: XML-RPC error : Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied

This is a multipart message in MIME format. ------=_NextPart_000_001E_01D1E509.19780F20 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit I debugged vdsm with PyCharm, And I logged on my Centos 7.2 with root, and get an error as follows: Problem: Traceback (most recent call last): File "/usr/share/vdsm/vdsm", line 149, in run serve_clients(log) File "/usr/share/vdsm/vdsm", line 104, in serve_clients cif = clientIF.getInstance(irs, log, scheduler) File "/usr/share/vdsm/clientIF.py", line 204, in getInstance cls._instance = clientIF(irs, log, scheduler) File "/usr/share/vdsm/clientIF.py", line 106, in __init__ secret.clear() File "/usr/lib/python2.7/site-packages/vdsm/virt/secret.py", line 92, in clear con = libvirtconnection.get() File "/usr/lib/python2.7/site-packages/vdsm/libvirtconnection.py", line 163, in get password) File "/usr/lib/python2.7/site-packages/vdsm/libvirtconnection.py", line 99, in open_connection return utils.retry(libvirtOpen, timeout=10, sleep=0.2) File "/usr/lib/python2.7/site-packages/vdsm/utils.py", line 546, in retry return func() File "/usr/lib64/python2.7/site-packages/libvirt.py", line 105, in openAuth if ret is None:raise libvirtError('virConnectOpenAuth() failed') libvirtError: Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied Investitate: According to the traceback above, the code in libvirt.py as below, and os.geteuid() get '0' which shows the current user is root; def openAuth(uri, auth, flags=0): #print os.geteuid() ret = libvirtmod.virConnectOpenAuth(uri, auth, flags) if ret is None:raise libvirtError('virConnectOpenAuth() failed') return virConnect(_obj=ret) [root@server117 libvirt]# ll /var/run/libvirt/libvirt-sock srwxrwx---. 1 root qemu 0 Jul 19 23:43 /var/run/libvirt/libvirt-sock According that, root should not get an Permission denied error ? But why? And I setenforce=0 , and still show Perssion denied error. What's the reason? And how to solve it? Thank you. ------=_NextPart_000_001E_01D1E509.19780F20 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable <html xmlns:v=3D"urn:schemas-microsoft-com:vml" = xmlns:o=3D"urn:schemas-microsoft-com:office:office" = xmlns:w=3D"urn:schemas-microsoft-com:office:word" = xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" = xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta = http-equiv=3DContent-Type content=3D"text/html; = charset=3Dus-ascii"><meta name=3DGenerator content=3D"Microsoft Word 14 = (filtered medium)"><style><!-- /* Font Definitions */ @font-face {font-family:SimSun; panose-1:2 1 6 0 3 1 1 1 1 1;} @font-face {font-family:SimSun; panose-1:2 1 6 0 3 1 1 1 1 1;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4;} @font-face {font-family:SimSun; panose-1:2 1 6 0 3 1 1 1 1 1;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Calibri","sans-serif";} a:link, span.MsoHyperlink {mso-style-priority:99; color:blue; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {mso-style-priority:99; color:purple; text-decoration:underline;} span.EmailStyle17 {mso-style-type:personal-compose; font-family:"Calibri","sans-serif"; color:windowtext;} .MsoChpDefault {mso-style-type:export-only; font-family:"Calibri","sans-serif";} /* Page Definitions */ @page WordSection1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.WordSection1 {page:WordSection1;} --></style><!--[if gte mso 9]><xml> <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" /> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext=3D"edit"> <o:idmap v:ext=3D"edit" data=3D"1" /> </o:shapelayout></xml><![endif]--></head><body lang=3DZH-CN link=3Dblue = vlink=3Dpurple style=3D'text-justify-trim:punctuation'><div = class=3DWordSection1><p class=3DMsoNormal><span lang=3DEN-US>I debugged = vdsm with PyCharm, And I logged on my Centos 7.2 with root, and = get an error as follows:<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US><o:p> </o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US>Problem:<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US><o:p> </o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US>Traceback (most recent call last):<o:p></o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US> File = "/usr/share/vdsm/vdsm", line 149, in = run<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US> = serve_clients(log)<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US> File "/usr/share/vdsm/vdsm", line 104, in = serve_clients<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US> cif =3D clientIF.getInstance(irs, log, = scheduler)<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US> File "/usr/share/vdsm/clientIF.py", line = 204, in getInstance<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US> cls._instance =3D clientIF(irs, log, = scheduler)<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US> File "/usr/share/vdsm/clientIF.py", line = 106, in __init__<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US> secret.clear()<o:p></o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US> File = "/usr/lib/python2.7/site-packages/vdsm/virt/secret.py", line = 92, in clear<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US> con =3D = libvirtconnection.get()<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US> File = "/usr/lib/python2.7/site-packages/vdsm/libvirtconnection.py", = line 163, in get<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US> password)<o:p></o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US> File = "/usr/lib/python2.7/site-packages/vdsm/libvirtconnection.py", = line 99, in open_connection<o:p></o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US> return = utils.retry(libvirtOpen, timeout=3D10, = sleep=3D0.2)<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US> File = "/usr/lib/python2.7/site-packages/vdsm/utils.py", line 546, in = retry<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US> return func()<o:p></o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US> File = "/usr/lib64/python2.7/site-packages/libvirt.py", line 105, in = openAuth<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US> if ret is None:raise = libvirtError('virConnectOpenAuth() failed')<o:p></o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US>libvirtError: Failed to connect = socket to '/var/run/libvirt/libvirt-sock': Permission = denied<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US><o:p> </o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US>Investitate:<o:p></o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US>According to the traceback above, = the code in libvirt.py as below, and os.geteuid() get = ‘0’ which shows the current user is = root;<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US><o:p> </o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US>def openAuth(uri, auth, flags=3D0):<o:p></o:p></span></p><p = class=3DMsoNormal><span = lang=3DEN-US> #print = os.geteuid()<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US> ret =3D = libvirtmod.virConnectOpenAuth(uri, auth, flags)<o:p></o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US> if ret is = None:raise libvirtError('virConnectOpenAuth() = failed')<o:p></o:p></span></p><p class=3DMsoNormal = style=3D'text-indent:21.0pt'><span lang=3DEN-US>return = virConnect(_obj=3Dret)<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US><o:p> </o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US>[root@server117 libvirt]# ll = /var/run/libvirt/libvirt-sock<o:p></o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US>srwxrwx---. 1 root qemu 0 Jul 19 = 23:43 /var/run/libvirt/libvirt-sock<o:p></o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US><o:p> </o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US>According that, root should not get = an Permission denied error ? But why?<o:p></o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US><o:p> </o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US>And I setenforce=3D0 , and still = show Perssion denied error.<o:p></o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US><o:p> </o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US>What’s the reason? And how to = solve it?<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US><o:p> </o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US>Thank you.<o:p></o:p></span></p></div></body></html> ------=_NextPart_000_001E_01D1E509.19780F20--

Adding some people from virt team. Il 23/Lug/2016 11:44, "lifuqiong" <lifuqiong@cncloudsec.com> ha scritto:
I debugged vdsm with PyCharm, And I logged on my Centos 7.2 with root,
and get an error as follows:
Problem:
Traceback (most recent call last):
File "/usr/share/vdsm/vdsm", line 149, in run
serve_clients(log)
File "/usr/share/vdsm/vdsm", line 104, in serve_clients
cif = clientIF.getInstance(irs, log, scheduler)
File "/usr/share/vdsm/clientIF.py", line 204, in getInstance
cls._instance = clientIF(irs, log, scheduler)
File "/usr/share/vdsm/clientIF.py", line 106, in __init__
secret.clear()
File "/usr/lib/python2.7/site-packages/vdsm/virt/secret.py", line 92,
in clear
con = libvirtconnection.get()
File "/usr/lib/python2.7/site-packages/vdsm/libvirtconnection.py", line
163, in get
password)
File "/usr/lib/python2.7/site-packages/vdsm/libvirtconnection.py", line
99, in open_connection
return utils.retry(libvirtOpen, timeout=10, sleep=0.2)
File "/usr/lib/python2.7/site-packages/vdsm/utils.py", line 546, in
retry
return func()
File "/usr/lib64/python2.7/site-packages/libvirt.py", line 105, in
openAuth
if ret is None:raise libvirtError('virConnectOpenAuth() failed')
libvirtError: Failed to connect socket to
'/var/run/libvirt/libvirt-sock': Permission denied
Investitate:
According to the traceback above, the code in libvirt.py as below, and
os.geteuid() get ‘0’ which shows the current user is root;
def openAuth(uri, auth, flags=0):
#print os.geteuid()
ret = libvirtmod.virConnectOpenAuth(uri, auth, flags)
if ret is None:raise libvirtError('virConnectOpenAuth() failed')
return virConnect(_obj=ret)
[root@server117 libvirt]# ll /var/run/libvirt/libvirt-sock
srwxrwx---. 1 root qemu 0 Jul 19 23:43 /var/run/libvirt/libvirt-sock
According that, root should not get an Permission denied error ? But why?
And I setenforce=0 , and still show Perssion denied error.
What’s the reason? And how to solve it?
Thank you.
_______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel

--Apple-Mail-D1347541-AC09-4E82-BD2E-44566BA8A20C Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 DQoNCj4gT24gMjUgSnVsIDIwMTYsIGF0IDIxOjUwLCBTYW5kcm8gQm9uYXp6b2xhIDxzYm9uYXp6 b0ByZWRoYXQuY29tPiB3cm90ZToNCj4gDQo+IEFkZGluZyBzb21lIHBlb3BsZSBmcm9tIHZpcnQg dGVhbS4NCj4gDQo+IElsIDIzL0x1Zy8yMDE2IDExOjQ0LCAibGlmdXFpb25nIiA8bGlmdXFpb25n QGNuY2xvdWRzZWMuY29tPiBoYSBzY3JpdHRvOg0KPiA+DQo+ID4gSSBkZWJ1Z2dlZCB2ZHNtIHdp dGggUHlDaGFybSwgQW5kIEkgbG9nZ2VkIG9uIG15IENlbnRvcyA3LjIgd2l0aCByb290LCAgYW5k IGdldCBhbiBlcnJvciBhcyBmb2xsb3dzOg0KPiA+DQo+ID4gIA0KPiA+DQo+ID4gUHJvYmxlbToN Cj4gPg0KPiA+ICANCj4gPg0KPiA+IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToN Cj4gPg0KPiA+ICAgRmlsZSAiL3Vzci9zaGFyZS92ZHNtL3Zkc20iLCBsaW5lIDE0OSwgaW4gcnVu DQo+ID4NCj4gPiAgICAgc2VydmVfY2xpZW50cyhsb2cpDQo+ID4NCj4gPiAgIEZpbGUgIi91c3Iv c2hhcmUvdmRzbS92ZHNtIiwgbGluZSAxMDQsIGluIHNlcnZlX2NsaWVudHMNCj4gPg0KPiA+ICAg ICBjaWYgPSBjbGllbnRJRi5nZXRJbnN0YW5jZShpcnMsIGxvZywgc2NoZWR1bGVyKQ0KPiA+DQo+ ID4gICBGaWxlICIvdXNyL3NoYXJlL3Zkc20vY2xpZW50SUYucHkiLCBsaW5lIDIwNCwgaW4gZ2V0 SW5zdGFuY2UNCj4gPg0KPiA+ICAgICBjbHMuX2luc3RhbmNlID0gY2xpZW50SUYoaXJzLCBsb2cs IHNjaGVkdWxlcikNCj4gPg0KPiA+ICAgRmlsZSAiL3Vzci9zaGFyZS92ZHNtL2NsaWVudElGLnB5 IiwgbGluZSAxMDYsIGluIF9faW5pdF9fDQo+ID4NCj4gPiAgICAgc2VjcmV0LmNsZWFyKCkNCj4g Pg0KPiA+ICAgRmlsZSAiL3Vzci9saWIvcHl0aG9uMi43L3NpdGUtcGFja2FnZXMvdmRzbS92aXJ0 L3NlY3JldC5weSIsIGxpbmUgOTIsIGluIGNsZWFyDQo+ID4NCj4gPiAgICAgY29uID0gbGlidmly dGNvbm5lY3Rpb24uZ2V0KCkNCj4gPg0KPiA+ICAgRmlsZSAiL3Vzci9saWIvcHl0aG9uMi43L3Np dGUtcGFja2FnZXMvdmRzbS9saWJ2aXJ0Y29ubmVjdGlvbi5weSIsIGxpbmUgMTYzLCBpbiBnZXQN Cj4gPg0KPiA+ICAgICBwYXNzd29yZCkNCj4gPg0KPiA+ICAgRmlsZSAiL3Vzci9saWIvcHl0aG9u Mi43L3NpdGUtcGFja2FnZXMvdmRzbS9saWJ2aXJ0Y29ubmVjdGlvbi5weSIsIGxpbmUgOTksIGlu IG9wZW5fY29ubmVjdGlvbg0KPiA+DQo+ID4gICAgIHJldHVybiB1dGlscy5yZXRyeShsaWJ2aXJ0 T3BlbiwgdGltZW91dD0xMCwgc2xlZXA9MC4yKQ0KPiA+DQo+ID4gICBGaWxlICIvdXNyL2xpYi9w eXRob24yLjcvc2l0ZS1wYWNrYWdlcy92ZHNtL3V0aWxzLnB5IiwgbGluZSA1NDYsIGluIHJldHJ5 DQo+ID4NCj4gPiAgICAgcmV0dXJuIGZ1bmMoKQ0KPiA+DQo+ID4gICBGaWxlICIvdXNyL2xpYjY0 L3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL2xpYnZpcnQucHkiLCBsaW5lIDEwNSwgaW4gb3BlbkF1 dGgNCj4gPg0KPiA+ICAgICBpZiByZXQgaXMgTm9uZTpyYWlzZSBsaWJ2aXJ0RXJyb3IoJ3ZpckNv bm5lY3RPcGVuQXV0aCgpIGZhaWxlZCcpDQo+ID4NCj4gPiBsaWJ2aXJ0RXJyb3I6IEZhaWxlZCB0 byBjb25uZWN0IHNvY2tldCB0byAnL3Zhci9ydW4vbGlidmlydC9saWJ2aXJ0LXNvY2snOiBQZXJt aXNzaW9uIGRlbmllZA0KPiA+DQo+ID4gIA0KPiA+DQo+ID4gSW52ZXN0aXRhdGU6DQo+ID4NCj4g PiBBY2NvcmRpbmcgdG8gdGhlIHRyYWNlYmFjayBhYm92ZSwgdGhlIGNvZGUgaW4gbGlidmlydC5w eSBhcyBiZWxvdywgYW5kICBvcy5nZXRldWlkKCkgZ2V0IOKAmDDigJkgd2hpY2ggc2hvd3MgdGhl IGN1cnJlbnQgdXNlciBpcyByb290Ow0KPiANCg0KdmRzbSBpcyBub3Qgc3VwcG9zZWQgdG8gYmUg cnVuIHVuZGVyIHJvb3QgdXNlci4gRm9yIGRlYnVnZ2luZyB5b3Ugc2hvdWxkIGZvbGxvdyB0aGUg ZGV2ZWwgc2V0dXAgd2lraSBhbmQgbm90IGNoYW5nZSBhIHJlZ3VsYXIgaG9zdC4gDQpEZXBlbmRz IHdoYXQgeW91IG1vZGlmaWVkLCBpdCdzIGltcG9zc2libGUgdG8gc2F5IGZyb20gd2hhdCB5b3Ug ZGVzY3JpYmVkLi4uLmJ1dCBhIGdlbmVyYWwgYWR2aWNlIGlzIHlvdSBzaW1wbHkgZG9uJ3QgZG8g dGhhdDopDQo+ID4NCj4gPiAgDQo+ID4NCj4gPiBkZWYgb3BlbkF1dGgodXJpLCBhdXRoLCBmbGFn cz0wKToNCj4gPg0KPiA+ICAgICAgICAgICNwcmludCBvcy5nZXRldWlkKCkNCj4gPg0KPiA+ICAg ICByZXQgPSBsaWJ2aXJ0bW9kLnZpckNvbm5lY3RPcGVuQXV0aCh1cmksIGF1dGgsIGZsYWdzKQ0K PiA+DQo+ID4gICAgIGlmIHJldCBpcyBOb25lOnJhaXNlIGxpYnZpcnRFcnJvcigndmlyQ29ubmVj dE9wZW5BdXRoKCkgZmFpbGVkJykNCj4gPg0KPiA+IHJldHVybiB2aXJDb25uZWN0KF9vYmo9cmV0 KQ0KPiA+DQo+ID4gIA0KPiA+DQo+ID4gW3Jvb3RAc2VydmVyMTE3IGxpYnZpcnRdIyBsbCAvdmFy L3J1bi9saWJ2aXJ0L2xpYnZpcnQtc29jaw0KPiA+DQo+ID4gc3J3eHJ3eC0tLS4gMSByb290IHFl bXUgMCBKdWwgMTkgMjM6NDMgL3Zhci9ydW4vbGlidmlydC9saWJ2aXJ0LXNvY2sNCj4gPg0KPiA+ ICANCj4gPg0KPiA+IEFjY29yZGluZyB0aGF0LCByb290IHNob3VsZCBub3QgZ2V0IGFuIFBlcm1p c3Npb24gZGVuaWVkIGVycm9yID8gQnV0IHdoeT8NCj4gPg0KPiA+ICANCj4gPg0KPiA+IEFuZCBJ IHNldGVuZm9yY2U9MCAsIGFuZCBzdGlsbCBzaG93IFBlcnNzaW9uIGRlbmllZCBlcnJvci4NCj4g Pg0KPiA+ICANCj4gPg0KPiA+IFdoYXTigJlzIHRoZSByZWFzb24/IEFuZCBob3cgdG8gc29sdmUg aXQ/DQo+ID4NCj4gPiAgDQo+ID4NCj4gPiBUaGFuayB5b3UuDQo+ID4NCj4gPg0KPiA+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gRGV2ZWwgbWFp bGluZyBsaXN0DQo+ID4gRGV2ZWxAb3ZpcnQub3JnDQo+ID4gaHR0cDovL2xpc3RzLm92aXJ0Lm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RldmVsDQo= --Apple-Mail-D1347541-AC09-4E82-BD2E-44566BA8A20C Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0 L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPjwvaGVhZD48Ym9keSBkaXI9ImF1dG8iPjxkaXY+PC9kaXY+ PGRpdj48YnI+PC9kaXY+PGRpdj48YnI+T24gMjUgSnVsIDIwMTYsIGF0IDIxOjUwLCBTYW5kcm8g Qm9uYXp6b2xhICZsdDs8YSBocmVmPSJtYWlsdG86c2JvbmF6em9AcmVkaGF0LmNvbSI+c2JvbmF6 em9AcmVkaGF0LmNvbTwvYT4mZ3Q7IHdyb3RlOjxicj48YnI+PC9kaXY+PGJsb2NrcXVvdGUgdHlw ZT0iY2l0ZSI+PGRpdj48cCBkaXI9Imx0ciI+QWRkaW5nIHNvbWUgcGVvcGxlIGZyb20gdmlydCB0 ZWFtLjwvcD4NCjxwIGRpcj0ibHRyIj5JbCAyMy9MdWcvMjAxNiAxMTo0NCwgImxpZnVxaW9uZyIg Jmx0OzxhIGhyZWY9Im1haWx0bzpsaWZ1cWlvbmdAY25jbG91ZHNlYy5jb20iPmxpZnVxaW9uZ0Bj bmNsb3Vkc2VjLmNvbTwvYT4mZ3Q7IGhhIHNjcml0dG86PGJyPg0KJmd0Ozxicj4NCiZndDsgSSBk ZWJ1Z2dlZCB2ZHNtIHdpdGggUHlDaGFybSwgQW5kIEkgbG9nZ2VkIG9uIG15IENlbnRvcyA3LjIg d2l0aCByb290LCAmbmJzcDthbmQgZ2V0IGFuIGVycm9yIGFzIGZvbGxvd3M6PGJyPg0KJmd0Ozxi cj4NCiZndDsgJm5ic3A7PGJyPg0KJmd0Ozxicj4NCiZndDsgUHJvYmxlbTo8YnI+DQomZ3Q7PGJy Pg0KJmd0OyAmbmJzcDs8YnI+DQomZ3Q7PGJyPg0KJmd0OyBUcmFjZWJhY2sgKG1vc3QgcmVjZW50 IGNhbGwgbGFzdCk6PGJyPg0KJmd0Ozxicj4NCiZndDsgJm5ic3A7IEZpbGUgIi91c3Ivc2hhcmUv dmRzbS92ZHNtIiwgbGluZSAxNDksIGluIHJ1bjxicj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOyZu YnNwOyZuYnNwOyBzZXJ2ZV9jbGllbnRzKGxvZyk8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDsg RmlsZSAiL3Vzci9zaGFyZS92ZHNtL3Zkc20iLCBsaW5lIDEwNCwgaW4gc2VydmVfY2xpZW50czxi cj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOyZuYnNwOyZuYnNwOyBjaWYgPSBjbGllbnRJRi5nZXRJ bnN0YW5jZShpcnMsIGxvZywgc2NoZWR1bGVyKTxicj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOyBG aWxlICIvdXNyL3NoYXJlL3Zkc20vY2xpZW50SUYucHkiLCBsaW5lIDIwNCwgaW4gZ2V0SW5zdGFu Y2U8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDsmbmJzcDsmbmJzcDsgY2xzLl9pbnN0YW5jZSA9 IGNsaWVudElGKGlycywgbG9nLCBzY2hlZHVsZXIpPGJyPg0KJmd0Ozxicj4NCiZndDsgJm5ic3A7 IEZpbGUgIi91c3Ivc2hhcmUvdmRzbS9jbGllbnRJRi5weSIsIGxpbmUgMTA2LCBpbiBfX2luaXRf Xzxicj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOyZuYnNwOyZuYnNwOyBzZWNyZXQuY2xlYXIoKTxi cj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOyBGaWxlICIvdXNyL2xpYi9weXRob24yLjcvc2l0ZS1w YWNrYWdlcy92ZHNtL3ZpcnQvc2VjcmV0LnB5IiwgbGluZSA5MiwgaW4gY2xlYXI8YnI+DQomZ3Q7 PGJyPg0KJmd0OyAmbmJzcDsmbmJzcDsmbmJzcDsgY29uID0gbGlidmlydGNvbm5lY3Rpb24uZ2V0 KCk8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDsgRmlsZSAiL3Vzci9saWIvcHl0aG9uMi43L3Np dGUtcGFja2FnZXMvdmRzbS9saWJ2aXJ0Y29ubmVjdGlvbi5weSIsIGxpbmUgMTYzLCBpbiBnZXQ8 YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDsmbmJzcDsmbmJzcDsgcGFzc3dvcmQpPGJyPg0KJmd0 Ozxicj4NCiZndDsgJm5ic3A7IEZpbGUgIi91c3IvbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2Vz L3Zkc20vbGlidmlydGNvbm5lY3Rpb24ucHkiLCBsaW5lIDk5LCBpbiBvcGVuX2Nvbm5lY3Rpb248 YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIHV0aWxzLnJldHJ5 KGxpYnZpcnRPcGVuLCB0aW1lb3V0PTEwLCBzbGVlcD0wLjIpPGJyPg0KJmd0Ozxicj4NCiZndDsg Jm5ic3A7IEZpbGUgIi91c3IvbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL3Zkc20vdXRpbHMu cHkiLCBsaW5lIDU0NiwgaW4gcmV0cnk8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDsmbmJzcDsm bmJzcDsgcmV0dXJuIGZ1bmMoKTxicj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOyBGaWxlICIvdXNy L2xpYjY0L3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL2xpYnZpcnQucHkiLCBsaW5lIDEwNSwgaW4g b3BlbkF1dGg8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDsmbmJzcDsmbmJzcDsgaWYgcmV0IGlz IE5vbmU6cmFpc2UgbGlidmlydEVycm9yKCd2aXJDb25uZWN0T3BlbkF1dGgoKSBmYWlsZWQnKTxi cj4NCiZndDs8YnI+DQomZ3Q7IGxpYnZpcnRFcnJvcjogRmFpbGVkIHRvIGNvbm5lY3Qgc29ja2V0 IHRvICcvdmFyL3J1bi9saWJ2aXJ0L2xpYnZpcnQtc29jayc6IFBlcm1pc3Npb24gZGVuaWVkPGJy Pg0KJmd0Ozxicj4NCiZndDsgJm5ic3A7PGJyPg0KJmd0Ozxicj4NCiZndDsgSW52ZXN0aXRhdGU6 PGJyPg0KJmd0Ozxicj4NCiZndDsgQWNjb3JkaW5nIHRvIHRoZSB0cmFjZWJhY2sgYWJvdmUsIHRo ZSBjb2RlIGluIGxpYnZpcnQucHkgYXMgYmVsb3csIGFuZCAmbmJzcDtvcy5nZXRldWlkKCkgZ2V0 IOKAmDDigJkgd2hpY2ggc2hvd3MgdGhlIGN1cnJlbnQgdXNlciBpcyByb290Ozxicj48L3A+PC9k aXY+PC9ibG9ja3F1b3RlPjxkaXY+PGJyPjwvZGl2PnZkc20gaXMgbm90IHN1cHBvc2VkIHRvIGJl IHJ1biB1bmRlciByb290IHVzZXIuIEZvciBkZWJ1Z2dpbmcgeW91IHNob3VsZCBmb2xsb3cgdGhl IGRldmVsIHNldHVwIHdpa2kgYW5kIG5vdCBjaGFuZ2UgYSByZWd1bGFyIGhvc3QuJm5ic3A7PGRp dj5EZXBlbmRzIHdoYXQgeW91IG1vZGlmaWVkLCBpdCdzIGltcG9zc2libGUgdG8gc2F5IGZyb20g d2hhdCB5b3UgZGVzY3JpYmVkLi4uLmJ1dCBhIGdlbmVyYWwgYWR2aWNlIGlzIHlvdSBzaW1wbHkg ZG9uJ3QgZG8gdGhhdDopPGJyPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxkaXY+PHAgZGlyPSJs dHIiPg0KJmd0Ozxicj4NCiZndDsgJm5ic3A7PGJyPg0KJmd0Ozxicj4NCiZndDsgZGVmIG9wZW5B dXRoKHVyaSwgYXV0aCwgZmxhZ3M9MCk6PGJyPg0KJmd0Ozxicj4NCiZndDsgJm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICNwcmludCBvcy5nZXRldWlkKCk8 YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDsmbmJzcDsmbmJzcDsgcmV0ID0gbGlidmlydG1vZC52 aXJDb25uZWN0T3BlbkF1dGgodXJpLCBhdXRoLCBmbGFncyk8YnI+DQomZ3Q7PGJyPg0KJmd0OyAm bmJzcDsmbmJzcDsmbmJzcDsgaWYgcmV0IGlzIE5vbmU6cmFpc2UgbGlidmlydEVycm9yKCd2aXJD b25uZWN0T3BlbkF1dGgoKSBmYWlsZWQnKTxicj4NCiZndDs8YnI+DQomZ3Q7IHJldHVybiB2aXJD b25uZWN0KF9vYmo9cmV0KTxicj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOzxicj4NCiZndDs8YnI+ DQomZ3Q7IFtyb290QHNlcnZlcjExNyBsaWJ2aXJ0XSMgbGwgL3Zhci9ydW4vbGlidmlydC9saWJ2 aXJ0LXNvY2s8YnI+DQomZ3Q7PGJyPg0KJmd0OyBzcnd4cnd4LS0tLiAxIHJvb3QgcWVtdSAwIEp1 bCAxOSAyMzo0MyAvdmFyL3J1bi9saWJ2aXJ0L2xpYnZpcnQtc29jazxicj4NCiZndDs8YnI+DQom Z3Q7ICZuYnNwOzxicj4NCiZndDs8YnI+DQomZ3Q7IEFjY29yZGluZyB0aGF0LCByb290IHNob3Vs ZCBub3QgZ2V0IGFuIFBlcm1pc3Npb24gZGVuaWVkIGVycm9yID8gQnV0IHdoeT88YnI+DQomZ3Q7 PGJyPg0KJmd0OyAmbmJzcDs8YnI+DQomZ3Q7PGJyPg0KJmd0OyBBbmQgSSBzZXRlbmZvcmNlPTAg LCBhbmQgc3RpbGwgc2hvdyBQZXJzc2lvbiBkZW5pZWQgZXJyb3IuPGJyPg0KJmd0Ozxicj4NCiZn dDsgJm5ic3A7PGJyPg0KJmd0Ozxicj4NCiZndDsgV2hhdOKAmXMgdGhlIHJlYXNvbj8gQW5kIGhv dyB0byBzb2x2ZSBpdD88YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDs8YnI+DQomZ3Q7PGJyPg0K Jmd0OyBUaGFuayB5b3UuPGJyPg0KJmd0Ozxicj4NCiZndDs8YnI+DQomZ3Q7IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPg0KJmd0OyBEZXZlbCBtYWls aW5nIGxpc3Q8YnI+DQomZ3Q7IDxhIGhyZWY9Im1haWx0bzpEZXZlbEBvdmlydC5vcmciPkRldmVs QG92aXJ0Lm9yZzwvYT48YnI+DQomZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9saXN0cy5vdmlydC5vcmcv bWFpbG1hbi9saXN0aW5mby9kZXZlbCI+aHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RldmVsPC9hPjxicj48L3A+DQo8L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PC9ib2R5 PjwvaHRtbD4= --Apple-Mail-D1347541-AC09-4E82-BD2E-44566BA8A20C--
participants (3)
-
lifuqiong
-
Michal Skrivanek
-
Sandro Bonazzola