<?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>159346</bug_id>
          
          <creation_ts>2016-07-01 05:25:54 -0700</creation_ts>
          <short_desc>[GLib] Use a GSource instead of a thread to poll memory pressure eventFD in linux implementation</short_desc>
          <delta_ts>2018-04-03 06:01:04 -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>Platform</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=184261</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>155255</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>pnormand</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1207073</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-01 05:25:54 -0700</bug_when>
    <thetext>The eventFD file descriptor is pollable, so it would be much better to use a poll instead of a blocking read in a secondary thread and then communicate back to the main thread. This is very easy to do with GSource in GLib, so we could use that when GLib is available and keep the current implementation as a fallback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207075</commentid>
    <comment_count>1</comment_count>
      <attachid>282540</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-01 05:33:37 -0700</bug_when>
    <thetext>Created attachment 282540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207077</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-01 05:35:37 -0700</bug_when>
    <thetext>Attachment 282540 did not pass style-queue:


ERROR: Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp:96:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp:240:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/platform/MemoryPressureHandler.h:146:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/MemoryPressureHandler.h:153:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 4 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207087</commentid>
    <comment_count>3</comment_count>
      <attachid>282540</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2016-07-01 06:07:42 -0700</bug_when>
    <thetext>Comment on attachment 282540
Patch

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

Looking good. One overall suggestion to use Optional rather than -1/0.

&gt; Source/WebCore/platform/MemoryPressureHandler.h:176
&gt; +    int m_eventFD { -1 };
&gt; +    int m_pressureLevelFD { -1 };

since we are touch these now, can we make it Optional&lt;int&gt; instead of using magic -1 or 0?

It would allow us to if-check

if (m_eventFD)

instead of 

if (m_eventFD != -1)

Also we could reset with 

m_eventFD = Nullopt;

And access its value with either *m_eventFD or m_eventFD.value().

WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207089</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-01 06:11:23 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 282540 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=282540&amp;action=review
&gt; 
&gt; Looking good. One overall suggestion to use Optional rather than -1/0.
&gt; 
&gt; &gt; Source/WebCore/platform/MemoryPressureHandler.h:176
&gt; &gt; +    int m_eventFD { -1 };
&gt; &gt; +    int m_pressureLevelFD { -1 };
&gt; 
&gt; since we are touch these now, can we make it Optional&lt;int&gt; instead of using
&gt; magic -1 or 0?
&gt; 
&gt; It would allow us to if-check
&gt; 
&gt; if (m_eventFD)
&gt; 
&gt; instead of 
&gt; 
&gt; if (m_eventFD != -1)
&gt; 
&gt; Also we could reset with 
&gt; 
&gt; m_eventFD = Nullopt;
&gt; 
&gt; And access its value with either *m_eventFD or m_eventFD.value().
&gt; 
&gt; WDYT?

The thing is that open() returns -1 in case of failure, but we can probably handle that particular case separately and set it to Nullopt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210425</commentid>
    <comment_count>5</comment_count>
      <attachid>283522</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-13 06:05:17 -0700</bug_when>
    <thetext>Created attachment 283522
Updated patch

Use Optional for file descriptors as suggested by Antonio.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210427</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-13 06:08:00 -0700</bug_when>
    <thetext>Attachment 283522 did not pass style-queue:


ERROR: Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp:96:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp:242:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/platform/MemoryPressureHandler.h:146:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/MemoryPressureHandler.h:153:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 4 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210440</commentid>
    <comment_count>7</comment_count>
      <attachid>283522</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2016-07-13 08:11:23 -0700</bug_when>
    <thetext>Comment on attachment 283522
Updated patch

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

&gt; Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp:108
&gt; +    EventFDSource* eventFDSource = reinterpret_cast&lt;EventFDSource*&gt;(m_source.get());

that reinterpret_cast was a bit tricky to understand, but Zan cleared it up (line 101 allocates m_source with &quot;sizeof(EventFDSource)&quot;.

&gt; Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp:145
&gt; +        LOG(MemoryPressure, &quot;Invalidate eventfd.&quot;);

s/Invalidate/Invalid/g

&gt; Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp:230
&gt; +    m_eventFDPoller = std::make_unique&lt;EventFDPoller&gt;(m_eventFD.value(), [this] {

So my understand is that m_eventFDPoller is an alternative memory pressure source that works independent from the existing &apos;cgroup&apos; solution, right?

However, it gets initialized after the cgroup initialization stuff (lines 209 and 215). So, if cgroup fails to initialize - which happens in most cases - then ::install bails out earlier (lines 218 and 225) and line 230 is not executed.

Should line 230 be our first option, and cgroup the second?

&gt; Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp:234
&gt; +        // FIXME: Current memcg does not provide any way for users to know how serious the memory pressure is.
&gt; +        // So we assume all notifications from memcg are critical for now. If memcg had better inferfaces
&gt; +        // to get a detailed memory pressure level in the future, we should update here accordingly.
&gt; +        bool critical = true;

I believe a similar comment could be in MemoryPressureHandler::EventFDPoller::readAndNotify(), before we call m_nofityHandler(); Maybe a reduced version of it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210444</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-13 08:30:47 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 283522 [details]
&gt; Updated patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=283522&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp:108
&gt; &gt; +    EventFDSource* eventFDSource = reinterpret_cast&lt;EventFDSource*&gt;(m_source.get());
&gt; 
&gt; that reinterpret_cast was a bit tricky to understand, but Zan cleared it up
&gt; (line 101 allocates m_source with &quot;sizeof(EventFDSource)&quot;.

Yes, it&apos;s the way GSource works, since it&apos;s not a GObject, we can&apos;t created a derived GSource, so the &quot;constructor&quot; takes a struct size, so it can allocate a larger struct for derived GSources.

&gt; &gt; Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp:145
&gt; &gt; +        LOG(MemoryPressure, &quot;Invalidate eventfd.&quot;);
&gt; 
&gt; s/Invalidate/Invalid/g

I think I copy pasted this, the intention was probably Invalidated.

&gt; &gt; Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp:230
&gt; &gt; +    m_eventFDPoller = std::make_unique&lt;EventFDPoller&gt;(m_eventFD.value(), [this] {
&gt; 
&gt; So my understand is that m_eventFDPoller is an alternative memory pressure
&gt; source that works independent from the existing &apos;cgroup&apos; solution, right?

No, cgroups work with an evenfd. You create an eventfd and pass the file descriptor to the cgroup event control, by writing a line to /sys/fs/cgroup/memory/cgroup.event_control. The kernel uses the passed fd to notify about critical memory situations. In bug #155255 I also use an eventfd because it&apos;s light an efficient and we can reuse most of the cgroups code.

&gt; However, it gets initialized after the cgroup initialization stuff (lines
&gt; 209 and 215). So, if cgroup fails to initialize - which happens in most
&gt; cases - then ::install bails out earlier (lines 218 and 225) and line 230 is
&gt; not executed.
&gt; 
&gt; Should line 230 be our first option, and cgroup the second?
&gt; 
&gt; &gt; Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp:234
&gt; &gt; +        // FIXME: Current memcg does not provide any way for users to know how serious the memory pressure is.
&gt; &gt; +        // So we assume all notifications from memcg are critical for now. If memcg had better inferfaces
&gt; &gt; +        // to get a detailed memory pressure level in the future, we should update here accordingly.
&gt; &gt; +        bool critical = true;
&gt; 
&gt; I believe a similar comment could be in
&gt; MemoryPressureHandler::EventFDPoller::readAndNotify(), before we call
&gt; m_nofityHandler(); Maybe a reduced version of it?

Actually we can have different notifications for memory pressure from cgroups, but we would need two eventfds, and i&apos;m not sure it&apos;s really worth it. For now this patch doesn&apos;t try to change any behavior, just keep what we currently do, but with a GSource in case of using GLib because it&apos;s more efficient than using a thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210449</commentid>
    <comment_count>9</comment_count>
      <attachid>283522</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2016-07-13 08:43:07 -0700</bug_when>
    <thetext>Comment on attachment 283522
Updated patch

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

r=me.

I think I can&apos;t make use of it yet out of the box on my Linux box, because applications (including webkit based browsers) can not read &apos;/sys/fs/cgroup/memory/memory.pressure_level&apos;.

$ ls -ls /sys/fs/cgroup/memory/
(..)
0 --w--w--w-. 1 root root 0 Jul  5 11:37 cgroup.event_control
(..)
0 ----------. 1 root root 0 Jul  5 11:37 memory.pressure_level
(..)

I have to manually change the permissions.

&gt;&gt;&gt; Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp:230
&gt;&gt;&gt; +    m_eventFDPoller = std::make_unique&lt;EventFDPoller&gt;(m_eventFD.value(), [this] {
&gt;&gt; 
&gt;&gt; So my understand is that m_eventFDPoller is an alternative memory pressure source that works independent from the existing &apos;cgroup&apos; solution, right?
&gt;&gt; 
&gt;&gt; However, it gets initialized after the cgroup initialization stuff (lines 209 and 215). So, if cgroup fails to initialize - which happens in most cases - then ::install bails out earlier (lines 218 and 225) and line 230 is not executed.
&gt;&gt; 
&gt;&gt; Should line 230 be our first option, and cgroup the second?
&gt; 
&gt; No, cgroups work with an evenfd. You create an eventfd and pass the file descriptor to the cgroup event control, by writing a line to /sys/fs/cgroup/memory/cgroup.event_control. The kernel uses the passed fd to notify about critical memory situations. In bug #155255 I also use an eventfd because it&apos;s light an efficient and we can reuse most of the cgroups code.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210891</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-13 23:37:21 -0700</bug_when>
    <thetext>Committed r203216: &lt;http://trac.webkit.org/changeset/203216&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210981</commentid>
    <comment_count>11</comment_count>
      <attachid>283522</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-14 07:47:06 -0700</bug_when>
    <thetext>Comment on attachment 283522
Updated patch

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

&gt; Source/WebCore/ChangeLog:16
&gt; +        (WebCore::MemoryPressureHandler::EventFDPoller::EventFDPoller): Helper class do the eventFD polling.

This change isn&apos;t right it seems. Crash trace:

STDERR: 1   0x7fa2ba41736d /home/phil/WebKit/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(WTFCrash+0x1d) [0x7fa2ba41736d]
STDERR: 2   0x7fa2bfa0db05 /home/phil/WebKit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::Optional&lt;int&gt;::value()+0x45) [0x7fa2bfa0db05]
STDERR: 3   0x7fa2c168a49a /home/phil/WebKit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::MemoryPressureHandler::logErrorAndCloseFDs(char const*)+0xaa) [0x7fa2c168a49a]
STDERR: 4   0x7fa2c1688dec /home/phil/WebKit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::MemoryPressureHandler::install()+0xcc) [0x7fa2c1688dec]
STDERR: 5   0x7fa2bf964ba1 /home/phil/WebKit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebKit::NetworkProcess::initializeNetworkProcess(WebKit::NetworkProcessCreationParameters const&amp;)+0xc1) [0x7fa2bf964ba1]
STDERR: 6   0x7fa2bfb62576 /home/phil/WebKit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(void IPC::callMemberFunctionImpl&lt;WebKit::NetworkProcess, void (WebKit::NetworkProcess::*)(WebKit::NetworkProcessCreationParameters const&amp;), std::tuple&lt;WebKit::NetworkProcessCreationParameters&gt;, 0ul&gt;(WebKit::NetworkProcess*, void (WebKit::NetworkProcess::*)(WebKit::NetworkProcessCreationParameters const&amp;), std::tuple&lt;WebKit::NetworkProcessCreationParameters&gt;&amp;&amp;, std::integer_sequence&lt;unsigned long, 0ul&gt;)+0x96) [0x7fa2bfb62576]
STDERR: 7   0x7fa2bfb622ac /home/phil/WebKit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(void IPC::callMemberFunction&lt;WebKit::NetworkProcess, void (WebKit::NetworkProcess::*)(WebKit::NetworkProcessCreationParameters const&amp;), std::tuple&lt;WebKit::NetworkProcessCreationParameters&gt;, std::integer_sequence&lt;unsigned long, 0ul&gt; &gt;(std::tuple&lt;WebKit::NetworkProcessCreationParameters&gt;&amp;&amp;, WebKit::NetworkProcess*, void (WebKit::NetworkProcess::*)(WebKit::NetworkProcessCreationParameters const&amp;))+0x6c) [0x7fa2bfb622ac]
STDERR: 8   0x7fa2bfb60b9a /home/phil/WebKit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(void IPC::handleMessage&lt;Messages::NetworkProcess::InitializeNetworkProcess, WebKit::NetworkProcess, void (WebKit::NetworkProcess::*)(WebKit::NetworkProcessCreationParameters const&amp;)&gt;(IPC::MessageDecoder&amp;, WebKit::NetworkProcess*, void (WebKit::NetworkProcess::*)(WebKit::NetworkProcessCreationParameters const&amp;))+0x14a) [0x7fa2bfb60b9a]
STDERR: 9   0x7fa2bfb5fde5 /home/phil/WebKit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebKit::NetworkProcess::didReceiveNetworkProcessMessage(IPC::Connection&amp;, IPC::MessageDecoder&amp;)+0x85) [0x7fa2bfb5fde5]
STDERR: 10  0x7fa2bf96486b /home/phil/WebKit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebKit::NetworkProcess::didReceiveMessage(IPC::Connection&amp;, IPC::MessageDecoder&amp;)+0xab) [0x7fa2bf96486b]
STDERR: 11  0x7fa2bf457243 /home/phil/WebKit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(IPC::Connection::dispatchMessage(IPC::MessageDecoder&amp;)+0x33) [0x7fa2bf457243]
STDERR: 12  0x7fa2bf451f86 /home/phil/WebKit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(IPC::Connection::dispatchMessage(std::unique_ptr&lt;IPC::MessageDecoder, std::default_delete&lt;IPC::MessageDecoder&gt; &gt;)+0x166) [0x7fa2bf451f86]
STDERR: 13  0x7fa2bf45736b /home/phil/WebKit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(IPC::Connection::dispatchOneMessage()+0x11b) [0x7fa2bf45736b]
STDERR: 14  0x7fa2bf45cc5d /home/phil/WebKit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(+0x43cec5d) [0x7fa2bf45cc5d]
STDERR: 15  0x7fa2bf45cc39 /home/phil/WebKit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(+0x43cec39) [0x7fa2bf45cc39]
STDERR: 16  0x7fa2bf41d770 /home/phil/WebKit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::Function&lt;void ()&gt;::operator()() const+0x40) [0x7fa2bf41d770]
STDERR: 17  0x7fa2ba4380cd /home/phil/WebKit/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(WTF::RunLoop::performWork()+0x11d) [0x7fa2ba4380cd]
STDERR: 18  0x7fa2ba488a9c /home/phil/WebKit/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x21cca9c) [0x7fa2ba488a9c]
STDERR: 19  0x7fa2ba488a78 /home/phil/WebKit/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x21cca78) [0x7fa2ba488a78]
STDERR: 20  0x7fa2ba488a51 /home/phil/WebKit/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x21cca51) [0x7fa2ba488a51]
STDERR: 21  0x7fa2ba4889f8 /home/phil/WebKit/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x21cc9f8) [0x7fa2ba4889f8]
STDERR: 22  0x7fa2b3601601 /home/phil/WebKit/WebKitBuild/DependenciesGTK/Root/lib/libglib-2.0.so.0(+0x53601) [0x7fa2b3601601]
STDERR: 23  0x7fa2b3602438 /home/phil/WebKit/WebKitBuild/DependenciesGTK/Root/lib/libglib-2.0.so.0(g_main_context_dispatch+0x33) [0x7fa2b3602438]
STDERR: 24  0x7fa2b360261c /home/phil/WebKit/WebKitBuild/DependenciesGTK/Root/lib/libglib-2.0.so.0(+0x5461c) [0x7fa2b360261c]
STDERR: 25  0x7fa2b3602a42 /home/phil/WebKit/WebKitBuild/DependenciesGTK/Root/lib/libglib-2.0.so.0(g_main_loop_run+0x1d5) [0x7fa2b3602a42]
STDERR: 26  0x7fa2ba4881ef /home/phil/WebKit/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(WTF::RunLoop::run()+0xaf) [0x7fa2ba4881ef]
STDERR: 27  0x7fa2bfa065cd /home/phil/WebKit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(int WebKit::ChildProcessMain&lt;WebKit::NetworkProcess, WebKit::NetworkProcessMain&gt;(int, char**)+0xfd) [0x7fa2bfa065cd]
STDERR: 28  0x7fa2bfa064bb /home/phil/WebKit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(NetworkProcessMainUnix+0x1b) [0x7fa2bfa064bb]
STDERR: 29  0x400d16 /home/phil/WebKit/WebKitBuild/Debug/bin/WebKitNetworkProcess(main+0x46) [0x400d16]
STDERR: 30  0x7fa2ae6055f0 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7fa2ae6055f0]
STDERR: 31  0x400bf9 /home/phil/WebKit/WebKitBuild/Debug/bin/WebKitNetworkProcess(_start+0x29) [0x400bf9]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210982</commentid>
    <comment_count>12</comment_count>
      <attachid>283522</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-14 07:47:38 -0700</bug_when>
    <thetext>Comment on attachment 283522
Updated patch

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        (WebCore::MemoryPressureHandler::logErrorAndCloseFDs): Check if file descriptors are -1 not 0.

I mean this change ^^ :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210983</commentid>
    <comment_count>13</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-14 07:49:27 -0700</bug_when>
    <thetext>STDERR: Failed to open memory.pressure_level, error : No such file or directory
STDERR: ASSERTION FAILED: m_isEngaged
STDERR: ../../Source/WTF/wtf/Optional.h(156) : T &amp;WTF::Optional&lt;int&gt;::value() [T = int]
STDERR:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210984</commentid>
    <comment_count>14</comment_count>
      <attachid>283522</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2016-07-14 07:53:05 -0700</bug_when>
    <thetext>Comment on attachment 283522
Updated patch

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

&gt; Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp:187
&gt; +    if (!m_eventFD) {
&gt; +        close(m_eventFD.value());

hum, I believe this is the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210987</commentid>
    <comment_count>15</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-14 08:10:21 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Comment on attachment 283522 [details]
&gt; Updated patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=283522&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp:187
&gt; &gt; +    if (!m_eventFD) {
&gt; &gt; +        close(m_eventFD.value());
&gt; 
&gt; hum, I believe this is the problem.

Indeed, I messed it up when converting it to Optional :-( Let me fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210989</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-14 08:12:40 -0700</bug_when>
    <thetext>Reopening to submit a follow up</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210990</commentid>
    <comment_count>17</comment_count>
      <attachid>283642</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-14 08:15:04 -0700</bug_when>
    <thetext>Created attachment 283642
Follow up</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211002</commentid>
    <comment_count>18</comment_count>
      <attachid>283642</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-14 08:49:00 -0700</bug_when>
    <thetext>Comment on attachment 283642
Follow up

Clearing flags on attachment: 283642

Committed r203224: &lt;http://trac.webkit.org/changeset/203224&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211003</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-14 08:49:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282540</attachid>
            <date>2016-07-01 05:33:37 -0700</date>
            <delta_ts>2016-07-13 06:05:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-eventd-polling.diff</filename>
            <type>text/plain</type>
            <size>11831</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwZjQwMDU3Li4yYzViYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTYtMDctMDEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHTGliXSBVc2UgYSBHU291cmNlIGluc3RlYWQgb2YgYSB0aHJlYWQgdG8g
cG9sbCBtZW1vcnkgcHJlc3N1cmUgZXZlbnRGRCBpbiBsaW51eCBpbXBsZW1lbnRhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5MzQ2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGV2ZW50RkQg
ZmlsZSBkZXNjcmlwdG9yIGlzIHBvbGxhYmxlLCBzbyBpdCB3b3VsZCBiZSBtdWNoIGJldHRlciB0
byB1c2UgYSBwb2xsIGluc3RlYWQgb2YgYSBibG9ja2luZyByZWFkIGluCisgICAgICAgIGEgc2Vj
b25kYXJ5IHRocmVhZCBhbmQgdGhlbiBjb21tdW5pY2F0ZSBiYWNrIHRvIHRoZSBtYWluIHRocmVh
ZC4gVGhpcyBpcyB2ZXJ5IGVhc3kgdG8gZG8gd2l0aCBHU291cmNlIGluIEdMaWIsCisgICAgICAg
IHNvIHdlIGNvdWxkIHVzZSB0aGF0IHdoZW4gR0xpYiBpcyBhdmFpbGFibGUgYW5kIGtlZXAgdGhl
IGN1cnJlbnQgaW1wbGVtZW50YXRpb24gYXMgYSBmYWxsYmFjay4KKworICAgICAgICAqIHBsYXRm
b3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjptX2hvbGRP
ZmZUaW1lcik6IFVzZSBhIFJ1bkxvb3AgdGltZXIuCisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbGludXgvTWVtb3J5UHJlc3N1
cmVIYW5kbGVyTGludXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5k
bGVyOjpFdmVudEZEUG9sbGVyOjpFdmVudEZEUG9sbGVyKTogSGVscGVyIGNsYXNzIGRvIHRoZSBl
dmVudEZEIHBvbGxpbmcuCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6
OmxvZ0Vycm9yQW5kQ2xvc2VGRHMpOiBDaGVjayBpZiBmaWxlIGRlc2NyaXB0b3JzIGFyZSAtMSBu
b3QgMC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCk6
IFJldHVybiBlYXJseSBhbHNvIGlmIHRoZSBob2xkIG9mZiB0aW1lciBpcyBhY3RpdmUuIFVzZSBF
dmVudEZEUG9sbGVyCisgICAgICAgIHRvIGRvIHRoZSBwb2xsaW5nLgorICAgICAgICAoV2ViQ29y
ZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp1bmluc3RhbGwpOiBTdG9wIHRoZSBob2xkIG9mZiB0
aW1lciBhbmQgY2xlYXIgdGhlIEV2ZW50RkRQb2xsZXIuCisKIDIwMTYtMDYtMzAgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtpbWFnZS1kZWNv
ZGVyc10gTWFrZSBJbWFnZURlY29kZXI6OnNpemUoKSBsYXppbHkgZGVjb2RlIHRoZSBpbWFnZSBp
ZiBuZWVkZWQgdG8gcmV0dXJuIGEgdmFsaWQgc2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKaW5kZXggZWQwZTg4Zi4uYmQzYWJlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIu
Y3BwCkBAIC02OCwxMCArNjgsNyBAQCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Ok1lbW9yeVByZXNz
dXJlSGFuZGxlcigpCiAgICAgLCBtX3JlbGVhc2VNZW1vcnlCbG9jaygwKQogICAgICwgbV9vYnNl
cnZlcigwKQogI2VsaWYgT1MoTElOVVgpCi0gICAgLCBtX2V2ZW50RkQoMCkKLSAgICAsIG1fcHJl
c3N1cmVMZXZlbEZEKDApCi0gICAgLCBtX3RocmVhZElEKDApCi0gICAgLCBtX2hvbGRPZmZUaW1l
cigqdGhpcywgJk1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aG9sZE9mZlRpbWVyRmlyZWQpCisgICAg
LCBtX2hvbGRPZmZUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZNZW1vcnlQcmVzc3VyZUhh
bmRsZXI6OmhvbGRPZmZUaW1lckZpcmVkKQogI2VuZGlmCiB7CiAgICAgcGxhdGZvcm1Jbml0aWFs
aXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxl
ci5oCmluZGV4IDcwOGJhZTcuLmFlZGY5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCkBAIC0zNyw3ICszNywxMCBAQAogI2luY2x1ZGUg
PHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNlbGlm
IE9TKExJTlVYKQotI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4K
KyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CisjZW5kaWYKICNl
bmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04MSw4ICs4NCw2IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyTWVtb3J5UHJlc3N1cmUoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIHNob3VsZFdhaXRGb3JNZW1vcnlDbGVhck1lc3NhZ2UoKTsKICAgICB2b2lk
IHJlc3BvbmRUb01lbW9yeVByZXNzdXJlSWZOZWVkZWQoKTsKLSNlbGlmIE9TKExJTlVYKQotICAg
IHN0YXRpYyB2b2lkIHdhaXRGb3JNZW1vcnlQcmVzc3VyZUV2ZW50KHZvaWQqKTsKICNlbmRpZgog
CiAgICAgY2xhc3MgUmVsaWVmTG9nZ2VyIHsKQEAgLTEzOCw2ICsxMzksMjYgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHJlc3BvbmRUb01lbW9yeVByZXNzdXJlKENyaXRpY2FsLCBTeW5jaHJvbm91cyA9
IFN5bmNocm9ub3VzOjpObyk7CiAgICAgdm9pZCBwbGF0Zm9ybVJlbGVhc2VNZW1vcnkoQ3JpdGlj
YWwpOwogCisjaWYgT1MoTElOVVgpCisgICAgY2xhc3MgRXZlbnRGRFBvbGxlciB7CisgICAgICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEV2ZW50RkRQb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKKyAgICBwdWJsaWM6CisgICAgICAgIEV2ZW50RkRQb2xsZXIoaW50IGZkLCBzdGQ6OmZ1
bmN0aW9uPHZvaWQgKCk+JiYgbm90aWZ5SGFuZGxlcik7CisgICAgICAgIH5FdmVudEZEUG9sbGVy
KCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICB2b2lkIHJlYWRBbmROb3RpZnkoKSBjb25zdDsK
KworICAgICAgICBpbnQgbV9mZDsKKyAgICAgICAgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBtX25v
dGlmeUhhbmRsZXI7CisjaWYgVVNFKEdMSUIpCisgICAgICAgIEdSZWZQdHI8R1NvdXJjZT4gbV9z
b3VyY2U7CisjZWxzZQorICAgICAgICBUaHJlYWRJZGVudGlmaWVyIG1fdGhyZWFkSUQ7CisjZW5k
aWYKKyAgICB9OworI2VuZGlmCisKICAgICBib29sIG1faW5zdGFsbGVkOwogICAgIHRpbWVfdCBt
X2xhc3RSZXNwb25kVGltZTsKICAgICBMb3dNZW1vcnlIYW5kbGVyIG1fbG93TWVtb3J5SGFuZGxl
cjsKQEAgLTE1MSwxMCArMTcyLDEwIEBAIHByaXZhdGU6CiAgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJS
ZWYgbV9vYnNlcnZlcjsKICAgICBMb2NrIG1fb2JzZXJ2ZXJNdXRleDsKICNlbGlmIE9TKExJTlVY
KQotICAgIGludCBtX2V2ZW50RkQ7Ci0gICAgaW50IG1fcHJlc3N1cmVMZXZlbEZEOwotICAgIFdU
Rjo6VGhyZWFkSWRlbnRpZmllciBtX3RocmVhZElEOwotICAgIFRpbWVyIG1faG9sZE9mZlRpbWVy
OworICAgIGludCBtX2V2ZW50RkQgeyAtMSB9OworICAgIGludCBtX3ByZXNzdXJlTGV2ZWxGRCB7
IC0xIH07CisgICAgc3RkOjp1bmlxdWVfcHRyPEV2ZW50RkRQb2xsZXI+IG1fZXZlbnRGRFBvbGxl
cjsKKyAgICBSdW5Mb29wOjpUaW1lcjxNZW1vcnlQcmVzc3VyZUhhbmRsZXI+IG1faG9sZE9mZlRp
bWVyOwogICAgIHZvaWQgaG9sZE9mZlRpbWVyRmlyZWQoKTsKICAgICB2b2lkIGxvZ0Vycm9yQW5k
Q2xvc2VGRHMoY29uc3QgY2hhciogZXJyb3IpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5j
cHAKaW5kZXggZDBkMTM2YS4uM2VlYzAxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2xpbnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcApAQCAt
MzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogCisjaW5jbHVkZSA8ZXJybm8u
aD4KICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUgPG1hbGxvYy5oPgogI2luY2x1ZGUgPHN5
cy9ldmVudGZkLmg+CkBAIC00MSw2ICs0MiwxMCBAQAogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFk
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKKyNpZiBVU0UoR0xJQikKKyNp
bmNsdWRlIDxnbGliLXVuaXguaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8v
IERpc2FibGUgbWVtb3J5IGV2ZW50IHJlY2VwdGlvbiBmb3IgYSBtaW5pbXVtIG9mIHNfbWluaW11
bUhvbGRPZmZUaW1lCkBAIC01Niw2ICs2MSwxMDIgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHNfY2dy
b3VwTWVtb3J5UHJlc3N1cmVMZXZlbCA9ICIvc3lzL2ZzL2Nncm91cC9tZW1vcnkvbWVtb3J5LnAK
IHN0YXRpYyBjb25zdCBjaGFyKiBzX2Nncm91cEV2ZW50Q29udHJvbCA9ICIvc3lzL2ZzL2Nncm91
cC9tZW1vcnkvY2dyb3VwLmV2ZW50X2NvbnRyb2wiOwogc3RhdGljIGNvbnN0IGNoYXIqIHNfcHJv
Y2Vzc1N0YXR1cyA9ICIvcHJvYy9zZWxmL3N0YXR1cyI7CiAKKyNpZiBVU0UoR0xJQikKK3R5cGVk
ZWYgc3RydWN0IHsKKyAgICBHU291cmNlIHNvdXJjZTsKKyAgICBncG9pbnRlciBmZFRhZzsKKyAg
ICBHSU9Db25kaXRpb24gY29uZGl0aW9uOworfSBFdmVudEZEU291cmNlOworCitzdGF0aWMgY29u
c3QgdW5zaWduZWQgZXZlbnRGRFNvdXJjZUNvbmRpdGlvbiA9IEdfSU9fSU4gfCBHX0lPX0hVUCB8
IEdfSU9fRVJSIHwgR19JT19OVkFMOworCitzdGF0aWMgR1NvdXJjZUZ1bmNzIGV2ZW50RkRTb3Vy
Y2VGdW5jdGlvbnMgPSB7CisgICAgbnVsbHB0ciwgLy8gcHJlcGFyZQorICAgIG51bGxwdHIsIC8v
IGNoZWNrCisgICAgLy8gZGlzcGF0Y2gKKyAgICBbXShHU291cmNlKiBzb3VyY2UsIEdTb3VyY2VG
dW5jIGNhbGxiYWNrLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gZ2Jvb2xlYW4KKyAgICB7CisgICAg
ICAgIEV2ZW50RkRTb3VyY2UqIGV2ZW50RkRTb3VyY2UgPSByZWludGVycHJldF9jYXN0PEV2ZW50
RkRTb3VyY2UqPihzb3VyY2UpOworICAgICAgICB1bnNpZ25lZCBldmVudHMgPSBnX3NvdXJjZV9x
dWVyeV91bml4X2ZkKHNvdXJjZSwgZXZlbnRGRFNvdXJjZS0+ZmRUYWcpICYgZXZlbnRGRFNvdXJj
ZUNvbmRpdGlvbjsKKyAgICAgICAgaWYgKGV2ZW50cyAmIEdfSU9fSFVQIHx8IGV2ZW50cyAmIEdf
SU9fRVJSIHx8IGV2ZW50cyAmIEdfSU9fTlZBTCkKKyAgICAgICAgICAgIHJldHVybiBHX1NPVVJD
RV9SRU1PVkU7CisKKyAgICAgICAgZ2Jvb2xlYW4gcmV0dXJuVmFsdWUgPSBHX1NPVVJDRV9DT05U
SU5VRTsKKyAgICAgICAgaWYgKGV2ZW50cyAmIEdfSU9fSU4pCisgICAgICAgICAgICByZXR1cm5W
YWx1ZSA9IGNhbGxiYWNrKHVzZXJEYXRhKTsKKyAgICAgICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3Rp
bWUoc291cmNlLCAtMSk7CisgICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTsKKyAgICB9LAorICAg
IG51bGxwdHIsIC8vIGZpbmFsaXplCisgICAgbnVsbHB0ciwgLy8gY2xvc3VyZV9jYWxsYmFjawor
ICAgIG51bGxwdHIsIC8vIGNsb3N1cmVfbWFyc2hhbGwKK307CisjZW5kaWYKKworTWVtb3J5UHJl
c3N1cmVIYW5kbGVyOjpFdmVudEZEUG9sbGVyOjpFdmVudEZEUG9sbGVyKGludCBmZCwgc3RkOjpm
dW5jdGlvbjx2b2lkICgpPiYmIG5vdGlmeUhhbmRsZXIpCisgICAgOiBtX2ZkKGZkKQorICAgICwg
bV9ub3RpZnlIYW5kbGVyKFdURk1vdmUobm90aWZ5SGFuZGxlcikpCit7CisjaWYgVVNFKEdMSUIp
CisgICAgbV9zb3VyY2UgPSBhZG9wdEdSZWYoZ19zb3VyY2VfbmV3KCZldmVudEZEU291cmNlRnVu
Y3Rpb25zLCBzaXplb2YoRXZlbnRGRFNvdXJjZSkpKTsKKyAgICBnX3NvdXJjZV9zZXRfbmFtZSht
X3NvdXJjZS5nZXQoKSwgIldlYkNvcmU6IE1lbW9yeVByZXNzdXJlSGFuZGxlciIpOworICAgIGlm
ICghZ191bml4X3NldF9mZF9ub25ibG9ja2luZyhtX2ZkLCBUUlVFLCBudWxscHRyKSkgeworICAg
ICAgICBMT0coTWVtb3J5UHJlc3N1cmUsICJGYWlsZWQgdG8gc2V0IGV2ZW50ZmQgbm9uYmxvY2tp
bmciKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEV2ZW50RkRTb3VyY2UqIGV2ZW50
RkRTb3VyY2UgPSByZWludGVycHJldF9jYXN0PEV2ZW50RkRTb3VyY2UqPihtX3NvdXJjZS5nZXQo
KSk7CisgICAgZXZlbnRGRFNvdXJjZS0+ZmRUYWcgPSBnX3NvdXJjZV9hZGRfdW5peF9mZChtX3Nv
dXJjZS5nZXQoKSwgbV9mZCwgc3RhdGljX2Nhc3Q8R0lPQ29uZGl0aW9uPihldmVudEZEU291cmNl
Q29uZGl0aW9uKSk7CisgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fc291cmNlLmdldCgpLCBb
XShncG9pbnRlciB1c2VyRGF0YSkgLT4gZ2Jvb2xlYW4geworICAgICAgICBzdGF0aWNfY2FzdDxF
dmVudEZEUG9sbGVyKj4odXNlckRhdGEpLT5yZWFkQW5kTm90aWZ5KCk7CisgICAgICAgIHJldHVy
biBHX1NPVVJDRV9SRU1PVkU7CisgICAgfSwgdGhpcywgbnVsbHB0cik7CisgICAgZ19zb3VyY2Vf
YXR0YWNoKG1fc291cmNlLmdldCgpLCBudWxscHRyKTsKKyNlbHNlCisgICAgbV90aHJlYWRJRCA9
IGNyZWF0ZVRocmVhZCgiV2ViQ29yZTogTWVtb3J5UHJlc3N1cmVIYW5kbGVyIiwgW3RoaXNdIHsg
cmVhZEFuZE5vdGlmeSgpOyB9CisjZW5kaWYKK30KKworTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpF
dmVudEZEUG9sbGVyOjp+RXZlbnRGRFBvbGxlcigpCit7CisgICAgbV9mZCA9IC0xOworI2lmIFVT
RShHTElCKQorICAgIGdfc291cmNlX2Rlc3Ryb3kobV9zb3VyY2UuZ2V0KCkpOworI2Vsc2UKKyAg
ICBkZXRhY2hUaHJlYWQobV90aHJlYWRJRCk7CisjZW5kaWYKK30KKworc3RhdGljIGlubGluZSBi
b29sIGlzRmF0YWxSZWFkRXJyb3IoaW50IGVycm9yKQoreworI2lmIFVTRShHTElCKQorICAgIC8v
IFdlIGRvbid0IHJlYWxseSBuZWVkIHRvIHJlYWQgdGhlIGJ1ZmZlciBjb250ZW50cywgaWYgdGhl
IHBvbGxlcgorICAgIC8vIG5vdGlmaWVkIHVzLCBidXQgcmVhZCB3b3VsZCBibG9jayBvciBpcyBu
byBsb25nZXIgYXZhaWxhYmxlLCBpcworICAgIC8vIGVub3VnaCB0byB0cmlnZ2VyIHRoZSBtZW1v
cnkgcHJlc3N1cmUgaGFuZGxlLgorICAgIHJldHVybiBlcnJvciAhPSBFQUdBSU4gJiYgZXJyb3Ig
IT0gRVdPVUxEQkxPQ0s7CisjZWxzZQorICAgIHJldHVybiB0cnVlOworI2VuZGlmCit9CisKK3Zv
aWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpFdmVudEZEUG9sbGVyOjpyZWFkQW5kTm90aWZ5KCkg
Y29uc3QKK3sKKyAgICBpZiAobV9mZCA9PSAtMSkgeworICAgICAgICBMT0coTWVtb3J5UHJlc3N1
cmUsICJJbnZhbGlkYXRlIGV2ZW50ZmQuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICB1aW50NjRfdCBidWZmZXI7CisgICAgaWYgKHJlYWQobV9mZCwgJmJ1ZmZlciwgc2l6ZW9mKGJ1
ZmZlcikpID09IC0xKSB7CisgICAgICAgIGlmIChpc0ZhdGFsUmVhZEVycm9yKGVycm5vKSkgewor
ICAgICAgICAgICAgTE9HKE1lbW9yeVByZXNzdXJlLCAiRmFpbGVkIHRvIHJlYWQgZXZlbnRmZC4i
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1fbm90aWZ5
SGFuZGxlcigpOworfQorCiBzdGF0aWMgaW5saW5lIFN0cmluZyBuZXh0VG9rZW4oRklMRSogZmls
ZSkKIHsKICAgICBpZiAoIWZpbGUpCkBAIC03Nyw1MiArMTc4LDI0IEBAIHN0YXRpYyBpbmxpbmUg
U3RyaW5nIG5leHRUb2tlbihGSUxFKiBmaWxlKQogICAgIHJldHVybiBTdHJpbmcoYnVmZmVyKTsK
IH0KIAotdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OndhaXRGb3JNZW1vcnlQcmVzc3VyZUV2
ZW50KHZvaWQqKQotewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgIGludCBldmVu
dEZEID0gTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5tX2V2ZW50RkQ7Ci0gICAg
aWYgKCFldmVudEZEKSB7Ci0gICAgICAgIExPRyhNZW1vcnlQcmVzc3VyZSwgIkludmFsaWRhdGUg
ZXZlbnRmZC4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHVpbnQ2NF90IGJ1ZmZl
cjsKLSAgICBpZiAocmVhZChldmVudEZELCAmYnVmZmVyLCBzaXplb2YoYnVmZmVyKSkgPD0gMCkg
ewotICAgICAgICBMT0coTWVtb3J5UHJlc3N1cmUsICJGYWlsZWQgdG8gcmVhZCBldmVudGZkLiIp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gRklYTUU6IEN1cnJlbnQgbWVtY2cg
ZG9lcyBub3QgcHJvdmlkZSBhbnkgd2F5IGZvciB1c2VycyB0byBrbm93IGhvdyBzZXJpb3VzIHRo
ZSBtZW1vcnkgcHJlc3N1cmUgaXMuCi0gICAgLy8gU28gd2UgYXNzdW1lIGFsbCBub3RpZmljYXRp
b25zIGZyb20gbWVtY2cgYXJlIGNyaXRpY2FsIGZvciBub3cuIElmIG1lbWNnIGhhZCBiZXR0ZXIg
aW5mZXJmYWNlcwotICAgIC8vIHRvIGdldCBhIGRldGFpbGVkIG1lbW9yeSBwcmVzc3VyZSBsZXZl
bCBpbiB0aGUgZnV0dXJlLCB3ZSBzaG91bGQgdXBkYXRlIGhlcmUgYWNjb3JkaW5nbHkuCi0gICAg
Ym9vbCBjcml0aWNhbCA9IHRydWU7Ci0gICAgaWYgKFJlbGllZkxvZ2dlcjo6bG9nZ2luZ0VuYWJs
ZWQoKSkKLSAgICAgICAgTE9HKE1lbW9yeVByZXNzdXJlLCAiR290IG1lbW9yeSBwcmVzc3VyZSBu
b3RpZmljYXRpb24gKCVzKSIsIGNyaXRpY2FsID8gImNyaXRpY2FsIiA6ICJub24tY3JpdGljYWwi
KTsKLQotICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuc2V0VW5kZXJNZW1v
cnlQcmVzc3VyZShjcml0aWNhbCk7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbY3JpdGljYWxdIHsK
LSAgICAgICAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5yZXNwb25kVG9NZW1v
cnlQcmVzc3VyZShjcml0aWNhbCA/IENyaXRpY2FsOjpZZXMgOiBDcml0aWNhbDo6Tm8pOwotICAg
IH0pOwotfQotCiBpbmxpbmUgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OmxvZ0Vycm9yQW5k
Q2xvc2VGRHMoY29uc3QgY2hhciogbG9nKQogewogICAgIGlmIChsb2cpCiAgICAgICAgIExPRyhN
ZW1vcnlQcmVzc3VyZSwgIiVzLCBlcnJvciA6ICVtIiwgbG9nKTsKIAotICAgIGlmIChtX2V2ZW50
RkQpIHsKKyAgICBpZiAobV9ldmVudEZEICE9IC0xKSB7CiAgICAgICAgIGNsb3NlKG1fZXZlbnRG
RCk7Ci0gICAgICAgIG1fZXZlbnRGRCA9IDA7CisgICAgICAgIG1fZXZlbnRGRCA9IC0xOwogICAg
IH0KLSAgICBpZiAobV9wcmVzc3VyZUxldmVsRkQpIHsKKyAgICBpZiAobV9wcmVzc3VyZUxldmVs
RkQgIT0gLTEpIHsKICAgICAgICAgY2xvc2UobV9wcmVzc3VyZUxldmVsRkQpOwotICAgICAgICBt
X3ByZXNzdXJlTGV2ZWxGRCA9IDA7CisgICAgICAgIG1fcHJlc3N1cmVMZXZlbEZEID0gLTE7CiAg
ICAgfQogfQogCiB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCgpCiB7Ci0gICAg
aWYgKG1faW5zdGFsbGVkKQorICAgIGlmIChtX2luc3RhbGxlZCB8fCBtX2hvbGRPZmZUaW1lci5p
c0FjdGl2ZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2V2ZW50RkQgPSBldmVudGZkKDAs
IEVGRF9DTE9FWEVDKTsKQEAgLTE1MiwxMSArMjI1LDIwIEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVI
YW5kbGVyOjppbnN0YWxsKCkKICAgICB9CiAgICAgY2xvc2UoZmQpOwogCi0gICAgbV90aHJlYWRJ
RCA9IGNyZWF0ZVRocmVhZCh3YWl0Rm9yTWVtb3J5UHJlc3N1cmVFdmVudCwgdGhpcywgIldlYkNv
cmU6IE1lbW9yeVByZXNzdXJlSGFuZGxlciIpOwotICAgIGlmICghbV90aHJlYWRJRCkgewotICAg
ICAgICBsb2dFcnJvckFuZENsb3NlRkRzKCJGYWlsZWQgdG8gY3JlYXRlIGEgdGhyZWFkIGZvciBN
ZW1vcnlQcmVzc3VyZUhhbmRsZXIiKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBtX2V2
ZW50RkRQb2xsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEV2ZW50RkRQb2xsZXI+KG1fZXZlbnRGRCwg
W3RoaXNdIHsKKyAgICAgICAgLy8gRklYTUU6IEN1cnJlbnQgbWVtY2cgZG9lcyBub3QgcHJvdmlk
ZSBhbnkgd2F5IGZvciB1c2VycyB0byBrbm93IGhvdyBzZXJpb3VzIHRoZSBtZW1vcnkgcHJlc3N1
cmUgaXMuCisgICAgICAgIC8vIFNvIHdlIGFzc3VtZSBhbGwgbm90aWZpY2F0aW9ucyBmcm9tIG1l
bWNnIGFyZSBjcml0aWNhbCBmb3Igbm93LiBJZiBtZW1jZyBoYWQgYmV0dGVyIGluZmVyZmFjZXMK
KyAgICAgICAgLy8gdG8gZ2V0IGEgZGV0YWlsZWQgbWVtb3J5IHByZXNzdXJlIGxldmVsIGluIHRo
ZSBmdXR1cmUsIHdlIHNob3VsZCB1cGRhdGUgaGVyZSBhY2NvcmRpbmdseS4KKyAgICAgICAgYm9v
bCBjcml0aWNhbCA9IHRydWU7CisgICAgICAgIGlmIChSZWxpZWZMb2dnZXI6OmxvZ2dpbmdFbmFi
bGVkKCkpCisgICAgICAgICAgICBMT0coTWVtb3J5UHJlc3N1cmUsICJHb3QgbWVtb3J5IHByZXNz
dXJlIG5vdGlmaWNhdGlvbiAoJXMpIiwgY3JpdGljYWwgPyAiY3JpdGljYWwiIDogIm5vbi1jcml0
aWNhbCIpOworCisgICAgICAgIHNldFVuZGVyTWVtb3J5UHJlc3N1cmUoY3JpdGljYWwpOworICAg
ICAgICBpZiAoaXNNYWluVGhyZWFkKCkpCisgICAgICAgICAgICByZXNwb25kVG9NZW1vcnlQcmVz
c3VyZShjcml0aWNhbCA/IENyaXRpY2FsOjpZZXMgOiBDcml0aWNhbDo6Tm8pOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIGNyaXRpY2Fs
XSB7IHJlc3BvbmRUb01lbW9yeVByZXNzdXJlKGNyaXRpY2FsID8gQ3JpdGljYWw6OlllcyA6IENy
aXRpY2FsOjpObyk7IH0pOworICAgIH0pOwogCiAgICAgaWYgKFJlbGllZkxvZ2dlcjo6bG9nZ2lu
Z0VuYWJsZWQoKSAmJiBpc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSkKICAgICAgICAgTE9HKE1lbW9y
eVByZXNzdXJlLCAiU3lzdGVtIGlzIG5vIGxvbmdlciB1bmRlciBtZW1vcnkgcHJlc3N1cmUuIik7
CkBAIC0xNzAsMTAgKzI1Miw4IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp1bmluc3Rh
bGwoKQogICAgIGlmICghbV9pbnN0YWxsZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICht
X3RocmVhZElEKSB7Ci0gICAgICAgIGRldGFjaFRocmVhZChtX3RocmVhZElEKTsKLSAgICAgICAg
bV90aHJlYWRJRCA9IDA7Ci0gICAgfQorICAgIG1faG9sZE9mZlRpbWVyLnN0b3AoKTsKKyAgICBt
X2V2ZW50RkRQb2xsZXIgPSBudWxscHRyOwogCiAgICAgbG9nRXJyb3JBbmRDbG9zZUZEcyhudWxs
cHRyKTsKICAgICBtX2luc3RhbGxlZCA9IGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283522</attachid>
            <date>2016-07-13 06:05:17 -0700</date>
            <delta_ts>2016-07-14 08:15:04 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wcore-memory-pressure-glib.diff</filename>
            <type>text/plain</type>
            <size>13039</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3YThiNjE5Li40MGQ2NDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTYtMDctMDEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHTGliXSBVc2UgYSBHU291cmNlIGluc3RlYWQgb2YgYSB0aHJlYWQgdG8g
cG9sbCBtZW1vcnkgcHJlc3N1cmUgZXZlbnRGRCBpbiBsaW51eCBpbXBsZW1lbnRhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5MzQ2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGV2ZW50RkQg
ZmlsZSBkZXNjcmlwdG9yIGlzIHBvbGxhYmxlLCBzbyBpdCB3b3VsZCBiZSBtdWNoIGJldHRlciB0
byB1c2UgYSBwb2xsIGluc3RlYWQgb2YgYSBibG9ja2luZyByZWFkIGluCisgICAgICAgIGEgc2Vj
b25kYXJ5IHRocmVhZCBhbmQgdGhlbiBjb21tdW5pY2F0ZSBiYWNrIHRvIHRoZSBtYWluIHRocmVh
ZC4gVGhpcyBpcyB2ZXJ5IGVhc3kgdG8gZG8gd2l0aCBHU291cmNlIGluIEdMaWIsCisgICAgICAg
IHNvIHdlIGNvdWxkIHVzZSB0aGF0IHdoZW4gR0xpYiBpcyBhdmFpbGFibGUgYW5kIGtlZXAgdGhl
IGN1cnJlbnQgaW1wbGVtZW50YXRpb24gYXMgYSBmYWxsYmFjay4KKworICAgICAgICAqIHBsYXRm
b3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjptX2hvbGRP
ZmZUaW1lcik6IFVzZSBhIFJ1bkxvb3AgdGltZXIuCisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbGludXgvTWVtb3J5UHJlc3N1
cmVIYW5kbGVyTGludXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5k
bGVyOjpFdmVudEZEUG9sbGVyOjpFdmVudEZEUG9sbGVyKTogSGVscGVyIGNsYXNzIGRvIHRoZSBl
dmVudEZEIHBvbGxpbmcuCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6
OmxvZ0Vycm9yQW5kQ2xvc2VGRHMpOiBDaGVjayBpZiBmaWxlIGRlc2NyaXB0b3JzIGFyZSAtMSBu
b3QgMC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCk6
IFJldHVybiBlYXJseSBhbHNvIGlmIHRoZSBob2xkIG9mZiB0aW1lciBpcyBhY3RpdmUuIFVzZSBF
dmVudEZEUG9sbGVyCisgICAgICAgIHRvIGRvIHRoZSBwb2xsaW5nLgorICAgICAgICAoV2ViQ29y
ZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp1bmluc3RhbGwpOiBTdG9wIHRoZSBob2xkIG9mZiB0
aW1lciBhbmQgY2xlYXIgdGhlIEV2ZW50RkRQb2xsZXIuCisKIDIwMTYtMDctMTMgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQu
IEZpeCBHT2JqZWN0IERPTSBiaW5kaW5ncyBBUEkgYnJlYWtzIGFmdGVyIHIyMDMwNDctCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcAppbmRl
eCBlZDBlODhmLi5iZDNhYmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01l
bW9yeVByZXNzdXJlSGFuZGxlci5jcHAKQEAgLTY4LDEwICs2OCw3IEBAIE1lbW9yeVByZXNzdXJl
SGFuZGxlcjo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyKCkKICAgICAsIG1fcmVsZWFzZU1lbW9yeUJs
b2NrKDApCiAgICAgLCBtX29ic2VydmVyKDApCiAjZWxpZiBPUyhMSU5VWCkKLSAgICAsIG1fZXZl
bnRGRCgwKQotICAgICwgbV9wcmVzc3VyZUxldmVsRkQoMCkKLSAgICAsIG1fdGhyZWFkSUQoMCkK
LSAgICAsIG1faG9sZE9mZlRpbWVyKCp0aGlzLCAmTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpob2xk
T2ZmVGltZXJGaXJlZCkKKyAgICAsIG1faG9sZE9mZlRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhp
cywgJk1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aG9sZE9mZlRpbWVyRmlyZWQpCiAjZW5kaWYKIHsK
ICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgKaW5kZXggMWVkODUwYy4uMDFmZDgxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgKQEAgLTM3LDcg
KzM3LDEwIEBACiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5n
UHJpbWl0aXZlcy5oPgogI2VsaWYgT1MoTElOVVgpCi0jaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgorI2lmIFVTRShHTElCKQorI2luY2x1ZGUgPHd0Zi9nbGliL0dS
ZWZQdHIuaD4KKyNlbmRpZgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTgxLDgg
Kzg0LDYgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJNZW1vcnlQcmVz
c3VyZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkV2FpdEZvck1lbW9yeUNsZWFy
TWVzc2FnZSgpOwogICAgIHZvaWQgcmVzcG9uZFRvTWVtb3J5UHJlc3N1cmVJZk5lZWRlZCgpOwot
I2VsaWYgT1MoTElOVVgpCi0gICAgc3RhdGljIHZvaWQgd2FpdEZvck1lbW9yeVByZXNzdXJlRXZl
bnQodm9pZCopOwogI2VuZGlmCiAKICAgICBjbGFzcyBSZWxpZWZMb2dnZXIgewpAQCAtMTM4LDYg
KzEzOSwyNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3Jp
dGljYWwsIFN5bmNocm9ub3VzID0gU3luY2hyb25vdXM6Ok5vKTsKICAgICB2b2lkIHBsYXRmb3Jt
UmVsZWFzZU1lbW9yeShDcml0aWNhbCk7CiAKKyNpZiBPUyhMSU5VWCkKKyAgICBjbGFzcyBFdmVu
dEZEUG9sbGVyIHsKKyAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRXZlbnRGRFBvbGxlcik7
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIHB1YmxpYzoKKyAgICAgICAgRXZlbnRGRFBv
bGxlcihpbnQgZmQsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4mJiBub3RpZnlIYW5kbGVyKTsKKyAg
ICAgICAgfkV2ZW50RkRQb2xsZXIoKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIHZvaWQgcmVh
ZEFuZE5vdGlmeSgpIGNvbnN0OworCisgICAgICAgIE9wdGlvbmFsPGludD4gbV9mZDsKKyAgICAg
ICAgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBtX25vdGlmeUhhbmRsZXI7CisjaWYgVVNFKEdMSUIp
CisgICAgICAgIEdSZWZQdHI8R1NvdXJjZT4gbV9zb3VyY2U7CisjZWxzZQorICAgICAgICBUaHJl
YWRJZGVudGlmaWVyIG1fdGhyZWFkSUQ7CisjZW5kaWYKKyAgICB9OworI2VuZGlmCisKICAgICBi
b29sIG1faW5zdGFsbGVkOwogICAgIHRpbWVfdCBtX2xhc3RSZXNwb25kVGltZTsKICAgICBMb3dN
ZW1vcnlIYW5kbGVyIG1fbG93TWVtb3J5SGFuZGxlcjsKQEAgLTE1MiwxMCArMTczLDEwIEBAIHBy
aXZhdGU6CiAgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYgbV9vYnNlcnZlcjsKICAgICBMb2NrIG1f
b2JzZXJ2ZXJNdXRleDsKICNlbGlmIE9TKExJTlVYKQotICAgIGludCBtX2V2ZW50RkQ7Ci0gICAg
aW50IG1fcHJlc3N1cmVMZXZlbEZEOwotICAgIFdURjo6VGhyZWFkSWRlbnRpZmllciBtX3RocmVh
ZElEOwotICAgIFRpbWVyIG1faG9sZE9mZlRpbWVyOworICAgIE9wdGlvbmFsPGludD4gbV9ldmVu
dEZEOworICAgIE9wdGlvbmFsPGludD4gbV9wcmVzc3VyZUxldmVsRkQ7CisgICAgc3RkOjp1bmlx
dWVfcHRyPEV2ZW50RkRQb2xsZXI+IG1fZXZlbnRGRFBvbGxlcjsKKyAgICBSdW5Mb29wOjpUaW1l
cjxNZW1vcnlQcmVzc3VyZUhhbmRsZXI+IG1faG9sZE9mZlRpbWVyOwogICAgIHZvaWQgaG9sZE9m
ZlRpbWVyRmlyZWQoKTsKICAgICB2b2lkIGxvZ0Vycm9yQW5kQ2xvc2VGRHMoY29uc3QgY2hhciog
ZXJyb3IpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51
eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAKaW5kZXggZDBkMTM2YS4uMTJj
NjE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4
L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcApAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogCisjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxmY250bC5o
PgogI2luY2x1ZGUgPG1hbGxvYy5oPgogI2luY2x1ZGUgPHN5cy9ldmVudGZkLmg+CkBAIC00MSw2
ICs0MiwxMCBAQAogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDxnbGliLXVuaXguaD4K
KyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIERpc2FibGUgbWVtb3J5IGV2ZW50
IHJlY2VwdGlvbiBmb3IgYSBtaW5pbXVtIG9mIHNfbWluaW11bUhvbGRPZmZUaW1lCkBAIC01Niw2
ICs2MSwxMDIgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHNfY2dyb3VwTWVtb3J5UHJlc3N1cmVMZXZl
bCA9ICIvc3lzL2ZzL2Nncm91cC9tZW1vcnkvbWVtb3J5LnAKIHN0YXRpYyBjb25zdCBjaGFyKiBz
X2Nncm91cEV2ZW50Q29udHJvbCA9ICIvc3lzL2ZzL2Nncm91cC9tZW1vcnkvY2dyb3VwLmV2ZW50
X2NvbnRyb2wiOwogc3RhdGljIGNvbnN0IGNoYXIqIHNfcHJvY2Vzc1N0YXR1cyA9ICIvcHJvYy9z
ZWxmL3N0YXR1cyI7CiAKKyNpZiBVU0UoR0xJQikKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBHU291
cmNlIHNvdXJjZTsKKyAgICBncG9pbnRlciBmZFRhZzsKKyAgICBHSU9Db25kaXRpb24gY29uZGl0
aW9uOworfSBFdmVudEZEU291cmNlOworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgZXZlbnRGRFNv
dXJjZUNvbmRpdGlvbiA9IEdfSU9fSU4gfCBHX0lPX0hVUCB8IEdfSU9fRVJSIHwgR19JT19OVkFM
OworCitzdGF0aWMgR1NvdXJjZUZ1bmNzIGV2ZW50RkRTb3VyY2VGdW5jdGlvbnMgPSB7CisgICAg
bnVsbHB0ciwgLy8gcHJlcGFyZQorICAgIG51bGxwdHIsIC8vIGNoZWNrCisgICAgLy8gZGlzcGF0
Y2gKKyAgICBbXShHU291cmNlKiBzb3VyY2UsIEdTb3VyY2VGdW5jIGNhbGxiYWNrLCBncG9pbnRl
ciB1c2VyRGF0YSkgLT4gZ2Jvb2xlYW4KKyAgICB7CisgICAgICAgIEV2ZW50RkRTb3VyY2UqIGV2
ZW50RkRTb3VyY2UgPSByZWludGVycHJldF9jYXN0PEV2ZW50RkRTb3VyY2UqPihzb3VyY2UpOwor
ICAgICAgICB1bnNpZ25lZCBldmVudHMgPSBnX3NvdXJjZV9xdWVyeV91bml4X2ZkKHNvdXJjZSwg
ZXZlbnRGRFNvdXJjZS0+ZmRUYWcpICYgZXZlbnRGRFNvdXJjZUNvbmRpdGlvbjsKKyAgICAgICAg
aWYgKGV2ZW50cyAmIEdfSU9fSFVQIHx8IGV2ZW50cyAmIEdfSU9fRVJSIHx8IGV2ZW50cyAmIEdf
SU9fTlZBTCkKKyAgICAgICAgICAgIHJldHVybiBHX1NPVVJDRV9SRU1PVkU7CisKKyAgICAgICAg
Z2Jvb2xlYW4gcmV0dXJuVmFsdWUgPSBHX1NPVVJDRV9DT05USU5VRTsKKyAgICAgICAgaWYgKGV2
ZW50cyAmIEdfSU9fSU4pCisgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IGNhbGxiYWNrKHVzZXJE
YXRhKTsKKyAgICAgICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUoc291cmNlLCAtMSk7CisgICAg
ICAgIHJldHVybiByZXR1cm5WYWx1ZTsKKyAgICB9LAorICAgIG51bGxwdHIsIC8vIGZpbmFsaXpl
CisgICAgbnVsbHB0ciwgLy8gY2xvc3VyZV9jYWxsYmFjaworICAgIG51bGxwdHIsIC8vIGNsb3N1
cmVfbWFyc2hhbGwKK307CisjZW5kaWYKKworTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpFdmVudEZE
UG9sbGVyOjpFdmVudEZEUG9sbGVyKGludCBmZCwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiYmIG5v
dGlmeUhhbmRsZXIpCisgICAgOiBtX2ZkKGZkKQorICAgICwgbV9ub3RpZnlIYW5kbGVyKFdURk1v
dmUobm90aWZ5SGFuZGxlcikpCit7CisjaWYgVVNFKEdMSUIpCisgICAgbV9zb3VyY2UgPSBhZG9w
dEdSZWYoZ19zb3VyY2VfbmV3KCZldmVudEZEU291cmNlRnVuY3Rpb25zLCBzaXplb2YoRXZlbnRG
RFNvdXJjZSkpKTsKKyAgICBnX3NvdXJjZV9zZXRfbmFtZShtX3NvdXJjZS5nZXQoKSwgIldlYkNv
cmU6IE1lbW9yeVByZXNzdXJlSGFuZGxlciIpOworICAgIGlmICghZ191bml4X3NldF9mZF9ub25i
bG9ja2luZyhtX2ZkLnZhbHVlKCksIFRSVUUsIG51bGxwdHIpKSB7CisgICAgICAgIExPRyhNZW1v
cnlQcmVzc3VyZSwgIkZhaWxlZCB0byBzZXQgZXZlbnRmZCBub25ibG9ja2luZyIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgRXZlbnRGRFNvdXJjZSogZXZlbnRGRFNvdXJjZSA9IHJl
aW50ZXJwcmV0X2Nhc3Q8RXZlbnRGRFNvdXJjZSo+KG1fc291cmNlLmdldCgpKTsKKyAgICBldmVu
dEZEU291cmNlLT5mZFRhZyA9IGdfc291cmNlX2FkZF91bml4X2ZkKG1fc291cmNlLmdldCgpLCBt
X2ZkLnZhbHVlKCksIHN0YXRpY19jYXN0PEdJT0NvbmRpdGlvbj4oZXZlbnRGRFNvdXJjZUNvbmRp
dGlvbikpOworICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3NvdXJjZS5nZXQoKSwgW10oZ3Bv
aW50ZXIgdXNlckRhdGEpIC0+IGdib29sZWFuIHsKKyAgICAgICAgc3RhdGljX2Nhc3Q8RXZlbnRG
RFBvbGxlcio+KHVzZXJEYXRhKS0+cmVhZEFuZE5vdGlmeSgpOworICAgICAgICByZXR1cm4gR19T
T1VSQ0VfUkVNT1ZFOworICAgIH0sIHRoaXMsIG51bGxwdHIpOworICAgIGdfc291cmNlX2F0dGFj
aChtX3NvdXJjZS5nZXQoKSwgbnVsbHB0cik7CisjZWxzZQorICAgIG1fdGhyZWFkSUQgPSBjcmVh
dGVUaHJlYWQoIldlYkNvcmU6IE1lbW9yeVByZXNzdXJlSGFuZGxlciIsIFt0aGlzXSB7IHJlYWRB
bmROb3RpZnkoKTsgfQorI2VuZGlmCit9CisKK01lbW9yeVByZXNzdXJlSGFuZGxlcjo6RXZlbnRG
RFBvbGxlcjo6fkV2ZW50RkRQb2xsZXIoKQoreworICAgIG1fZmQgPSBOdWxsb3B0OworI2lmIFVT
RShHTElCKQorICAgIGdfc291cmNlX2Rlc3Ryb3kobV9zb3VyY2UuZ2V0KCkpOworI2Vsc2UKKyAg
ICBkZXRhY2hUaHJlYWQobV90aHJlYWRJRCk7CisjZW5kaWYKK30KKworc3RhdGljIGlubGluZSBi
b29sIGlzRmF0YWxSZWFkRXJyb3IoaW50IGVycm9yKQoreworI2lmIFVTRShHTElCKQorICAgIC8v
IFdlIGRvbid0IHJlYWxseSBuZWVkIHRvIHJlYWQgdGhlIGJ1ZmZlciBjb250ZW50cywgaWYgdGhl
IHBvbGxlcgorICAgIC8vIG5vdGlmaWVkIHVzLCBidXQgcmVhZCB3b3VsZCBibG9jayBvciBpcyBu
byBsb25nZXIgYXZhaWxhYmxlLCBpcworICAgIC8vIGVub3VnaCB0byB0cmlnZ2VyIHRoZSBtZW1v
cnkgcHJlc3N1cmUgaGFuZGxlci4KKyAgICByZXR1cm4gZXJyb3IgIT0gRUFHQUlOICYmIGVycm9y
ICE9IEVXT1VMREJMT0NLOworI2Vsc2UKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorfQorCit2
b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6RXZlbnRGRFBvbGxlcjo6cmVhZEFuZE5vdGlmeSgp
IGNvbnN0Cit7CisgICAgaWYgKCFtX2ZkKSB7CisgICAgICAgIExPRyhNZW1vcnlQcmVzc3VyZSwg
IkludmFsaWRhdGUgZXZlbnRmZC4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHVp
bnQ2NF90IGJ1ZmZlcjsKKyAgICBpZiAocmVhZChtX2ZkLnZhbHVlKCksICZidWZmZXIsIHNpemVv
ZihidWZmZXIpKSA9PSAtMSkgeworICAgICAgICBpZiAoaXNGYXRhbFJlYWRFcnJvcihlcnJubykp
IHsKKyAgICAgICAgICAgIExPRyhNZW1vcnlQcmVzc3VyZSwgIkZhaWxlZCB0byByZWFkIGV2ZW50
ZmQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtX25v
dGlmeUhhbmRsZXIoKTsKK30KKwogc3RhdGljIGlubGluZSBTdHJpbmcgbmV4dFRva2VuKEZJTEUq
IGZpbGUpCiB7CiAgICAgaWYgKCFmaWxlKQpAQCAtNzcsNzQgKzE3OCw0OCBAQCBzdGF0aWMgaW5s
aW5lIFN0cmluZyBuZXh0VG9rZW4oRklMRSogZmlsZSkKICAgICByZXR1cm4gU3RyaW5nKGJ1ZmZl
cik7CiB9CiAKLXZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp3YWl0Rm9yTWVtb3J5UHJlc3N1
cmVFdmVudCh2b2lkKikKLXsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBpbnQg
ZXZlbnRGRCA9IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkubV9ldmVudEZEOwot
ICAgIGlmICghZXZlbnRGRCkgewotICAgICAgICBMT0coTWVtb3J5UHJlc3N1cmUsICJJbnZhbGlk
YXRlIGV2ZW50ZmQuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB1aW50NjRfdCBi
dWZmZXI7Ci0gICAgaWYgKHJlYWQoZXZlbnRGRCwgJmJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlcikpIDw9
IDApIHsKLSAgICAgICAgTE9HKE1lbW9yeVByZXNzdXJlLCAiRmFpbGVkIHRvIHJlYWQgZXZlbnRm
ZC4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIEZJWE1FOiBDdXJyZW50IG1l
bWNnIGRvZXMgbm90IHByb3ZpZGUgYW55IHdheSBmb3IgdXNlcnMgdG8ga25vdyBob3cgc2VyaW91
cyB0aGUgbWVtb3J5IHByZXNzdXJlIGlzLgotICAgIC8vIFNvIHdlIGFzc3VtZSBhbGwgbm90aWZp
Y2F0aW9ucyBmcm9tIG1lbWNnIGFyZSBjcml0aWNhbCBmb3Igbm93LiBJZiBtZW1jZyBoYWQgYmV0
dGVyIGluZmVyZmFjZXMKLSAgICAvLyB0byBnZXQgYSBkZXRhaWxlZCBtZW1vcnkgcHJlc3N1cmUg
bGV2ZWwgaW4gdGhlIGZ1dHVyZSwgd2Ugc2hvdWxkIHVwZGF0ZSBoZXJlIGFjY29yZGluZ2x5Lgot
ICAgIGJvb2wgY3JpdGljYWwgPSB0cnVlOwotICAgIGlmIChSZWxpZWZMb2dnZXI6OmxvZ2dpbmdF
bmFibGVkKCkpCi0gICAgICAgIExPRyhNZW1vcnlQcmVzc3VyZSwgIkdvdCBtZW1vcnkgcHJlc3N1
cmUgbm90aWZpY2F0aW9uICglcykiLCBjcml0aWNhbCA/ICJjcml0aWNhbCIgOiAibm9uLWNyaXRp
Y2FsIik7Ci0KLSAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLnNldFVuZGVy
TWVtb3J5UHJlc3N1cmUoY3JpdGljYWwpOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW2NyaXRpY2Fs
XSB7Ci0gICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucmVzcG9uZFRv
TWVtb3J5UHJlc3N1cmUoY3JpdGljYWwgPyBDcml0aWNhbDo6WWVzIDogQ3JpdGljYWw6Ok5vKTsK
LSAgICB9KTsKLX0KLQogaW5saW5lIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpsb2dFcnJv
ckFuZENsb3NlRkRzKGNvbnN0IGNoYXIqIGxvZykKIHsKICAgICBpZiAobG9nKQogICAgICAgICBM
T0coTWVtb3J5UHJlc3N1cmUsICIlcywgZXJyb3IgOiAlbSIsIGxvZyk7CiAKLSAgICBpZiAobV9l
dmVudEZEKSB7Ci0gICAgICAgIGNsb3NlKG1fZXZlbnRGRCk7Ci0gICAgICAgIG1fZXZlbnRGRCA9
IDA7CisgICAgaWYgKCFtX2V2ZW50RkQpIHsKKyAgICAgICAgY2xvc2UobV9ldmVudEZELnZhbHVl
KCkpOworICAgICAgICBtX2V2ZW50RkQgPSBOdWxsb3B0OwogICAgIH0KLSAgICBpZiAobV9wcmVz
c3VyZUxldmVsRkQpIHsKLSAgICAgICAgY2xvc2UobV9wcmVzc3VyZUxldmVsRkQpOwotICAgICAg
ICBtX3ByZXNzdXJlTGV2ZWxGRCA9IDA7CisgICAgaWYgKCFtX3ByZXNzdXJlTGV2ZWxGRCkgewor
ICAgICAgICBjbG9zZShtX3ByZXNzdXJlTGV2ZWxGRC52YWx1ZSgpKTsKKyAgICAgICAgbV9wcmVz
c3VyZUxldmVsRkQgPSBOdWxsb3B0OwogICAgIH0KIH0KIAogdm9pZCBNZW1vcnlQcmVzc3VyZUhh
bmRsZXI6Omluc3RhbGwoKQogewotICAgIGlmIChtX2luc3RhbGxlZCkKKyAgICBpZiAobV9pbnN0
YWxsZWQgfHwgbV9ob2xkT2ZmVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV9ldmVudEZEID0gZXZlbnRmZCgwLCBFRkRfQ0xPRVhFQyk7Ci0gICAgaWYgKG1fZXZlbnRG
RCA9PSAtMSkgeworICAgIGludCBmZCA9IGV2ZW50ZmQoMCwgRUZEX0NMT0VYRUMpOworICAgIGlm
IChmZCA9PSAtMSkgewogICAgICAgICBMT0coTWVtb3J5UHJlc3N1cmUsICJldmVudGZkKCkgZmFp
bGVkOiAlbSIpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIG1fZXZlbnRGRCA9IGZkOwog
Ci0gICAgbV9wcmVzc3VyZUxldmVsRkQgPSBvcGVuKHNfY2dyb3VwTWVtb3J5UHJlc3N1cmVMZXZl
bCwgT19DTE9FWEVDIHwgT19SRE9OTFkpOwotICAgIGlmIChtX3ByZXNzdXJlTGV2ZWxGRCA9PSAt
MSkgeworICAgIGZkID0gb3BlbihzX2Nncm91cE1lbW9yeVByZXNzdXJlTGV2ZWwsIE9fQ0xPRVhF
QyB8IE9fUkRPTkxZKTsKKyAgICBpZiAoZmQgPT0gLTEpIHsKICAgICAgICAgbG9nRXJyb3JBbmRD
bG9zZUZEcygiRmFpbGVkIHRvIG9wZW4gbWVtb3J5LnByZXNzdXJlX2xldmVsIik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CisgICAgbV9wcmVzc3VyZUxldmVsRkQgPSBmZDsKIAotICAgIGludCBm
ZCA9IG9wZW4oc19jZ3JvdXBFdmVudENvbnRyb2wsIE9fQ0xPRVhFQyB8IE9fV1JPTkxZKTsKKyAg
ICBmZCA9IG9wZW4oc19jZ3JvdXBFdmVudENvbnRyb2wsIE9fQ0xPRVhFQyB8IE9fV1JPTkxZKTsK
ICAgICBpZiAoZmQgPT0gLTEpIHsKICAgICAgICAgbG9nRXJyb3JBbmRDbG9zZUZEcygiRmFpbGVk
IHRvIG9wZW4gY2dyb3VwLmV2ZW50X2NvbnRyb2wiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIGNoYXIgbGluZVsxMjhdID0gezAsIH07Ci0gICAgaWYgKHNucHJpbnRmKGxpbmUsIHNp
emVvZihsaW5lKSwgIiVkICVkIGxvdyIsIG1fZXZlbnRGRCwgbV9wcmVzc3VyZUxldmVsRkQpIDwg
MAorICAgIGlmIChzbnByaW50ZihsaW5lLCBzaXplb2YobGluZSksICIlZCAlZCBsb3ciLCBtX2V2
ZW50RkQudmFsdWUoKSwgbV9wcmVzc3VyZUxldmVsRkQudmFsdWUoKSkgPCAwCiAgICAgICAgIHx8
IHdyaXRlKGZkLCBsaW5lLCBzdHJsZW4obGluZSkgKyAxKSA8IDApIHsKICAgICAgICAgbG9nRXJy
b3JBbmRDbG9zZUZEcygiRmFpbGVkIHRvIHdyaXRlIGNncm91cC5ldmVudF9jb250cm9sIik7CiAg
ICAgICAgIGNsb3NlKGZkKTsKQEAgLTE1MiwxMSArMjI3LDIwIEBAIHZvaWQgTWVtb3J5UHJlc3N1
cmVIYW5kbGVyOjppbnN0YWxsKCkKICAgICB9CiAgICAgY2xvc2UoZmQpOwogCi0gICAgbV90aHJl
YWRJRCA9IGNyZWF0ZVRocmVhZCh3YWl0Rm9yTWVtb3J5UHJlc3N1cmVFdmVudCwgdGhpcywgIldl
YkNvcmU6IE1lbW9yeVByZXNzdXJlSGFuZGxlciIpOwotICAgIGlmICghbV90aHJlYWRJRCkgewot
ICAgICAgICBsb2dFcnJvckFuZENsb3NlRkRzKCJGYWlsZWQgdG8gY3JlYXRlIGEgdGhyZWFkIGZv
ciBNZW1vcnlQcmVzc3VyZUhhbmRsZXIiKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBt
X2V2ZW50RkRQb2xsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEV2ZW50RkRQb2xsZXI+KG1fZXZlbnRG
RC52YWx1ZSgpLCBbdGhpc10geworICAgICAgICAvLyBGSVhNRTogQ3VycmVudCBtZW1jZyBkb2Vz
IG5vdCBwcm92aWRlIGFueSB3YXkgZm9yIHVzZXJzIHRvIGtub3cgaG93IHNlcmlvdXMgdGhlIG1l
bW9yeSBwcmVzc3VyZSBpcy4KKyAgICAgICAgLy8gU28gd2UgYXNzdW1lIGFsbCBub3RpZmljYXRp
b25zIGZyb20gbWVtY2cgYXJlIGNyaXRpY2FsIGZvciBub3cuIElmIG1lbWNnIGhhZCBiZXR0ZXIg
aW5mZXJmYWNlcworICAgICAgICAvLyB0byBnZXQgYSBkZXRhaWxlZCBtZW1vcnkgcHJlc3N1cmUg
bGV2ZWwgaW4gdGhlIGZ1dHVyZSwgd2Ugc2hvdWxkIHVwZGF0ZSBoZXJlIGFjY29yZGluZ2x5Lgor
ICAgICAgICBib29sIGNyaXRpY2FsID0gdHJ1ZTsKKyAgICAgICAgaWYgKFJlbGllZkxvZ2dlcjo6
bG9nZ2luZ0VuYWJsZWQoKSkKKyAgICAgICAgICAgIExPRyhNZW1vcnlQcmVzc3VyZSwgIkdvdCBt
ZW1vcnkgcHJlc3N1cmUgbm90aWZpY2F0aW9uICglcykiLCBjcml0aWNhbCA/ICJjcml0aWNhbCIg
OiAibm9uLWNyaXRpY2FsIik7CisKKyAgICAgICAgc2V0VW5kZXJNZW1vcnlQcmVzc3VyZShjcml0
aWNhbCk7CisgICAgICAgIGlmIChpc01haW5UaHJlYWQoKSkKKyAgICAgICAgICAgIHJlc3BvbmRU
b01lbW9yeVByZXNzdXJlKGNyaXRpY2FsID8gQ3JpdGljYWw6OlllcyA6IENyaXRpY2FsOjpObyk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhp
cywgY3JpdGljYWxdIHsgcmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoY3JpdGljYWwgPyBDcml0aWNh
bDo6WWVzIDogQ3JpdGljYWw6Ok5vKTsgfSk7CisgICAgfSk7CiAKICAgICBpZiAoUmVsaWVmTG9n
Z2VyOjpsb2dnaW5nRW5hYmxlZCgpICYmIGlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpKQogICAgICAg
ICBMT0coTWVtb3J5UHJlc3N1cmUsICJTeXN0ZW0gaXMgbm8gbG9uZ2VyIHVuZGVyIG1lbW9yeSBw
cmVzc3VyZS4iKTsKQEAgLTE3MCwxMCArMjU0LDggQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRs
ZXI6OnVuaW5zdGFsbCgpCiAgICAgaWYgKCFtX2luc3RhbGxlZCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaWYgKG1fdGhyZWFkSUQpIHsKLSAgICAgICAgZGV0YWNoVGhyZWFkKG1fdGhyZWFkSUQp
OwotICAgICAgICBtX3RocmVhZElEID0gMDsKLSAgICB9CisgICAgbV9ob2xkT2ZmVGltZXIuc3Rv
cCgpOworICAgIG1fZXZlbnRGRFBvbGxlciA9IG51bGxwdHI7CiAKICAgICBsb2dFcnJvckFuZENs
b3NlRkRzKG51bGxwdHIpOwogICAgIG1faW5zdGFsbGVkID0gZmFsc2U7Cg==
</data>
<flag name="review"
          id="307191"
          type_id="1"
          status="+"
          setter="tonikitoo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283642</attachid>
            <date>2016-07-14 08:15:04 -0700</date>
            <delta_ts>2016-07-14 08:49:00 -0700</delta_ts>
            <desc>Follow up</desc>
            <filename>wcore-memory-pressure-optional.diff</filename>
            <type>text/plain</type>
            <size>1436</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0N2JjNzMzLi5mZTdiMWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTYtMDctMTQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHTGliXSBVc2UgYSBHU291cmNlIGluc3RlYWQgb2YgYSB0aHJlYWQgdG8g
cG9sbCBtZW1vcnkgcHJlc3N1cmUgZXZlbnRGRCBpbiBsaW51eCBpbXBsZW1lbnRhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5MzQ2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIGZv
bGxvdyB1cCBvZiByMjAzMjE2IHRvIGZpeCB3cm9uZyB1c2Ugb2YgT3B0aW9uYWwgdmFsdWVzLgor
CisgICAgICAgICogcGxhdGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3Bw
OgorCiAyMDE2LTA3LTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbR1RLXVtUaHJlYWRlZCBDb21wb3NpdG9yXSBXZWIgdmlldyBiYWNrZ3Jv
dW5kIGNvbG9ycyBkb24ndCB3b3JrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAKaW5kZXggMTJjNjE4
Ni4uNDcxMzFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVt
b3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2xpbnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcApAQCAtMTgzLDExICsxODMsMTEg
QEAgaW5saW5lIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpsb2dFcnJvckFuZENsb3NlRkRz
KGNvbnN0IGNoYXIqIGxvZykKICAgICBpZiAobG9nKQogICAgICAgICBMT0coTWVtb3J5UHJlc3N1
cmUsICIlcywgZXJyb3IgOiAlbSIsIGxvZyk7CiAKLSAgICBpZiAoIW1fZXZlbnRGRCkgeworICAg
IGlmIChtX2V2ZW50RkQpIHsKICAgICAgICAgY2xvc2UobV9ldmVudEZELnZhbHVlKCkpOwogICAg
ICAgICBtX2V2ZW50RkQgPSBOdWxsb3B0OwogICAgIH0KLSAgICBpZiAoIW1fcHJlc3N1cmVMZXZl
bEZEKSB7CisgICAgaWYgKG1fcHJlc3N1cmVMZXZlbEZEKSB7CiAgICAgICAgIGNsb3NlKG1fcHJl
c3N1cmVMZXZlbEZELnZhbHVlKCkpOwogICAgICAgICBtX3ByZXNzdXJlTGV2ZWxGRCA9IE51bGxv
cHQ7CiAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>