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

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>198518</bug_id>
          
          <creation_ts>2019-06-04 00:57:14 -0700</creation_ts>
          <short_desc>REGRESSION(r245586): static assertion failed: Match result and EncodedMatchResult should be the same size</short_desc>
          <delta_ts>2019-06-26 01:28:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alberto Garcia">berto</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>erack</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1541477</commentid>
    <comment_count>0</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2019-06-04 00:57:14 -0700</bug_when>
    <thetext>The build fails in most architectures (exceptions: i386, x86_64, aarch64).

              -------------------------------------------------------

These errors are from mips64:

In file included from ../Source/JavaScriptCore/runtime/RegExp.h:25,
                 from ../Source/JavaScriptCore/runtime/RegExpCachedResult.h:30,
                 from ../Source/JavaScriptCore/runtime/RegExpGlobalData.h:28,
                 from ../Source/JavaScriptCore/runtime/JSGlobalObject.h:42,
                 from ../Source/JavaScriptCore/runtime/ExecutableBase.h:33,
                 from ../Source/JavaScriptCore/runtime/ScriptExecutable.h:28,
                 from ../Source/JavaScriptCore/runtime/GlobalExecutable.h:29,
                 from ../Source/JavaScriptCore/runtime/EvalExecutable.h:29,
                 from ../Source/JavaScriptCore/runtime/DirectEvalExecutable.h:28,
                 from ../Source/JavaScriptCore/bytecode/DirectEvalCodeCache.h:31,
                 from ../Source/JavaScriptCore/bytecode/CodeBlock.h:42,
                 from ../Source/JavaScriptCore/bytecode/StructureStubInfo.h:28,
                 from ../Source/JavaScriptCore/bytecode/BytecodeDumper.h:33,
                 from DerivedSources/JavaScriptCore/BytecodeStructs.h:32,
                 from ../Source/JavaScriptCore/llint/LLIntOffsetsExtractor.cpp:31:
../Source/JavaScriptCore/runtime/MatchResult.h: At global scope:
../Source/JavaScriptCore/runtime/MatchResult.h:82:35: error: static assertion failed: Match result and EncodedMatchResult should be the same size
 static_assert(sizeof(MatchResult) == sizeof(EncodedMatchResult), &quot;Match result and EncodedMatchResult should be the same size&quot;);


DerivedSources/ForwardingHeaders/wtf/StdLibExtras.h: In instantiation of ‘ToType WTF::bitwise_cast(FromType) [with ToType = JSC::MatchResult; FromType = long unsigned int]’:
../Source/JavaScriptCore/runtime/MatchResult.h:55:48:   required from here
DerivedSources/ForwardingHeaders/wtf/StdLibExtras.h:136:36: error: static assertion failed: bitwise_cast size of FromType and ToType must be equal!
     static_assert(sizeof(FromType) == sizeof(ToType), &quot;bitwise_cast size of FromType and ToType must be equal!&quot;);

              -------------------------------------------------------

This one is from armhf:

In file included from DerivedSources/ForwardingHeaders/wtf/StdLibExtras.h:32,
                 from DerivedSources/ForwardingHeaders/wtf/FastMalloc.h:25,
                 from ../Source/WebCore/config.h:50,
                 from ../Source/WebCore/rendering/style/StyleGeneratedImage.cpp:24,
                 from DerivedSources/WebCore/unified-sources/UnifiedSource-043dd90b-23.cpp:1:
../Source/WebCore/rendering/style/StyleRareInheritedData.cpp:78:47: error: static assertion failed: StyleRareInheritedData_should_bit_pack
 COMPILE_ASSERT(sizeof(StyleRareInheritedData) &lt;= sizeof(GreaterThanOrSameSizeAsStyleRareInheritedData), StyleRareInheritedData_should_bit_pack);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541526</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-04 05:24:30 -0700</bug_when>
    <thetext>(In reply to Alberto Garcia from comment #0)
&gt; This one is from armhf:
&gt; 
&gt; In file included from DerivedSources/ForwardingHeaders/wtf/StdLibExtras.h:32,
&gt;                  from DerivedSources/ForwardingHeaders/wtf/FastMalloc.h:25,
&gt;                  from ../Source/WebCore/config.h:50,
&gt;                  from
&gt; ../Source/WebCore/rendering/style/StyleGeneratedImage.cpp:24,
&gt;                  from
&gt; DerivedSources/WebCore/unified-sources/UnifiedSource-043dd90b-23.cpp:1:
&gt; ../Source/WebCore/rendering/style/StyleRareInheritedData.cpp:78:47: error:
&gt; static assertion failed: StyleRareInheritedData_should_bit_pack
&gt;  COMPILE_ASSERT(sizeof(StyleRareInheritedData) &lt;=
&gt; sizeof(GreaterThanOrSameSizeAsStyleRareInheritedData),
&gt; StyleRareInheritedData_should_bit_pack);

This is bug #198274. For GNOME, we are hitting this on aarch64 as well.

Let&apos;s use this bug for the first issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545231</commentid>
    <comment_count>2</comment_count>
    <who name="Eike Rathke">erack</who>
    <bug_when>2019-06-17 04:56:52 -0700</bug_when>
    <thetext>Dumb question, is this fixed in webkitgtk-2.25.2?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545233</commentid>
    <comment_count>3</comment_count>
    <who name="Eike Rathke">erack</who>
    <bug_when>2019-06-17 05:00:51 -0700</bug_when>
    <thetext>CI on master indicates it isn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545576</commentid>
    <comment_count>4</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2019-06-18 01:12:32 -0700</bug_when>
    <thetext>(In reply to Eike Rathke from comment #2)
&gt; Dumb question, is this fixed in webkitgtk-2.25.2?

It isn&apos;t, in Debian it fails in (at least) ppc64, ppc64el and s390x.

https://buildd.debian.org/status/package.php?p=webkit2gtk&amp;suite=experimental</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547468</commentid>
    <comment_count>5</comment_count>
      <attachid>372782</attachid>
    <who name="Eike Rathke">erack</who>
    <bug_when>2019-06-24 12:10:47 -0700</bug_when>
    <thetext>Created attachment 372782
proposed patch

It is unclear to me why in Source/JavaScriptCore/runtime/MatchResult.h the EncodedMatchResult should depend on CPU, but clearly with

  using EncodedMatchResult = uint64_t;

and

  static_assert(sizeof(MatchResult) == sizeof(EncodedMatchResult))

and the two size_t member variables of MatchResult that can compile only if size_t is 32-bit and the member variables aligned. So the straight forward change would be to do exactly that, but I don&apos;t know if there is a reason to have CPU type involved here (because of JIT asm).

Attached is a tad ugly patch which on ppc64le at least compiles.

Does that suit the purpose? If yes, I can create a ready-to-commit patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547477</commentid>
    <comment_count>6</comment_count>
      <attachid>372782</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-24 12:24:22 -0700</bug_when>
    <thetext>Comment on attachment 372782
proposed patch

You can set r? to request review and cq? to request commit-queue. But the r+ and cq+ flags are reserved for WebKit reviewers and committers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547486</commentid>
    <comment_count>7</comment_count>
      <attachid>372782</attachid>
    <who name="Eike Rathke">erack</who>
    <bug_when>2019-06-24 12:36:51 -0700</bug_when>
    <thetext>Comment on attachment 372782
proposed patch

Meh, misclicked, was supposed to be &apos;r?&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547497</commentid>
    <comment_count>8</comment_count>
      <attachid>372782</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-24 12:54:04 -0700</bug_when>
    <thetext>Comment on attachment 372782
proposed patch

View in context: https://bugs.webkit.org/attachment.cgi?id=372782&amp;action=review

&gt; Source/JavaScriptCore/runtime/MatchResult.h      2019-06-24 18:36:36.947345256 +0000:43
&gt;  #if CPU(ARM64) || CPU(X86_64)
&gt; +#define ENCODEDMATCHRESULT_IS_MATCHRESULT 1
&gt;  using EncodedMatchResult = MatchResult;
&gt; -#else
&gt; +#elif (defined(SIZE_WIDTH) &amp;&amp; (SIZE_WIDTH == 32)) || (SIZE_MAX == 0xffffffff)
&gt; +#define ENCODEDMATCHRESULT_IS_MATCHRESULT 0
&gt;  using EncodedMatchResult = uint64_t;
&gt; +#else
&gt; +#define ENCODEDMATCHRESULT_IS_MATCHRESULT 1
&gt; +using EncodedMatchResult = MatchResult;
&gt;  #endif

Hm, well I see this should fix the problem. Thanks.

But it&apos;s really messy and honestly not great. Looking at the commit that introduced this build failure, r245586 &quot;Cleanup Yarr regexp code around paren contexts,&quot; I see the code is rather complicated and I&apos;m not confident in how to fix this nicely without reverting that change, but that commit was clearly incorrect. It assumes size_t is 32-bit except on x86_64 and aarch64, which is of course not right. The code only works if size_t happens to be the same as uint32_t, so I guess it should use uint32_t if that&apos;s what&apos;s desired. However, the constructor uses size_t and changing it to use uint32_t would require auditing a large number of callsites, so that should be left to JSC developers.

I&apos;ve just visited bug #198063 to ask Keith to comment here. Let&apos;s see what he thinks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547498</commentid>
    <comment_count>9</comment_count>
      <attachid>372782</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-24 12:55:22 -0700</bug_when>
    <thetext>Comment on attachment 372782
proposed patch

Thanks again. BTW, the patch should have a ChangeLog entry when setting r? which you can create with:

Tools/Scripts/prepare-ChangeLog -b 198518

(If it&apos;s just a WIP patch without a changelog, don&apos;t set r? yet.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547501</commentid>
    <comment_count>10</comment_count>
      <attachid>372782</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-06-24 13:03:20 -0700</bug_when>
    <thetext>Comment on attachment 372782
proposed patch

View in context: https://bugs.webkit.org/attachment.cgi?id=372782&amp;action=review

Also missing ChangeLog.

&gt; Source/JavaScriptCore/runtime/MatchResult.h      2019-06-24 18:36:36.947345256 +0000:43
&gt;  #if CPU(ARM64) || CPU(X86_64)
&gt; +#define ENCODEDMATCHRESULT_IS_MATCHRESULT 1
&gt;  using EncodedMatchResult = MatchResult;
&gt; -#else
&gt; +#elif (defined(SIZE_WIDTH) &amp;&amp; (SIZE_WIDTH == 32)) || (SIZE_MAX == 0xffffffff)
&gt; +#define ENCODEDMATCHRESULT_IS_MATCHRESULT 0
&gt;  using EncodedMatchResult = uint64_t;
&gt; +#else
&gt; +#define ENCODEDMATCHRESULT_IS_MATCHRESULT 1
&gt; +using EncodedMatchResult = MatchResult;
&gt;  #endif

This fix is invalid.

The issue is that MatchResult contains 2 size_t values.  This means, on 32-bit platforms, sizeof(MatchResult) is 64-bit, but on 64-bit platforms, sizeof(MatchResult) is 128-bit.

The proper fix is simply:

#if CPU(ADDRESS32)
using EncodedMatchResult = uint64_t;
static_assert(sizeof(size_t) == sizeof(uint32_t), &quot;&quot;);
#else
using EncodedMatchResult = MatchResult;
#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547505</commentid>
    <comment_count>11</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-06-24 13:13:37 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #10)
&gt; Comment on attachment 372782 [details]
&gt; proposed patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=372782&amp;action=review
&gt; 
&gt; Also missing ChangeLog.
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/MatchResult.h      2019-06-24 18:36:36.947345256 +0000:43
&gt; &gt;  #if CPU(ARM64) || CPU(X86_64)
&gt; &gt; +#define ENCODEDMATCHRESULT_IS_MATCHRESULT 1
&gt; &gt;  using EncodedMatchResult = MatchResult;
&gt; &gt; -#else
&gt; &gt; +#elif (defined(SIZE_WIDTH) &amp;&amp; (SIZE_WIDTH == 32)) || (SIZE_MAX == 0xffffffff)
&gt; &gt; +#define ENCODEDMATCHRESULT_IS_MATCHRESULT 0
&gt; &gt;  using EncodedMatchResult = uint64_t;
&gt; &gt; +#else
&gt; &gt; +#define ENCODEDMATCHRESULT_IS_MATCHRESULT 1
&gt; &gt; +using EncodedMatchResult = MatchResult;
&gt; &gt;  #endif
&gt; 
&gt; This fix is invalid.
&gt; 
&gt; The issue is that MatchResult contains 2 size_t values.  This means, on
&gt; 32-bit platforms, sizeof(MatchResult) is 64-bit, but on 64-bit platforms,
&gt; sizeof(MatchResult) is 128-bit.
&gt; 
&gt; The proper fix is simply:
&gt; 
&gt; #if CPU(ADDRESS32)
&gt; using EncodedMatchResult = uint64_t;
&gt; static_assert(sizeof(size_t) == sizeof(uint32_t), &quot;&quot;);
&gt; #else
&gt; using EncodedMatchResult = MatchResult;
&gt; #endif

I think a better assertion would be static_assert(sizeof(EncodedMatchResult) == 2 * sizeof(size_t)), which should be true on all platforms. I like the rest of your change though.

The point of the EncodedMatchResult type is to ensure that the C calling convention will return the result in the two return registers rather than on the stack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547509</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-24 13:19:41 -0700</bug_when>
    <thetext>Thanks Mark, Keith! I was about to post my own solution using SIZE_MAX, but yours is much better.

Eike, Berto, could you please test this patch and make sure it works on the architectures you care about?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547510</commentid>
    <comment_count>13</comment_count>
      <attachid>372790</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-24 13:19:56 -0700</bug_when>
    <thetext>Created attachment 372790
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547511</commentid>
    <comment_count>14</comment_count>
      <attachid>372791</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-24 13:24:41 -0700</bug_when>
    <thetext>Created attachment 372791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547524</commentid>
    <comment_count>15</comment_count>
    <who name="Eike Rathke">erack</who>
    <bug_when>2019-06-24 13:39:59 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #10)
&gt; Also missing ChangeLog.
Yes, it was a WIP patch.

&gt; The issue is that MatchResult contains 2 size_t values.  This means, on
&gt; 32-bit platforms, sizeof(MatchResult) is 64-bit, but on 64-bit platforms,
&gt; sizeof(MatchResult) is 128-bit.
&gt; 
&gt; The proper fix is simply:
&gt; 
&gt; #if CPU(ADDRESS32)
&gt; using EncodedMatchResult = uint64_t;
&gt; static_assert(sizeof(size_t) == sizeof(uint32_t), &quot;&quot;);
&gt; #else
&gt; using EncodedMatchResult = MatchResult;
&gt; #endif
I thought of such as well, but wasn&apos;t sure because of these odd Windows 64/32 platforms where at least a long still is only 32-bit.

I&apos;ll try Michael&apos;s patch.


(In reply to Keith Miller from comment #11)
&gt; The point of the EncodedMatchResult type is to ensure that the C calling
&gt; convention will return the result in the two return registers rather than on
&gt; the stack.
Ah, thanks for enlightenment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547531</commentid>
    <comment_count>16</comment_count>
    <who name="Eike Rathke">erack</who>
    <bug_when>2019-06-24 14:00:51 -0700</bug_when>
    <thetext>That part compiled at least on ppc64le, I&apos;ll prepare a Fedora rawhide build of 2.25.2 with the patch applied to cover the other platforms as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547674</commentid>
    <comment_count>17</comment_count>
    <who name="Eike Rathke">erack</who>
    <bug_when>2019-06-25 02:57:35 -0700</bug_when>
    <thetext>Ok, that did it. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547681</commentid>
    <comment_count>18</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2019-06-25 04:57:50 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #14)
&gt; Created attachment 372791 [details]
&gt; Patch

I just built 2.25.2 on aarch64 with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547693</commentid>
    <comment_count>19</comment_count>
      <attachid>372791</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-25 08:04:02 -0700</bug_when>
    <thetext>Comment on attachment 372791
Patch

Maybe Mark or Keith could set r+ if satisfied. Thanks again for the help!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547700</commentid>
    <comment_count>20</comment_count>
      <attachid>372791</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-25 09:08:33 -0700</bug_when>
    <thetext>Comment on attachment 372791
Patch

Clearing flags on attachment: 372791

Committed r246792: &lt;https://trac.webkit.org/changeset/246792&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547701</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-25 09:08:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547985</commentid>
    <comment_count>22</comment_count>
    <who name="Eike Rathke">erack</who>
    <bug_when>2019-06-26 01:28:34 -0700</bug_when>
    <thetext>CI Jenkins builds are back to normal for ppc64, ppc64le and s390x.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372782</attachid>
            <date>2019-06-24 12:10:47 -0700</date>
            <delta_ts>2019-06-24 13:19:51 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>webkit-encodedmatchresult.patch</filename>
            <type>text/plain</type>
            <size>1013</size>
            <attacher name="Eike Rathke">erack</attacher>
            
              <data encoding="base64">LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGNoUmVzdWx0LmguZW5jb2RlZG1h
dGNocmVzdWx0ICAgMjAxOS0wNS0yMiAwODoxNjo0OC4wMDAwMDAwMDAgKzAwMDAKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGNoUmVzdWx0LmggICAgICAyMDE5LTA2LTI0IDE4
OjM2OjM2Ljk0NzM0NTI1NiArMDAwMApAQCAtMzIsMTEgKzMyLDE3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiBzdHJ1Y3QgTWF0Y2hSZXN1bHQ7CiAjaWYgQ1BVKEFSTTY0KSB8fCBDUFUoWDg2XzY0KQor
I2RlZmluZSBFTkNPREVETUFUQ0hSRVNVTFRfSVNfTUFUQ0hSRVNVTFQgMQogdXNpbmcgRW5jb2Rl
ZE1hdGNoUmVzdWx0ID0gTWF0Y2hSZXN1bHQ7Ci0jZWxzZQorI2VsaWYgKGRlZmluZWQoU0laRV9X
SURUSCkgJiYgKFNJWkVfV0lEVEggPT0gMzIpKSB8fCAoU0laRV9NQVggPT0gMHhmZmZmZmZmZikK
KyNkZWZpbmUgRU5DT0RFRE1BVENIUkVTVUxUX0lTX01BVENIUkVTVUxUIDAKIHVzaW5nIEVuY29k
ZWRNYXRjaFJlc3VsdCA9IHVpbnQ2NF90OworI2Vsc2UKKyNkZWZpbmUgRU5DT0RFRE1BVENIUkVT
VUxUX0lTX01BVENIUkVTVUxUIDEKK3VzaW5nIEVuY29kZWRNYXRjaFJlc3VsdCA9IE1hdGNoUmVz
dWx0OwogI2VuZGlmCiAKKwogc3RydWN0IE1hdGNoUmVzdWx0IHsKICAgICBNYXRjaFJlc3VsdCgp
CiAgICAgICAgIDogc3RhcnQoV1RGOjpub3RGb3VuZCkKQEAgLTUwLDcgKzU2LDcgQEAgc3RydWN0
IE1hdGNoUmVzdWx0IHsKICAgICB7CiAgICAgfQogCi0jaWYgIShDUFUoQVJNNjQpIHx8IENQVShY
ODZfNjQpKQorI2lmICFFTkNPREVETUFUQ0hSRVNVTFRfSVNfTUFUQ0hSRVNVTFQKICAgICBBTFdB
WVNfSU5MSU5FIE1hdGNoUmVzdWx0KEVuY29kZWRNYXRjaFJlc3VsdCBtYXRjaCkKICAgICAgICAg
OiBzdGFydChiaXR3aXNlX2Nhc3Q8TWF0Y2hSZXN1bHQ+KG1hdGNoKS5zdGFydCkKICAgICAgICAg
LCBlbmQoYml0d2lzZV9jYXN0PE1hdGNoUmVzdWx0PihtYXRjaCkuZW5kKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372790</attachid>
            <date>2019-06-24 13:19:56 -0700</date>
            <delta_ts>2019-06-24 13:24:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198518-20190624151955.patch</filename>
            <type>text/plain</type>
            <size>1879</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NGJkMmZmYWNkZmYwZWNlNDFkYTQ4OTU5YzhiYTZjZWZkODM3YzI0Li45OGRhZjdiOTBmNDE4MmMy
NWJmZTkwZjY3MzJlNTdiZmIyZDMzY2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxOS0wNi0yNCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGln
YWxpYS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjQ1NTg2KTogc3RhdGljIGFzc2VydGlv
biBmYWlsZWQ6IE1hdGNoIHJlc3VsdCBhbmQgRW5jb2RlZE1hdGNoUmVzdWx0IHNob3VsZCBiZSB0
aGUgc2FtZSBzaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTg1MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICByMjQ1NTg2IG1hZGUgc29tZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIHNpemUgb2Yg
c2l6ZV90LCB3aGljaCB3ZSBjYW4gc29sdmUgdXNpbmcgdGhlCisgICAgICAgIENQVShBRERSRVNT
MzIpIGd1YXJkIHRoYXQgSSBkaWRuJ3Qga25vdyBhYm91dC4KKworICAgICAgICBUaGlzIHNvbHV0
aW9uIHdhcyBkZXZlbG9wZWQgYnkgTWFyayBMYW0gYW5kIEtlaXRoIE1pbGxlci4gSSdtIGp1c3Qg
cHJlcGFyaW5nIHRoZSBwYXRjaC4KKworICAgICAgICAqIHJ1bnRpbWUvTWF0Y2hSZXN1bHQuaDoK
KwogMjAxOS0wNi0yNCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAg
QXJyYXlTbGljZSBuZWVkcyB0byBrZWVwIHRoZSBzb3VyY2UgYXJyYXkgYWxpdmUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRjaFJlc3VsdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0Y2hSZXN1bHQuaAppbmRleCBjNGFlY2FhYzc2YTQx
Zjk0ZTE4NDlkNTVjNTJmNzkzOTJmMWRkN2MxLi45Yjg4MTk3OTQ5NzM2ZjhlZjE0YjAwNjc2OTAy
ODQ1YzI0NzM4NzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
YXRjaFJlc3VsdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGNoUmVz
dWx0LmgKQEAgLTMxLDEwICszMSwxMSBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIHN0cnVjdCBNYXRj
aFJlc3VsdDsKLSNpZiBDUFUoQVJNNjQpIHx8IENQVShYODZfNjQpCi11c2luZyBFbmNvZGVkTWF0
Y2hSZXN1bHQgPSBNYXRjaFJlc3VsdDsKLSNlbHNlCisjaWYgQ1BVKEFERFJFU1MzMikKIHVzaW5n
IEVuY29kZWRNYXRjaFJlc3VsdCA9IHVpbnQ2NF90Oworc3RhdGljX2Fzc2VydChzaXplb2YoRW5j
b2RlZE1hdGNoUmVzdWx0KSA9PSAyICogc2l6ZW9mKHNpemVfdCkpOworI2Vsc2UKK3VzaW5nIEVu
Y29kZWRNYXRjaFJlc3VsdCA9IE1hdGNoUmVzdWx0OwogI2VuZGlmCiAKIHN0cnVjdCBNYXRjaFJl
c3VsdCB7CkBAIC01MCw3ICs1MSw3IEBAIHN0cnVjdCBNYXRjaFJlc3VsdCB7CiAgICAgewogICAg
IH0KIAotI2lmICEoQ1BVKEFSTTY0KSB8fCBDUFUoWDg2XzY0KSkKKyNpZiBDUFUoQUREUkVTUzMy
KQogICAgIEFMV0FZU19JTkxJTkUgTWF0Y2hSZXN1bHQoRW5jb2RlZE1hdGNoUmVzdWx0IG1hdGNo
KQogICAgICAgICA6IHN0YXJ0KGJpdHdpc2VfY2FzdDxNYXRjaFJlc3VsdD4obWF0Y2gpLnN0YXJ0
KQogICAgICAgICAsIGVuZChiaXR3aXNlX2Nhc3Q8TWF0Y2hSZXN1bHQ+KG1hdGNoKS5lbmQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372791</attachid>
            <date>2019-06-24 13:24:41 -0700</date>
            <delta_ts>2019-06-25 09:08:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198518-20190624152440.patch</filename>
            <type>text/plain</type>
            <size>2147</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NGJkMmZmYWNkZmYwZWNlNDFkYTQ4OTU5YzhiYTZjZWZkODM3YzI0Li45OGRhZjdiOTBmNDE4MmMy
NWJmZTkwZjY3MzJlNTdiZmIyZDMzY2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxOS0wNi0yNCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGln
YWxpYS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjQ1NTg2KTogc3RhdGljIGFzc2VydGlv
biBmYWlsZWQ6IE1hdGNoIHJlc3VsdCBhbmQgRW5jb2RlZE1hdGNoUmVzdWx0IHNob3VsZCBiZSB0
aGUgc2FtZSBzaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTg1MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICByMjQ1NTg2IG1hZGUgc29tZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIHNpemUgb2Yg
c2l6ZV90LCB3aGljaCB3ZSBjYW4gc29sdmUgdXNpbmcgdGhlCisgICAgICAgIENQVShBRERSRVNT
MzIpIGd1YXJkIHRoYXQgSSBkaWRuJ3Qga25vdyBhYm91dC4KKworICAgICAgICBUaGlzIHNvbHV0
aW9uIHdhcyBkZXZlbG9wZWQgYnkgTWFyayBMYW0gYW5kIEtlaXRoIE1pbGxlci4gSSdtIGp1c3Qg
cHJlcGFyaW5nIHRoZSBwYXRjaC4KKworICAgICAgICAqIHJ1bnRpbWUvTWF0Y2hSZXN1bHQuaDoK
KwogMjAxOS0wNi0yNCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAg
QXJyYXlTbGljZSBuZWVkcyB0byBrZWVwIHRoZSBzb3VyY2UgYXJyYXkgYWxpdmUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRjaFJlc3VsdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0Y2hSZXN1bHQuaAppbmRleCBjNGFlY2FhYzc2YTQx
Zjk0ZTE4NDlkNTVjNTJmNzkzOTJmMWRkN2MxLi5hZGQyNjRlOTA5NzViMjY1ZmQ1YmUxMGYyNjMy
ZmQ3NWUyODZjODFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
YXRjaFJlc3VsdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGNoUmVz
dWx0LmgKQEAgLTMxLDEwICszMSwxMCBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIHN0cnVjdCBNYXRj
aFJlc3VsdDsKLSNpZiBDUFUoQVJNNjQpIHx8IENQVShYODZfNjQpCi11c2luZyBFbmNvZGVkTWF0
Y2hSZXN1bHQgPSBNYXRjaFJlc3VsdDsKLSNlbHNlCisjaWYgQ1BVKEFERFJFU1MzMikKIHVzaW5n
IEVuY29kZWRNYXRjaFJlc3VsdCA9IHVpbnQ2NF90OworI2Vsc2UKK3VzaW5nIEVuY29kZWRNYXRj
aFJlc3VsdCA9IE1hdGNoUmVzdWx0OwogI2VuZGlmCiAKIHN0cnVjdCBNYXRjaFJlc3VsdCB7CkBA
IC01MCw3ICs1MCw3IEBAIHN0cnVjdCBNYXRjaFJlc3VsdCB7CiAgICAgewogICAgIH0KIAotI2lm
ICEoQ1BVKEFSTTY0KSB8fCBDUFUoWDg2XzY0KSkKKyNpZiBDUFUoQUREUkVTUzMyKQogICAgIEFM
V0FZU19JTkxJTkUgTWF0Y2hSZXN1bHQoRW5jb2RlZE1hdGNoUmVzdWx0IG1hdGNoKQogICAgICAg
ICA6IHN0YXJ0KGJpdHdpc2VfY2FzdDxNYXRjaFJlc3VsdD4obWF0Y2gpLnN0YXJ0KQogICAgICAg
ICAsIGVuZChiaXR3aXNlX2Nhc3Q8TWF0Y2hSZXN1bHQ+KG1hdGNoKS5lbmQpCkBAIC03OSw2ICs3
OSw3IEBAIHN0cnVjdCBNYXRjaFJlc3VsdCB7CiAgICAgc2l6ZV90IGVuZDsKIH07CiAKK3N0YXRp
Y19hc3NlcnQoc2l6ZW9mKEVuY29kZWRNYXRjaFJlc3VsdCkgPT0gMiAqIHNpemVvZihzaXplX3Qp
LCAiaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODUxOCNjMTEiKTsK
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKE1hdGNoUmVzdWx0KSA9PSBzaXplb2YoRW5jb2RlZE1hdGNo
UmVzdWx0KSwgIk1hdGNoIHJlc3VsdCBhbmQgRW5jb2RlZE1hdGNoUmVzdWx0IHNob3VsZCBiZSB0
aGUgc2FtZSBzaXplIik7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>