<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>409367</bug_id>
          
          <creation_ts>2019-07-01 14:11:35 +0000</creation_ts>
          <short_desc>exit_group() after signal arriving to thread waiting in futex() causes hangs</short_desc>
          <delta_ts>2019-07-11 20:39:48 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>6</classification_id>
          <classification>Developer tools</classification>
          <product>valgrind</product>
          <component>general</component>
          <version>unspecified</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Allison Karlitskaya">desrt</reporter>
          <assigned_to name="Philippe Waroquiers">philippe.waroquiers</assigned_to>
          <cc>philippe.waroquiers</cc>
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1866543</commentid>
    <comment_count>0</comment_count>
      <attachid>121256</attachid>
    <who name="Allison Karlitskaya">desrt</who>
    <bug_when>2019-07-01 14:11:35 +0000</bug_when>
    <thetext>Created attachment 121256
small reproducer

If the main thread of a traced program calls exit_group() very soon after a signal is delivered to another thread in the program which happens to be waiting on a futex() then valgrind will start consuming 100% CPU and not exit.

Expected: valgrind should exit.

I suspect this has something to do with signals interacting with the futex call wrapping because if I replace the futex wait with a normal sleep then everything works properly.

Also: if the process waits around a while before it exits, there is also no problem.  In order for the problem to occur the program needs to exit quickly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866563</commentid>
    <comment_count>1</comment_count>
    <who name="Allison Karlitskaya">desrt</who>
    <bug_when>2019-07-01 15:13:53 +0000</bug_when>
    <thetext>Forgot to mention: this is against valgrind-3.14.0 as shipped with Ubuntu 19.04.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866608</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Waroquiers">philippe.waroquiers</who>
    <bug_when>2019-07-01 19:40:24 +0000</bug_when>
    <thetext>This looks very similar to a loop reproduced with 409141.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866810</commentid>
    <comment_count>3</comment_count>
      <attachid>121295</attachid>
    <who name="Philippe Waroquiers">philippe.waroquiers</who>
    <bug_when>2019-07-02 20:29:53 +0000</bug_when>
    <thetext>Created attachment 121295
fix hands and loops when process sends signal to itself

I have tested with the reproducer attached, and it works.
The test added by the patch is similar to this test.

If no remark on the approach, I will push in a few days ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868208</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Waroquiers">philippe.waroquiers</who>
    <bug_when>2019-07-10 22:38:01 +0000</bug_when>
    <thetext>Pushed as 63a9f0793</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868252</commentid>
    <comment_count>5</comment_count>
    <who name="Allison Karlitskaya">desrt</who>
    <bug_when>2019-07-11 07:41:45 +0000</bug_when>
    <thetext>(In reply to Philippe Waroquiers from comment #4)
&gt; Pushed as 63a9f0793

Thanks very much, Philippe.

A few questions, if you don&apos;t mind:

1) is there any workaround to this problem that you can imagine (in terms of commandline flags, etc.) that void avoid the problem other than to update valgrind to a version that includes this patch?  Our current workaround is to add a sleep on the main thread before exit, and I&apos;d like to remove that ASAP.

2) when is this patch likely to appear in a release?  when is it likely to appear in a stable release?

3) do you think this patch is suitable for backporting/vendor-patching for distro packages?

Thanks again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868343</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Waroquiers">philippe.waroquiers</who>
    <bug_when>2019-07-11 20:39:48 +0000</bug_when>
    <thetext>(In reply to Allison Karlitskaya from comment #5)
&gt; (In reply to Philippe Waroquiers from comment #4)
&gt; &gt; Pushed as 63a9f0793
&gt; 
&gt; Thanks very much, Philippe.
&gt; 
&gt; A few questions, if you don&apos;t mind:
&gt; 
&gt; 1) is there any workaround to this problem that you can imagine (in terms of
&gt; commandline flags, etc.) that void avoid the problem other than to update
&gt; valgrind to a version that includes this patch?  Our current workaround is
&gt; to add a sleep on the main thread before exit, and I&apos;d like to remove that
&gt; ASAP.
I do not see a workaround at valgrind command line level.

&gt; 
&gt; 2) when is this patch likely to appear in a release?  when is it likely to
&gt; appear in a stable release?
We only have stable releases :).
Typically, there is a release every 6 months or so.
The last release was the 12 of April.


&gt; 
&gt; 3) do you think this patch is suitable for backporting/vendor-patching for
&gt; distro packages?
The patch can for sure be backported, if some distro want to do it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>121256</attachid>
            <date>2019-07-01 14:11:35 +0000</date>
            <delta_ts>2019-07-01 14:11:35 +0000</delta_ts>
            <desc>small reproducer</desc>
            <filename>futex-signal-crash.c</filename>
            <type>text/x-csrc</type>
            <size>662</size>
            <attacher name="Allison Karlitskaya">desrt</attacher>
            
              <data encoding="base64">I2RlZmluZSBfR05VX1NPVVJDRQoKI2luY2x1ZGUgPHB0aHJlYWQuaD4KI2luY2x1ZGUgPHN0ZGRl
Zi5oPgojaW5jbHVkZSA8c3lzL3NpZ25hbC5oPgojaW5jbHVkZSA8dW5pc3RkLmg+CgojaW5jbHVk
ZSA8bGludXgvZnV0ZXguaD4KI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CgpzdGF0aWMgdm9pZCAq
Cndvcmtlcl90aHJlYWQgKHZvaWQgKmRhdGEpCnsKICBzaXplX3QgdmFyID0gMDsKCiAgd2hpbGUg
KDEpCiAgICAvLyBzbGVlcCAoMSk7ICAgIC8vIGRvaW5nIGEgc2xlZXAgaGVyZSBpbnN0ZWFkIG9m
IGZ1dGV4IHdpbGwgY2F1c2UgdGhlIHByb2JsZW0gbm90IHRvIG9jY3VyCiAgICBzeXNjYWxsIChf
X05SX2Z1dGV4LCAmdmFyLCAoc2l6ZV90KSBGVVRFWF9XQUlUX1BSSVZBVEUsIChzaXplX3QpIDAs
IE5VTEwpOwoKICByZXR1cm4gTlVMTDsKfQoKaW50Cm1haW4gKHZvaWQpCnsKICBwdGhyZWFkX3Qg
dGhyZWFkOwoKICBwdGhyZWFkX2NyZWF0ZSAoJnRocmVhZCwgTlVMTCwgd29ya2VyX3RocmVhZCwg
TlVMTCk7CgogIHNsZWVwICgxKTsKCiAgcHRocmVhZF9raWxsICh0aHJlYWQsIFNJR1RFUk0pOwoK
ICAvLyBzbGVlcCAoMSk7ICAgICAvLyB1bmNvbW1lbnRpbmcgdGhpcyB3aWxsIGNhdXNlIHRoZSBw
cm9ibGVtIG5vdCB0byBvY2N1cgoKICByZXR1cm4gMDsKfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121295</attachid>
            <date>2019-07-02 20:29:53 +0000</date>
            <delta_ts>2019-07-02 20:29:53 +0000</delta_ts>
            <desc>fix hands and loops when process sends signal to itself</desc>
            <filename>0001-Fix-409141-and-409367-valgrind-hangs-or-loops-when-a.patch</filename>
            <type>text/plain</type>
            <size>10698</size>
            <attacher name="Philippe Waroquiers">philippe.waroquiers</attacher>
            
              <data encoding="base64">RnJvbSBkZDZjYmE0MmMwN2Q5YjBiMTdmMWRhNWZmYjUzMjUxNzAzNzQ1MWU4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBXYXJvcXVpZXJzIDxwaGlsaXBwZS53YXJvcXVp
ZXJzQHNreW5ldC5iZT4KRGF0ZTogVHVlLCAyIEp1bCAyMDE5IDIxOjQzOjQxICswMjAwClN1Ympl
Y3Q6IFtQQVRDSF0gRml4IDQwOTE0MSBhbmQgNDA5MzY3OiB2YWxncmluZCBoYW5ncyBvciBsb29w
cyB3aGVuIGEgcHJvY2Vzcwogc2VuZHMgYSBzaWduYWwgdG8gaXRzZWxmLgoKVGhlIGxvb3Agc2Nl
bmFyaW86CiAgVGhlIG1haW4gdGhyZWFkIHNlbmRzIGEgc2lnbmFsIDE1IHRvIGFub3RoZXIgdGhy
ZWFkLCBhbmQgdGhlbiBjYWxscyB0aGUgZXhpdCBzeXNjYWxsLgogIFRoZSBleGl0IHN5c2NhbGwg
ZG9uZSBieSB0aHJlYWQgMSBtYXJrcyBhbGwgdGhyZWFkcyBhcyBuZWVkaW5nCiAgdG8gZGllIHVz
aW5nIGV4aXRyZWFzb24gVmdTcmNfRXhpdFByb2Nlc3MuCiAgVGhlIG1haW4gdGhyZWFkIHRoZW4g
Z2V0cyBhbGwgb3RoZXIgdGhyZWFkcyBvdXQgb2YgdGhlaXIgYmxvY2tpbmcgc3lzY2FsbAogIHRv
IGxldCB0aGVtIGRpZSwgYW5kIHRoZW4gImJ1c3kgcG9sbHMiIGZvciBhbGwgb3RoZXIgdGhyZWFk
cyB0byBkaXNhcHBlYXIuCiAgSG93ZXZlciwgd2hlbiB0aGUgc2Vjb25kIHRocmVhZCBpcyBvdXQg
b2YgaXRzIHN5c2NhbGwsIGl0IGdldHMgdGhlIHNpZ25hbCAxNSwKICB3aGljaCBpcyBhIGZhdGFs
IHNpZ25hbC4gIFRoaXMgc2Vjb25kIHRocmVhZCB0aGVuIGNoYW5nZXMgdGhlIGV4aXQgcmVhc29u
CiAgb2YgYWxsIHRocmVhZHMgdG8gVmdTcmNfRmF0YWxTaWcsIGFuZCBpdHNlbGYgc3RhcnRzIHRv
IGJ1c3kgcG9sbCBmb3IgYWxsCiAgb3RoZXIgdGhyZWFkcyB0byBkaXNhcHBlYXIuCiAgVGhpcyB0
aGVuIGxvb3BzIGZvcmV2ZXIuCgogIFRoZSBmaXggZm9yIHRoaXMgY29uc2lzdHMgaW4gbm90IGhh
bmRsaW5nIHRoZSBmYXRhbCBzaWduYWwgaW4gdGhlCiAgc2Vjb25kIHRocmVhZCB3aGVuIHRoZSBw
cm9jZXNzIGlzIGFscmVhZHkgYnVzeSBkeWluZy4gIEVmZmVjdGl2ZWx5LAogIHRoZSBleGl0IHN5
c2NhbGwgc2hvdWxkIGJlIHByb2Nlc3NlZCAiYXRvbWljYWxseSI6IGVpdGhlciB0aGUgcHJvY2Vz
cwogIGlzIHJ1bm5pbmcsIG9yIGl0IGlzIGRlYWQgb25jZSB0aGUgc3lzY2FsbCBpcyBkb25lLgog
IFVuZGVyIHZhbGdyaW5kLCB3aGVuIHRocmVhZHMgYXJlIG1hcmtlZCBhcyBiZWluZyAnIFZnU3Jj
X0V4aXRQcm9jZXNzJywKICB0aGUgZ3Vlc3QgcHJvY2VzcyBzaG91bGQgYmUgY29uc2lkZXJlZCBh
cyBkZWFkLiAgVmFsZ3JpbmQgaGFzIHN0aWxsIHRvIGRvCiAgdGhlIGNsZWFudXAsIHRoZSBlbmRv
ZiBydW4gcmVwb3J0LCBldGMgIGJ1dCBvdGhlcndpc2Ugc2hvdWxkIG5vdCBsZXQKICBhbnkgbW9y
ZSB1c2VyIGNvZGUgdG8gcnVuLiAgU28sIHNpZ25hbCBzaG91bGQgbm90IGJlIGhhbmRsZWQgYW55
bW9yZQogIG9uY2UgdGhlICdleGl0IHN5c2NhbGwnIGhhcyBtYXJrZWQgYWxsIHRocmVhZHMgYXMg
VmdTcmNfRXhpdFByb2Nlc3MuCgpUaGUgaGFuZyBzY2VuYXJpbzoKICBUaGUgbWFpbiB0aHJlYWQg
c2VuZHMgYSBzaWduYWwgOSAoS0lMTCkgdG8gaXRzZWxmLgogIFdoZW4gcnVubmluZyBuYXRpdmVs
eSwgdGhpcyBkaXJlY3RseSBraWxscyB0aGUgcHJvY2VzcywKICB3aXRob3V0IGdpdmluZyBhbnkg
b3Bwb3J0dW5pdHkgdG8gcnVuIHNvbWUgdXNlciBjb2RlLgogIFZhbGdyaW5kIGludGVyY2VwdHMg
dGhlIGtpbGwgc3lzY2FsbCwgYW5kIGRldGVjdHMgdGhhdCB0aGlzIGlzCiAgYSBmYXRhbCBzaWdu
YWwuICBUaGUgbWFpbiB0aHJlYWQgd2FzIHRoZW4gZHlpbmcsIGJ1dCB3YXMKICBub3QgZ2V0dGlu
ZyB0aGUgb3RoZXIgdGhyZWFkcyBvdXQgb2YgdGhlaXIgc3lzY2FsbCAodG8gbGV0IHRoZW0gZGll
KS4KCiAgVGhlIGZpeCBmb3IgdGhpcyBpcyB0byBoYXZlIHRoZSAnaGFuZGxpbmcnIG9mIHRoZSBz
aWduYWwgOSBzZW50IHRvIGEKICB0aHJlYWQgb2YgdGhlIHByb2Nlc3MgdG8gZGlyZWN0bHkgbWFr
ZSB0aGUgcHJvY2VzcyBkaWUsIGJ5IGdldHRpbmcKICBhbGwgdGhyZWFkcyBvdXQgb2Ygc3lzY2Fs
bC4KICBOb3RlIHRoYXQgdGhlIHByZXZpb3VzIGNvZGUgd2FzIHRyeWluZyB0byBoYXZlIHRoaXMg
YWN0aW9uIGRvbmUgYnkKICB0aGUgdGhyZWFkIHRvIHdoaWNoIHRoZSBzaWduYWwgOSB3YXMgc2Vu
dC4gIFRoaXMgd2FzIHRvbyB0cmlja3kgdG8KICBrZWVwIChjYXVzaW5nIG90aGVyIHJhY2UgY29u
ZGl0aW9ucyBiZXR3ZWVuIHRoZSBtYWluIHRocmVhZCBzZW5kaW5nCiAgdGhlIHNpZ25hbCA5IGUu
Zy4gZXhpdGluZyBhbmQgdGhlIG90aGVyIHRocmVhZCBzdXBwb3NlZCB0byBkaWUpLgogIEFzIGl0
IGlzIG5vdCBwYXJ0aWN1bGFybHkgY3JpdGljYWwgdG8gaGF2ZSB0aGUgc2lnbmFsIDkgJ2hhbmRs
ZWQnCiAgYnkgYSBzcGVjaWZpYyB0aHJlYWQsIHRoZSB0aHJlYWQgdGhhdCBpcyBzZW5kaW5nIHRo
ZSBzaWduYWwgOSBpcwogIHRoZSBvbmUgZG9pbmcgdGhlIHdvcmsgdG8gY2xlYW51cCBhbmQgdGVy
bWluYXRlIHRoZSBwcm9jZXNzLgotLS0KIC5naXRpZ25vcmUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgIDEgKwogTkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgMyArKwogY29yZWdyaW5kL21fc2lnbmFscy5jICAgICAgICAgICAgICAgICAg
ICAgICAgfCAxMyArKystLS0KIGNvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1nZW5lcmljLmMg
ICAgICAgIHwgMzQgKysrKysrKystLS0tLS0tCiBub25lL3Rlc3RzL01ha2VmaWxlLmFtICAgICAg
ICAgICAgICAgICAgICAgICB8ICA1ICsrLQogbm9uZS90ZXN0cy9wdGhfc2VsZl9raWxsLmMgICAg
ICAgICAgICAgICAgICAgfCA0NCArKysrKysrKysrKysrKysrKysrKwogbm9uZS90ZXN0cy9wdGhf
c2VsZl9raWxsXzE1X290aGVyLnN0ZGVyci5leHAgfCAgMAogbm9uZS90ZXN0cy9wdGhfc2VsZl9r
aWxsXzE1X290aGVyLnZndGVzdCAgICAgfCAgMyArKwogbm9uZS90ZXN0cy9wdGhfc2VsZl9raWxs
Xzkuc3RkZXJyLmV4cCAgICAgICAgfCAgMAogbm9uZS90ZXN0cy9wdGhfc2VsZl9raWxsXzkudmd0
ZXN0ICAgICAgICAgICAgfCAgMyArKwogMTAgZmlsZXMgY2hhbmdlZCwgODUgaW5zZXJ0aW9ucygr
KSwgMjEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbm9uZS90ZXN0cy9wdGhfc2Vs
Zl9raWxsLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBub25lL3Rlc3RzL3B0aF9zZWxmX2tpbGxfMTVf
b3RoZXIuc3RkZXJyLmV4cAogY3JlYXRlIG1vZGUgMTAwNjQ0IG5vbmUvdGVzdHMvcHRoX3NlbGZf
a2lsbF8xNV9vdGhlci52Z3Rlc3QKIGNyZWF0ZSBtb2RlIDEwMDY0NCBub25lL3Rlc3RzL3B0aF9z
ZWxmX2tpbGxfOS5zdGRlcnIuZXhwCiBjcmVhdGUgbW9kZSAxMDA2NDQgbm9uZS90ZXN0cy9wdGhf
c2VsZl9raWxsXzkudmd0ZXN0CgpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUK
aW5kZXggNjQwYjhjNjVlLi5hMGRlZGI4YzUgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIv
LmdpdGlnbm9yZQpAQCAtMTQxOSw2ICsxNDE5LDcgQEAKIC9ub25lL3Rlc3RzL3B0aF9zaW1wbGVf
bXV0ZXgKIC9ub25lL3Rlc3RzL3B0aF9zaW1wbGVfdGhyZWFkcwogL25vbmUvdGVzdHMvcHRoX3Nw
ZWNpZmljCisvbm9uZS90ZXN0cy9wdGhfc2VsZl9raWxsCiAvbm9uZS90ZXN0cy9wdGhfc3RhY2th
bGlnbgogL25vbmUvdGVzdHMvcHRoX3Rlcm1fc2lnbmFsCiAvbm9uZS90ZXN0cy9wdGhfeWllbGQK
ZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCmluZGV4IDc3MGEyMzE3OC4uZWZjM2M4MzM0IDEwMDY0
NAotLS0gYS9ORVdTCisrKyBiL05FV1MKQEAgLTU1LDYgKzU1LDkgQEAgd2hlcmUgWFhYWFhYIGlz
IHRoZSBidWcgbnVtYmVyIGFzIGxpc3RlZCBiZWxvdy4KIDQwODAwOSAgRXhwb3NlIHJkcmFuZCBh
bmQgZjE2YyBldmVuIG9uIGF2eCBpZiBob3N0IGNwdSBzdXBwb3J0cyB0aGVtCiA0MDgwOTEgIE1p
c3NpbmcgcGtleSBzeXNjYWxscwogNDA0NDA2ICBzMzkweDogejE0IG1pc2NlbGxhbmVvdXMgaW5z
dHJ1Y3Rpb25zIG5vdCBpbXBsZW1lbnRlZAorNDA5MTQxICBWYWxncmluZCBoYW5ncyB3aGVuIFNJ
R0tJTExlZCAKKzQwOTM2NyAgZXhpdF9ncm91cCgpIGFmdGVyIHNpZ25hbCB0byB0aHJlYWQgd2Fp
dGluZyBpbiBmdXRleCgpIGNhdXNlcyBoYW5ncworCiBuLWktYnogIEZpeCBtaW5vciBvbmUgdGlt
ZSBsZWFrcyBpbiBkaGF0Lgogbi1pLWJ6ICBBZGQgLS1ydW4tY3h4LWZyZWVyZXM9bm8gaW4gb3V0
ZXIgYXJncyB0byBhdm9pZCBpbm5lciBjcmFzaGVzLgogCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQv
bV9zaWduYWxzLmMgYi9jb3JlZ3JpbmQvbV9zaWduYWxzLmMKaW5kZXggOWJhNmVmYzRjLi4wMDhm
ZmY5OGIgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3NpZ25hbHMuYworKysgYi9jb3JlZ3JpbmQv
bV9zaWduYWxzLmMKQEAgLTI0MjYsOCArMjQyNiw4IEBAIHZvaWQgYXN5bmNfc2lnbmFsaGFuZGxl
ciAoIEludCBzaWdObywKICAgICAgICAgICAgICAgICBzaWdObywgdGlkLCBpbmZvLT5zaV9jb2Rl
LAogICAgICAgICAgICAgICAgIFZHXyhuYW1lX29mX1ZnU2NoZWRSZXR1cm5Db2RlKSh0c3QtPmV4
aXRyZWFzb24pKTsKIAotICAgLyogKi8KLSAgIGlmICh0c3QtPmV4aXRyZWFzb24gPT0gVmdTcmNf
RmF0YWxTaWcpCisgICAvKiBTZWUgc2ltaWxhciBsb2dpYyBpbiBWR18ocG9sbF9zaWduYWxzKS4g
Ki8KKyAgIGlmICh0c3QtPmV4aXRyZWFzb24gIT0gVmdTcmNfTm9uZSkKICAgICAgIHJlc3VtZV9z
Y2hlZHVsZXIodGlkKTsKIAogICAgLyogVXBkYXRlIHRocmVhZCBzdGF0ZSBwcm9wZXJseS4gIFRo
ZSBzaWduYWwgY2FuIG9ubHkgaGF2ZSBiZWVuCkBAIC0yOTUxLDEwICsyOTUxLDExIEBAIHZvaWQg
VkdfKHBvbGxfc2lnbmFscykoVGhyZWFkSWQgdGlkKQogICAgVGhyZWFkU3RhdGUgKnRzdCA9IFZH
XyhnZXRfVGhyZWFkU3RhdGUpKHRpZCk7CiAgICB2a2lfc2lnc2V0X3Qgc2F2ZWRfbWFzazsKIAot
ICAgaWYgKHRzdC0+ZXhpdHJlYXNvbiA9PSBWZ1NyY19GYXRhbFNpZykgewotICAgICAgLyogVGhp
cyB0YXNrIGhhcyBiZWVuIHJlcXVlc3RlZCB0byBkaWUgZHVlIHRvIGEgZmF0YWwgc2lnbmFsCi0g
ICAgICAgICByZWNlaXZlZCBieSB0aGUgcHJvY2Vzcy4gU28sIHdlIGNhbm5vdCBwb2xsIG5ldyBz
aWduYWxzLAotICAgICAgICAgYXMgd2UgYXJlIHN1cHBvc2VkIHRvIGRpZSBhc2FwLiBJZiB3ZSB3
b3VsZCBwb2xsIGFuZCBkZWxpdmVyCisgICBpZiAodHN0LT5leGl0cmVhc29uICE9IFZnU3JjX05v
bmUgKSB7CisgICAgICAvKiBUaGlzIHRhc2sgaGFzIGJlZW4gcmVxdWVzdGVkIHRvIGRpZSAoZS5n
LiBkdWUgdG8gYSBmYXRhbCBzaWduYWwKKyAgICAgICAgIHJlY2VpdmVkIGJ5IHRoZSBwcm9jZXNz
LCBvciBiZWNhdXNlIG9mIGEgY2FsbCB0byBleGl0IHN5c2NhbGwpLgorICAgICAgICAgU28sIHdl
IGNhbm5vdCBwb2xsIG5ldyBzaWduYWxzLCBhcyB3ZSBhcmUgc3VwcG9zZWQgdG8gZGllIGFzYXAu
CisgICAgICAgICBJZiB3ZSB3b3VsZCBwb2xsIGFuZCBkZWxpdmVyCiAgICAgICAgICBhIG5ldyAo
bWF5YmUgZmF0YWwpIHNpZ25hbCwgdGhpcyBjb3VsZCBjYXVzZSBhIGRlYWRsb2NrLCBhcwogICAg
ICAgICAgdGhpcyB0aHJlYWQgd291bGQgYmVsaWV2ZSBpdCBoYXMgdG8gdGVybWluYXRlIHRoZSBv
dGhlciB0aHJlYWRzCiAgICAgICAgICBhbmQgd2FpdCBmb3IgdGhlbSB0byBkaWUsIHdoaWxlIHdl
IGFscmVhZHkgaGF2ZSBhIHRocmVhZCBkb2luZwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fc3lz
d3JhcC9zeXN3cmFwLWdlbmVyaWMuYyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1nZW5l
cmljLmMKaW5kZXggMDExOTFmNjM0Li5hYjk2NjQ4NTggMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9t
X3N5c3dyYXAvc3lzd3JhcC1nZW5lcmljLmMKKysrIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3
cmFwLWdlbmVyaWMuYwpAQCAtMzc1NSwyMCArMzc1NSwyNiBAQCBCb29sIE1MXyhkb19zaWdraWxs
KShJbnQgcGlkLCBJbnQgdGdpZCkKICAgIGlmICh0Z2lkICE9IC0xICYmIHRzdC0+b3Nfc3RhdGUu
dGhyZWFkZ3JvdXAgIT0gdGdpZCkKICAgICAgIHJldHVybiBGYWxzZTsJCS8qIG5vdCB0aGUgcmln
aHQgdGhyZWFkIGdyb3VwICovCiAKLSAgIC8qIENoZWNrIHRvIHNlZSB0aGF0IHRoZSB0YXJnZXQg
aXNuJ3QgYWxyZWFkeSBleGl0aW5nLiAqLwotICAgaWYgKCFWR18oaXNfZXhpdGluZykodGlkKSkg
ewotICAgICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpCi0JIFZHXyhtZXNzYWdlKShWZ19E
ZWJ1Z01zZywKLSAgICAgICAgICAgICAgICAgICAgICAiVGhyZWFkICV1IGJlaW5nIGtpbGxlZCB3
aXRoIFNJR0tJTExcbiIsIAotICAgICAgICAgICAgICAgICAgICAgIHRzdC0+dGlkKTsKLSAgICAg
IAotICAgICAgdHN0LT5leGl0cmVhc29uID0gVmdTcmNfRmF0YWxTaWc7Ci0gICAgICB0c3QtPm9z
X3N0YXRlLmZhdGFsc2lnID0gVktJX1NJR0tJTEw7Ci0gICAgICAKLSAgICAgIGlmICghVkdfKGlz
X3J1bm5pbmdfdGhyZWFkKSh0aWQpKQotCSBWR18oZ2V0X3RocmVhZF9vdXRfb2Zfc3lzY2FsbCko
dGlkKTsKLSAgIH0KLSAgIAorICAgLyogRmF0YWwgU0lHS0lMTCBzZW50IHRvIG9uZSBvZiBvdXIg
dGhyZWFkcy4KKyAgICAgICJIYW5kbGUiIHRoZSBzaWduYWwgb3Vyc2VsdmVzLCBhcyB0cnlpbmcg
dG8gaGF2ZSB0aWQKKyAgICAgIGhhbmRsaW5nIHRoZSBzaWduYWwgY2F1c2VzIHRlcm1pbmF0aW9u
IHByb2JsZW1zIChzZWUgIzQwOTM2NworICAgICAgYW5kICM0MDkxNDEpLgorICAgICAgTW9yZW92
ZXIsIGFzIGEgcHJvY2VzcyBjYW5ub3QgZG8gYW55dGhpbmcgd2hlbiByZWNlaXZpbmcgU0lHS0lM
TCwKKyAgICAgIGl0IGlzIG5vdCBwYXJ0aWN1bGFybHkgY3J1Y2lhbCB0aGF0ICJ0aWQiIGRvZXMg
dGhlIHdvcmsgdG8KKyAgICAgIHRlcm1pbmF0ZSB0aGUgcHJvY2Vzcy4gICovCisKKyAgIGlmIChW
R18oY2xvX3RyYWNlX3NpZ25hbHMpKQorICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLAor
ICAgICAgICAgICAgICAgICAgICJUaHJlYWQgJXUgJXMgYmVpbmcga2lsbGVkIHdpdGggU0lHS0lM
TCwgcnVubmluZyB0aWQ6ICV1XG4iLAorICAgICAgICAgICAgICAgICAgIHRzdC0+dGlkLCBWR18o
bmFtZV9vZl9UaHJlYWRTdGF0dXMpICh0c3QtPnN0YXR1cyksIFZHXyhydW5uaW5nX3RpZCkpOwor
CisgICBpZiAoIVZHXyhpc19ydW5uaW5nX3RocmVhZCkodGlkKSkKKyAgICAgIHRzdCA9IFZHXyhn
ZXRfVGhyZWFkU3RhdGUpKFZHXyhydW5uaW5nX3RpZCkpOworICAgVkdfKG51a2VfYWxsX3RocmVh
ZHNfZXhjZXB0KSAoVkdfKHJ1bm5pbmdfdGlkKSwgVmdTcmNfRmF0YWxTaWcpOworICAgVkdfKHJl
YXBfdGhyZWFkcykoVkdfKHJ1bm5pbmdfdGlkKSk7CisgICB0c3QtPmV4aXRyZWFzb24gPSBWZ1Ny
Y19GYXRhbFNpZzsKKyAgIHRzdC0+b3Nfc3RhdGUuZmF0YWxzaWcgPSBWS0lfU0lHS0lMTDsKKwog
ICAgcmV0dXJuIFRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvTWFrZWZpbGUuYW0g
Yi9ub25lL3Rlc3RzL01ha2VmaWxlLmFtCmluZGV4IDM3YWM0ZjA4Ny4uYjYzYzhkOTdjIDEwMDY0
NAotLS0gYS9ub25lL3Rlc3RzL01ha2VmaWxlLmFtCisrKyBiL25vbmUvdGVzdHMvTWFrZWZpbGUu
YW0KQEAgLTE2Myw2ICsxNjMsOCBAQCBFWFRSQV9ESVNUID0gXAogCXB0aF9tdXRleHNwZWVkLnN0
ZG91dC5leHAgcHRoX211dGV4c3BlZWQudmd0ZXN0IFwKIAlwdGhfb25jZS5zdGRlcnIuZXhwIHB0
aF9vbmNlLnN0ZG91dC5leHAgcHRoX29uY2Uudmd0ZXN0IFwKIAlwdGhfcndsb2NrLnN0ZGVyci5l
eHAgcHRoX3J3bG9jay52Z3Rlc3QgXAorCXB0aF9zZWxmX2tpbGxfOS5zdGRlcnIuZXhwIHB0aF9z
ZWxmX2tpbGxfOS52Z3Rlc3QgXAorCXB0aF9zZWxmX2tpbGxfMTVfb3RoZXIuc3RkZXJyLmV4cCBw
dGhfc2VsZl9raWxsXzE1X290aGVyLnZndGVzdCBcCiAJcHRoX3N0YWNrYWxpZ24uc3RkZXJyLmV4
cCBcCiAJcHRoX3N0YWNrYWxpZ24uc3Rkb3V0LmV4cCBwdGhfc3RhY2thbGlnbi52Z3Rlc3QgXAog
CXB0aF8yc2lnLnN0ZGVyci5leHAtbGludXggcHRoXzJzaWcuc3RkZXJyLmV4cC1zb2xhcmlzIHB0
aF8yc2lnLnZndGVzdCBcCkBAIC0yMjcsNyArMjI5LDcgQEAgY2hlY2tfUFJPR1JBTVMgPSBcCiAJ
cHNlbGVjdF9zaWdtYXNrX251bGwgXAogCXB0aF9hdGZvcmsxIHB0aF9ibG9ja2Vkc2lnIHB0aF9j
YW5jZWwxIHB0aF9jYW5jZWwyIHB0aF9jdnNpbXBsZSBcCiAJcHRoX2VtcHR5IHB0aF9leGl0IHB0
aF9leGl0MiBwdGhfbXV0ZXhzcGVlZCBwdGhfb25jZSBwdGhfcndsb2NrIFwKLQlwdGhfc3RhY2th
bGlnbiBwdGhfMnNpZyBwdGhfdGVybV9zaWduYWxcCisJcHRoX3NlbGZfa2lsbCBwdGhfc3RhY2th
bGlnbiBwdGhfMnNpZyBwdGhfdGVybV9zaWduYWxcCiAJcmNybCByZWFkbGluZTEgXAogCXJlcXVp
cmUtdGV4dC1zeW1ib2wgXAogCXJlc19zZWFyY2ggcmVzb2x2IFwKQEAgLTMxNSw2ICszMTcsNyBA
QCBwdGhfbXV0ZXhzcGVlZF9MREFERAk9IC1scHRocmVhZAogcHRoX29uY2VfTERBREQJCT0gLWxw
dGhyZWFkCiBwdGhfcndsb2NrX0xEQURECT0gLWxwdGhyZWFkCiBwdGhfcndsb2NrX0NGTEFHUwk9
ICQoQU1fQ0ZMQUdTKQorcHRoX3NlbGZfa2lsbF9MREFERAk9IC1scHRocmVhZAogcHRoX3N0YWNr
YWxpZ25fTERBREQJPSAtbHB0aHJlYWQKIHB0aF8yc2lnX0xEQURECQk9IC1scHRocmVhZAogcHRo
X3Rlcm1fc2lnbmFsX0xEQURECT0gLWxwdGhyZWFkCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3B0
aF9zZWxmX2tpbGwuYyBiL25vbmUvdGVzdHMvcHRoX3NlbGZfa2lsbC5jCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uOThhZGJhZGNmCi0tLSAvZGV2L251bGwKKysrIGIvbm9u
ZS90ZXN0cy9wdGhfc2VsZl9raWxsLmMKQEAgLTAsMCArMSw0NCBAQAorI2luY2x1ZGUgPHNpZ25h
bC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyNpbmNsdWRl
IDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorCisvKiBUaGlzIHJlcHJvZHVjZXMgYnVn
cyA0MDkxNDEgYW5kIDQwOTM2Ny4KKyAgIHZhbGdyaW5kIC4vcHRoX3NlbGZfa2lsbCA5ICAgIHdh
cyBoYW5naW5nLgorCisgICB2YWxncmluZCAuL3B0aF9zZWxmX2tpbGwgMTUga2lsbG90aGVydGhy
ZWFkICB3YXMgbG9vcGluZy4KKyovCisKK3ZvaWQgKnQodm9pZCAqcCkKK3sKKyAgIHNsZWVwICgy
MDApOworICAgcHJpbnRmICgiZXJyb3I6IHN1cHBvc2VkIHRvIGRpZSB3aXRob3V0IHByaW50aW5n
IHRoaXNcbiIpOworICAgZXhpdCAoNSk7CisgICByZXR1cm4gTlVMTDsKK30KKworaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworICAgcHRocmVhZF90IHRocjsKKworICAgaWYgKGFy
Z2MgPD0gMSkKKyAgIHsKKyAgICAgIHByaW50ZgorICAgICAgICAgKCJ1c2FnZTogcHRoX3NlbGZf
a2lsbCBTSUdOQUxOUiBba2lsbG90aGVydGhyZWFkXSBbc2xlZXBhZnRlcmtpbGxdXG4iKTsKKyAg
ICAgIGV4aXQgKDEpOworICAgfQorCisgICBpbnQgcyA9IGF0b2koYXJndlsxXSk7CisKKyAgIHB0
aHJlYWRfY3JlYXRlKCZ0aHIsIE5VTEwsIHQsIE5VTEwpOworICAgc2xlZXAgKDEpOworICAgaWYg
KGFyZ2MgPiAyKQorICAgeworICAgICAgcHRocmVhZF9raWxsKHRociwgcyk7CisgICAgICBpZiAo
YXJnYyA+IDMpCisgICAgICAgICBzbGVlcCAoMik7CisgICB9CisgICBlbHNlCisgICAgICByYWlz
ZShzKTsKK30KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvcHRoX3NlbGZfa2lsbF8xNV9vdGhlci5z
dGRlcnIuZXhwIGIvbm9uZS90ZXN0cy9wdGhfc2VsZl9raWxsXzE1X290aGVyLnN0ZGVyci5leHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5lNjlkZTI5YmIKZGlmZiAtLWdp
dCBhL25vbmUvdGVzdHMvcHRoX3NlbGZfa2lsbF8xNV9vdGhlci52Z3Rlc3QgYi9ub25lL3Rlc3Rz
L3B0aF9zZWxmX2tpbGxfMTVfb3RoZXIudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMC4uNDE0MTg2OTE3Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9wdGhf
c2VsZl9raWxsXzE1X290aGVyLnZndGVzdApAQCAtMCwwICsxLDMgQEAKK3Byb2c6IHB0aF9zZWxm
X2tpbGwKK2FyZ3M6IDE1IGtpbGxvdGhlcnRocmVhZAordmdvcHRzOiAtcQpkaWZmIC0tZ2l0IGEv
bm9uZS90ZXN0cy9wdGhfc2VsZl9raWxsXzkuc3RkZXJyLmV4cCBiL25vbmUvdGVzdHMvcHRoX3Nl
bGZfa2lsbF85LnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
Li5lNjlkZTI5YmIKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvcHRoX3NlbGZfa2lsbF85LnZndGVz
dCBiL25vbmUvdGVzdHMvcHRoX3NlbGZfa2lsbF85LnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAuLjRiZWQ0NzNlMgotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVz
dHMvcHRoX3NlbGZfa2lsbF85LnZndGVzdApAQCAtMCwwICsxLDMgQEAKK3Byb2c6IHB0aF9zZWxm
X2tpbGwKK2FyZ3M6IDkKK3Znb3B0czogLXEKLS0gCjIuMjAuMQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>