<?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>171532</bug_id>
          
          <creation_ts>2017-05-01 19:02:46 -0700</creation_ts>
          <short_desc>Leaks always reports &quot;WebKit Malloc Memory Pressure Handler&quot; dispatch_queue/source as leaking</short_desc>
          <delta_ts>2017-05-05 18:42:45 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</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="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>msaboff</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1303557</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-05-01 19:02:46 -0700</bug_when>
    <thetext>Summary:
Leaks bot always reports &quot;WebKit Malloc Memory Pressure Handler&quot; as leaking

This seems like a valid report of a leak, however logically it doesn&apos;t appear to be a leak. We should be able to silence the report by saving the source into a member variable or static variable. For example, WebKit::WebMemoryPressureHandler uses a member variable.

Steps to Reproduce:
1. run-webkit-tests --leaks &lt;one-test&gt;
  =&gt; Leaks

Leaks:
Leak: 0x7feb425074c0  size=128  zone: DefaultMallocZone_0x10dff3000   OS_dispatch_queue  ObjC  libdispatch.dylib  &quot;WebKit Malloc Memory Pressure Handler&quot; (from JavaScriptCore)
	Call stack: [thread 0x7fffb0c013c0]: 
        | start 
        | main main.mm:66 
        | WTR::TestController::TestController(int, char const**) TestController.cpp:123 
        | WTR::TestController::TestController(int, char const**) TestController.cpp:117 
        | WTR::WebNotificationProvider::WebNotificationProvider() WebNotificationProvider.cpp:65 
        | WTR::WebNotificationProvider::WebNotificationProvider() WebNotificationProvider.cpp:63 
        | WTF::HashMap&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt;, WTF::PtrHash&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashTraits&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashTraits&lt;WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt; &gt; &gt;::HashMap() HashMap.h:76 
        | WTF::HashMap&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt;, WTF::PtrHash&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashTraits&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashTraits&lt;WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt; &gt; &gt;::HashMap() HashMap.h:76 
        | WTF::HashTable&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::KeyValuePair&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt; &gt; &gt;, WTF::PtrHash&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashMap&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt;, WTF::PtrHash&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashTraits&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashTraits&lt;WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt; &gt;::HashTable() HashTable.h:559 
        | WTF::HashTable&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::KeyValuePair&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt; &gt; &gt;, WTF::PtrHash&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashMap&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt;, WTF::PtrHash&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashTraits&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashTraits&lt;WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt; &gt;::HashTable() HashTable.h:553 
        | WTF::Lock::operator new(unsigned long) Lock.h:135 
        | WTF::fastMalloc(unsigned long) FastMalloc.cpp:256 
        | bmalloc::api::malloc(unsigned long) bmalloc.h:43 
        | bmalloc::Cache::allocate(unsigned long) Cache.h:79 
        | bmalloc::Cache::allocateSlowCaseNullCache(unsigned long) Cache.cpp:66 
        | bmalloc::PerThread&lt;bmalloc::Cache&gt;::getSlowCase() PerThread.h:141 
        | bmalloc::Cache::Cache() Cache.cpp:57 
        | bmalloc::Cache::Cache() PerProcess.h:84 
        | bmalloc::PerProcess&lt;bmalloc::Heap&gt;::getSlowCase() PerProcess.h:93 
        | bmalloc::Heap::Heap(std::__1::lock_guard&lt;bmalloc::StaticMutex&gt;&amp;) Heap.cpp:63 
        | bmalloc::Heap::Heap(std::__1::lock_guard&lt;bmalloc::StaticMutex&gt;&amp;) Heap.cpp:56 
        | _dispatch_queue_create_with_target 
        | _os_object_alloc_realized 
        | class_createInstance 
        | calloc 

Leak: 0x7feb42507540  size=176  zone: DefaultMallocZone_0x10dff3000   OS_dispatch_source  ObjC  libdispatch.dylib
	0xb0bd0348 0x00007fff 0x00000001 0x00000000 	H...............
	0x89abcdef 0xffffffff 0x425074c0 0x00007feb 	.........tPB....
	0x00000000 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x00000000 0x00000000 0x000fffe0 	................
	0x00000044 0x00000000 0xa7c86856 0x00007fff 	D.......Vh......
	0xffffffff 0xffffffff 0x00000000 0x00000000 	................
	0x00000000 0x00000000 0x00000000 0x00000000 	................
	0x00012000 0x00000000 0x00000000 0x0000002c 	. ..........,...
	...
	Call stack: [thread 0x7fffb0c013c0]: 
        | start 
        | main main.mm:66 
        | WTR::TestController::TestController(int, char const**) TestController.cpp:123 
        | WTR::TestController::TestController(int, char const**) TestController.cpp:117 
        | WTR::WebNotificationProvider::WebNotificationProvider() WebNotificationProvider.cpp:65 
        | WTR::WebNotificationProvider::WebNotificationProvider() WebNotificationProvider.cpp:63 
        | WTF::HashMap&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt;, WTF::PtrHash&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashTraits&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashTraits&lt;WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt; &gt; &gt;::HashMap() HashMap.h:76 
        | WTF::HashMap&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt;, WTF::PtrHash&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashTraits&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashTraits&lt;WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt; &gt; &gt;::HashMap() HashMap.h:76 
        | WTF::HashTable&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::KeyValuePair&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt; &gt; &gt;, WTF::PtrHash&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashMap&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt;, WTF::PtrHash&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashTraits&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashTraits&lt;WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt; &gt;::HashTable() HashTable.h:559 
        | WTF::HashTable&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::KeyValuePair&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt; &gt; &gt;, WTF::PtrHash&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashMap&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt;, WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt;, WTF::PtrHash&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashTraits&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt;, WTF::HashTraits&lt;WTF::HashSet&lt;unsigned long long, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;WebKit::WKRetainPtr&lt;OpaqueWKNotificationManager const*&gt; &gt; &gt;::HashTable() HashTable.h:553 
        | WTF::Lock::operator new(unsigned long) Lock.h:135 
        | WTF::fastMalloc(unsigned long) FastMalloc.cpp:256 
        | bmalloc::api::malloc(unsigned long) bmalloc.h:43 
        | bmalloc::Cache::allocate(unsigned long) Cache.h:79 
        | bmalloc::Cache::allocateSlowCaseNullCache(unsigned long) Cache.cpp:66 
        | bmalloc::PerThread&lt;bmalloc::Cache&gt;::getSlowCase() PerThread.h:141 
        | bmalloc::Cache::Cache() Cache.cpp:57 
        | bmalloc::Cache::Cache() PerProcess.h:84 
        | bmalloc::PerProcess&lt;bmalloc::Heap&gt;::getSlowCase() PerProcess.h:93 
        | bmalloc::Heap::Heap(std::__1::lock_guard&lt;bmalloc::StaticMutex&gt;&amp;) Heap.cpp:63 
        | bmalloc::Heap::Heap(std::__1::lock_guard&lt;bmalloc::StaticMutex&gt;&amp;) Heap.cpp:57 
        | dispatch_source_create 
        | _os_object_alloc_realized 
        | class_createInstance 
        | calloc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303575</commentid>
    <comment_count>1</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-05-01 21:30:35 -0700</bug_when>
    <thetext>Yeah we leak it on purpose :(.

I guess we can add a dummy data member for it just to silence the leaks bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305366</commentid>
    <comment_count>2</comment_count>
      <attachid>309225</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-05-05 15:31:15 -0700</bug_when>
    <thetext>Created attachment 309225
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305392</commentid>
    <comment_count>3</comment_count>
      <attachid>309225</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-05-05 16:12:32 -0700</bug_when>
    <thetext>Comment on attachment 309225
[PATCH] Proposed Fix

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

r=me

&gt; Source/bmalloc/bmalloc/Heap.cpp:61
&gt; +    dispatch_resume(m_pressureHandlerDispatchSource);

I guess you should dispatch_release queue here, since we&apos;re behaving as if we&apos;re not leaking these objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305407</commentid>
    <comment_count>4</comment_count>
      <attachid>309240</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-05-05 16:32:57 -0700</bug_when>
    <thetext>Created attachment 309240
[PATCH] For landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305448</commentid>
    <comment_count>5</comment_count>
      <attachid>309240</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-05 17:24:14 -0700</bug_when>
    <thetext>Comment on attachment 309240
[PATCH] For landing

Clearing flags on attachment: 309240

Committed r216300: &lt;http://trac.webkit.org/changeset/216300&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309225</attachid>
            <date>2017-05-05 15:31:15 -0700</date>
            <delta_ts>2017-05-05 16:12:32 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>leak-1.patch</filename>
            <type>text/plain</type>
            <size>2500</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZyBiL1NvdXJjZS9ibWFsbG9jL0No
YW5nZUxvZwppbmRleCBlMzhiOGIxZGIzNS4uMGI5ZGIzZDBjMWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9ibWFsbG9jL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wNS0wNSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUu
Y29tPgorCisgICAgICAgIExlYWtzIGFsd2F5cyByZXBvcnRzICJXZWJLaXQgTWFsbG9jIE1lbW9y
eSBQcmVzc3VyZSBIYW5kbGVyIiBkaXNwYXRjaF9xdWV1ZS9zb3VyY2UgYXMgbGVha2luZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNTMyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBibWFsbG9jL0hl
YXAuY3BwOgorICAgICAgICAoYm1hbGxvYzo6SGVhcDo6SGVhcCk6CisgICAgICAgICogYm1hbGxv
Yy9IZWFwLmg6CisgICAgICAgIFN0b3JlIHRoZSBkaXNwYXRjaF9zb3VyY2VfdCBpbiBhIG1lbWJl
ciB0byBhdm9pZCBhIGZhbHNlIHBvc2l0aXZlIGxlYWsuCisKIDIwMTctMDQtMjcgIE1pY2hhZWwg
U2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgYm1hbGxvYyBzY2F2ZW5nZXIg
c2hvdWxkIGtub3cgd2hhdCBwYWdlIGNsYXNzZXMgYXJlIGFsbG9jYXRpbmcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9j
L0hlYXAuY3BwCmluZGV4IDgwYWJlODQyYTQ3Li43MmI3YWIyY2MzZiAxMDA2NDQKLS0tIGEvU291
cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmNwcAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9j
L0hlYXAuY3BwCkBAIC0zMCwxMiArMzAsMTIgQEAKICNpbmNsdWRlICJQZXJQcm9jZXNzLmgiCiAj
aW5jbHVkZSAiU21hbGxMaW5lLmgiCiAjaW5jbHVkZSAiU21hbGxQYWdlLmgiCi0jaWYgQk9TKERB
UldJTikKLSNpbmNsdWRlICJibWFsbG9jLmgiCi0jaW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2gu
aD4KLSNlbmRpZgogI2luY2x1ZGUgPHRocmVhZD4KIAorI2lmIEJPUyhEQVJXSU4pCisjaW5jbHVk
ZSAiYm1hbGxvYy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBibWFsbG9jIHsKIAogSGVhcDo6SGVh
cChzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+JikKQEAgLTU0LDExICs1NCwxMSBAQCBIZWFw
OjpIZWFwKHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNNdXRleD4mKQogCiAjaWYgQk9TKERBUldJTikK
ICAgICBhdXRvIHF1ZXVlID0gZGlzcGF0Y2hfcXVldWVfY3JlYXRlKCJXZWJLaXQgTWFsbG9jIE1l
bW9yeSBQcmVzc3VyZSBIYW5kbGVyIiwgRElTUEFUQ0hfUVVFVUVfU0VSSUFMKTsKLSAgICBhdXRv
IHNvdXJjZSA9IGRpc3BhdGNoX3NvdXJjZV9jcmVhdGUoRElTUEFUQ0hfU09VUkNFX1RZUEVfTUVN
T1JZUFJFU1NVUkUsIDAsIERJU1BBVENIX01FTU9SWVBSRVNTVVJFX0NSSVRJQ0FMLCBxdWV1ZSk7
Ci0gICAgZGlzcGF0Y2hfc291cmNlX3NldF9ldmVudF9oYW5kbGVyKHNvdXJjZSwgXnsKKyAgICBt
X3ByZXNzdXJlSGFuZGxlckRpc3BhdGNoU291cmNlID0gZGlzcGF0Y2hfc291cmNlX2NyZWF0ZShE
SVNQQVRDSF9TT1VSQ0VfVFlQRV9NRU1PUllQUkVTU1VSRSwgMCwgRElTUEFUQ0hfTUVNT1JZUFJF
U1NVUkVfQ1JJVElDQUwsIHF1ZXVlKTsKKyAgICBkaXNwYXRjaF9zb3VyY2Vfc2V0X2V2ZW50X2hh
bmRsZXIobV9wcmVzc3VyZUhhbmRsZXJEaXNwYXRjaFNvdXJjZSwgXnsKICAgICAgICAgYXBpOjpz
Y2F2ZW5nZSgpOwogICAgIH0pOwotICAgIGRpc3BhdGNoX3Jlc3VtZShzb3VyY2UpOworICAgIGRp
c3BhdGNoX3Jlc3VtZShtX3ByZXNzdXJlSGFuZGxlckRpc3BhdGNoU291cmNlKTsKICNlbmRpZgog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0hlYXAuaCBiL1NvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvSGVhcC5oCmluZGV4IDYzNjE2YTVhZjRmLi43ZDQxYzAyMWI0NCAxMDA2
NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmgKKysrIGIvU291cmNlL2JtYWxs
b2MvYm1hbGxvYy9IZWFwLmgKQEAgLTQyLDYgKzQyLDEwIEBACiAjaW5jbHVkZSA8YXJyYXk+CiAj
aW5jbHVkZSA8bXV0ZXg+CiAKKyNpZiBCT1MoREFSV0lOKQorI2luY2x1ZGUgPGRpc3BhdGNoL2Rp
c3BhdGNoLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIGJtYWxsb2MgewogCiBjbGFzcyBCZWdpblRh
ZzsKQEAgLTEyOCw2ICsxMzIsNyBAQCBwcml2YXRlOgogICAgIFZNSGVhcCBtX3ZtSGVhcDsKIAog
I2lmIEJPUyhEQVJXSU4pCisgICAgZGlzcGF0Y2hfc291cmNlX3QgbV9wcmVzc3VyZUhhbmRsZXJE
aXNwYXRjaFNvdXJjZTsKICAgICBxb3NfY2xhc3NfdCBtX3JlcXVlc3RlZFNjYXZlbmdlclRocmVh
ZFFPU0NsYXNzIHsgUU9TX0NMQVNTX1VOU1BFQ0lGSUVEIH07CiAjZW5kaWYKIH07Cg==
</data>
<flag name="review"
          id="330400"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309240</attachid>
            <date>2017-05-05 16:32:57 -0700</date>
            <delta_ts>2017-05-05 17:24:14 -0700</delta_ts>
            <desc>[PATCH] For landing</desc>
            <filename>for-landing-1.patch</filename>
            <type>text/plain</type>
            <size>2530</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZyBiL1NvdXJjZS9ibWFsbG9jL0No
YW5nZUxvZwppbmRleCBlMzhiOGIxZGIzNS4uNmQyOTcwOTI0ODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9ibWFsbG9jL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wNS0wNSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUu
Y29tPgorCisgICAgICAgIExlYWtzIGFsd2F5cyByZXBvcnRzICJXZWJLaXQgTWFsbG9jIE1lbW9y
eSBQcmVzc3VyZSBIYW5kbGVyIiBkaXNwYXRjaF9xdWV1ZS9zb3VyY2UgYXMgbGVha2luZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNTMyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAgKiBibWFsbG9jL0hl
YXAuY3BwOgorICAgICAgICAoYm1hbGxvYzo6SGVhcDo6SGVhcCk6CisgICAgICAgICogYm1hbGxv
Yy9IZWFwLmg6CisgICAgICAgIFN0b3JlIHRoZSBkaXNwYXRjaF9zb3VyY2VfdCBpbiBhIG1lbWJl
ciB0byBhdm9pZCBhIGZhbHNlIHBvc2l0aXZlIGxlYWsuCisKIDIwMTctMDQtMjcgIE1pY2hhZWwg
U2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgYm1hbGxvYyBzY2F2ZW5nZXIg
c2hvdWxkIGtub3cgd2hhdCBwYWdlIGNsYXNzZXMgYXJlIGFsbG9jYXRpbmcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9j
L0hlYXAuY3BwCmluZGV4IDgwYWJlODQyYTQ3Li41Y2Q4MDNiODI5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmNwcAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9j
L0hlYXAuY3BwCkBAIC0zMCwxMiArMzAsMTIgQEAKICNpbmNsdWRlICJQZXJQcm9jZXNzLmgiCiAj
aW5jbHVkZSAiU21hbGxMaW5lLmgiCiAjaW5jbHVkZSAiU21hbGxQYWdlLmgiCi0jaWYgQk9TKERB
UldJTikKLSNpbmNsdWRlICJibWFsbG9jLmgiCi0jaW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2gu
aD4KLSNlbmRpZgogI2luY2x1ZGUgPHRocmVhZD4KIAorI2lmIEJPUyhEQVJXSU4pCisjaW5jbHVk
ZSAiYm1hbGxvYy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBibWFsbG9jIHsKIAogSGVhcDo6SGVh
cChzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+JikKQEAgLTU0LDExICs1NCwxMiBAQCBIZWFw
OjpIZWFwKHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNNdXRleD4mKQogCiAjaWYgQk9TKERBUldJTikK
ICAgICBhdXRvIHF1ZXVlID0gZGlzcGF0Y2hfcXVldWVfY3JlYXRlKCJXZWJLaXQgTWFsbG9jIE1l
bW9yeSBQcmVzc3VyZSBIYW5kbGVyIiwgRElTUEFUQ0hfUVVFVUVfU0VSSUFMKTsKLSAgICBhdXRv
IHNvdXJjZSA9IGRpc3BhdGNoX3NvdXJjZV9jcmVhdGUoRElTUEFUQ0hfU09VUkNFX1RZUEVfTUVN
T1JZUFJFU1NVUkUsIDAsIERJU1BBVENIX01FTU9SWVBSRVNTVVJFX0NSSVRJQ0FMLCBxdWV1ZSk7
Ci0gICAgZGlzcGF0Y2hfc291cmNlX3NldF9ldmVudF9oYW5kbGVyKHNvdXJjZSwgXnsKKyAgICBt
X3ByZXNzdXJlSGFuZGxlckRpc3BhdGNoU291cmNlID0gZGlzcGF0Y2hfc291cmNlX2NyZWF0ZShE
SVNQQVRDSF9TT1VSQ0VfVFlQRV9NRU1PUllQUkVTU1VSRSwgMCwgRElTUEFUQ0hfTUVNT1JZUFJF
U1NVUkVfQ1JJVElDQUwsIHF1ZXVlKTsKKyAgICBkaXNwYXRjaF9zb3VyY2Vfc2V0X2V2ZW50X2hh
bmRsZXIobV9wcmVzc3VyZUhhbmRsZXJEaXNwYXRjaFNvdXJjZSwgXnsKICAgICAgICAgYXBpOjpz
Y2F2ZW5nZSgpOwogICAgIH0pOwotICAgIGRpc3BhdGNoX3Jlc3VtZShzb3VyY2UpOworICAgIGRp
c3BhdGNoX3Jlc3VtZShtX3ByZXNzdXJlSGFuZGxlckRpc3BhdGNoU291cmNlKTsKKyAgICBkaXNw
YXRjaF9yZWxlYXNlKHF1ZXVlKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0hlYXAuaCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5oCmluZGV4
IDYzNjE2YTVhZjRmLi43ZDQxYzAyMWI0NCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1h
bGxvYy9IZWFwLmgKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmgKQEAgLTQyLDYg
KzQyLDEwIEBACiAjaW5jbHVkZSA8YXJyYXk+CiAjaW5jbHVkZSA8bXV0ZXg+CiAKKyNpZiBCT1Mo
REFSV0lOKQorI2luY2x1ZGUgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+CisjZW5kaWYKKwogbmFtZXNw
YWNlIGJtYWxsb2MgewogCiBjbGFzcyBCZWdpblRhZzsKQEAgLTEyOCw2ICsxMzIsNyBAQCBwcml2
YXRlOgogICAgIFZNSGVhcCBtX3ZtSGVhcDsKIAogI2lmIEJPUyhEQVJXSU4pCisgICAgZGlzcGF0
Y2hfc291cmNlX3QgbV9wcmVzc3VyZUhhbmRsZXJEaXNwYXRjaFNvdXJjZTsKICAgICBxb3NfY2xh
c3NfdCBtX3JlcXVlc3RlZFNjYXZlbmdlclRocmVhZFFPU0NsYXNzIHsgUU9TX0NMQVNTX1VOU1BF
Q0lGSUVEIH07CiAjZW5kaWYKIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>