<?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>165522</bug_id>
          
          <creation_ts>2016-12-07 03:40:39 -0800</creation_ts>
          <short_desc>[GTK] WebkitWebProcess crashes on exit on nvidia if threaded compositing is enabled</short_desc>
          <delta_ts>2017-02-24 12:46:35 -0800</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>WebKit Nightly 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=164912</see_also>
          <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="Hussam Al-Tayeb">ht990332</reporter>
          <assigned_to name="Miguel Gomez">magomez</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>commit-queue</cc>
    
    <cc>magomez</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1257219</commentid>
    <comment_count>0</comment_count>
    <who name="Hussam Al-Tayeb">ht990332</who>
    <bug_when>2016-12-07 03:40:39 -0800</bug_when>
    <thetext>As the summary says WebkitWebProcess crashes on exit on nvidia if threaded composting is enabled.
This is an issue in both 2.14.xx and 2.15.xx

[Thread debugging using libthread_db enabled]
Using host libthread_db library &quot;/usr/lib/libthread_db.so.1&quot;.
Core was generated by `/usr/lib/webkit2gtk-4.0/WebKitWebProcess 18&apos;.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f10b5501809 in glBindFramebuffer () from /usr/lib/libGLdispatch.so.0
[Current thread is 1 (Thread 0x7f10c44fb9c0 (LWP 12222))]
(gdb) bt full
#0  0x00007f10b5501809 in glBindFramebuffer () at /usr/lib/libGLdispatch.so.0
#1  0x00007f10c30e062b in WebCore::GLContextGLX::~GLContextGLX() (this=0x7f10af1a1b40, __in_chrg=&lt;optimized out&gt;)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:189
#2  0x00007f10c30e06a9 in WebCore::GLContextGLX::~GLContextGLX() (this=0x7f10af1a1b40, __in_chrg=&lt;optimized out&gt;)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:192
#3  0x00007f10c30f2719 in std::default_delete&lt;WebCore::GLContext&gt;::operator()(WebCore::GLContext*) const (this=&lt;optimized out&gt;, __ptr=&lt;optimized out&gt;)
    at /usr/include/c++/6.2.1/bits/unique_ptr.h:76
#4  0x00007f10c30f2719 in std::unique_ptr&lt;WebCore::GLContext, std::default_delete&lt;WebCore::GLContext&gt; &gt;::reset(WebCore::GLContext*) (__p=&lt;optimized out&gt;, this=0x7f10af1fdb50) at /usr/include/c++/6.2.1/bits/unique_ptr.h:347

#5  0x00007f10c30f2719 in std::unique_ptr&lt;WebCore::GLContext, std::default_delete&lt;WebCore::GLContext&gt; &gt;::operator=(decltype(nullptr)) (this=0x7f10af1fdb50)
    at /usr/include/c++/6.2.1/bits/unique_ptr.h:283
#6  0x00007f10c30f2719 in WebCore::PlatformDisplayX11::~PlatformDisplayX11() (this=0x7f10af1fdb40, __in_chrg=&lt;optimized out&gt;)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp:61
#7  0x00007f10c30f2749 in WebCore::PlatformDisplayX11::~PlatformDisplayX11() (th---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
is=0x7f10af1fdb40, __in_chrg=&lt;optimized out&gt;)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp:65
#8  0x00007f10b59ea890 in __run_exit_handlers () at /usr/lib/libc.so.6
#9  0x00007f10b59ea8ea in  () at /usr/lib/libc.so.6
#10 0x00007f10c1d77ba3 in IPC::Connection::didFailToSendSyncMessage() (this=this@entry=0x7f10af1ea180)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebKit2/Platform/IPC/Connection.cpp:876
#11 0x00007f10c1d7c67e in IPC::Connection::sendSyncMessage(unsigned long, std::unique_ptr&lt;IPC::Encoder, std::default_delete&lt;IPC::Encoder&gt; &gt;, WTF::Seconds, WTF::OptionSet&lt;IPC::SendSyncOption&gt;) (this=this@entry=0x7f10af1ea180, syncRequestID=8, encoder=std::unique_ptr&lt;IPC::Encoder&gt; containing 0x7f105c68cc80, timeout=..., timeout@entry=..., sendSyncOptions=sendSyncOptions@entry=...)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebKit2/Platform/IPC/Connection.cpp:509
        locker = {m_lockable = 0x7f10af1ea260}
        protect = &lt;optimized out&gt;
        reply = std::unique_ptr&lt;IPC::Decoder&gt; containing 0x1ea8600
#12 0x00007f10c1ec588a in IPC::Connection::sendSync&lt;Messages::WebProcessProxy::ShouldTerminate&gt;(Messages::WebProcessProxy::ShouldTerminate&amp;&amp;, Messages::WebProcessProxy::ShouldTerminate::Reply&amp;&amp;, unsigned long, WTF::Seconds, WTF::OptionSet&lt;IPC::SendSyncOption&gt;) (sendSyncOptions=..., timeout=..., destinationID=0, reply=&lt;---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
optimized out&gt;, message=&lt;optimized out&gt;, this=0x7f10af1ea180)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebKit2/Platform/IPC/Connection.h:384
        syncRequestID = 8
        encoder = std::unique_ptr&lt;IPC::Encoder&gt; containing 0x0
        replyDecoder = std::unique_ptr&lt;IPC::Decoder&gt; containing 0x7f10c16222e8 &lt;bmalloc::PerProcess&lt;bmalloc::Heap&gt;::s_mutex&gt;
        shouldTerminate = false
#13 0x00007f10c1ec588a in WebKit::WebProcess::shouldTerminate() (this=&lt;optimized out&gt;)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebKit2/WebProcess/WebProcess.cpp:608
        shouldTerminate = false
#14 0x00007f10c1d88dca in WebKit::ChildProcess::terminationTimerFired() (this=0x1d5b3c0)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebKit2/Shared/ChildProcess.cpp:161
#15 0x00007f10c1f75b05 in WebKit::WebPage::close() (this=this@entry=0x7f10af1ce000)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1077
        isRunningModal = false
#16 0x00007f10c21a95d5 in IPC::callMemberFunctionImpl&lt;WebKit::WebPage, void (Web---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
Kit::WebPage::*)(), std::tuple&lt;&gt;&gt;(WebKit::WebPage*, void (WebKit::WebPage::*)(), std::tuple&lt;&gt;&amp;&amp;, std::integer_sequence&lt;unsigned long&gt;) (args=&lt;optimized out&gt;, function=&lt;optimized out&gt;, object=0x7f10af1ce000)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebKit2/Platform/IPC/HandleMessage.h:40
#17 0x00007f10c21a95d5 in IPC::callMemberFunction&lt;WebKit::WebPage, void (WebKit::WebPage::*)(), std::tuple&lt;&gt;, std::integer_sequence&lt;unsigned long&gt; &gt;(std::tuple&lt;&gt;&amp;&amp;, WebKit::WebPage*, void (WebKit::WebPage::*)()) (args=&lt;optimized out&gt;, function=&lt;optimized out&gt;, object=0x7f10af1ce000)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebKit2/Platform/IPC/HandleMessage.h:46

#18 0x00007f10c21a95d5 in IPC::handleMessage&lt;Messages::WebPage::Close, WebKit::WebPage, void (WebKit::WebPage::*)()&gt;(IPC::Decoder&amp;, WebKit::WebPage*, void (WebKit::WebPage::*)()) (decoder=..., function=&lt;optimized out&gt;, object=0x7f10af1ce000)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebKit2/Platform/IPC/HandleMessage.h:126
#19 0x00007f10c21a95d5 in WebKit::WebPage::didReceiveWebPageMessage(IPC::Connection&amp;, IPC::Decoder&amp;) (this=0x7f10af1ce000, connection=..., decoder=...)
    at /home/hussam/cache/webkit2gtk/src/build/DerivedSources/WebKit2/WebPageMessageReceiver.cpp:701
#20 0x00007f10c1d80a69 in IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&amp;, IPC::Decoder&amp;) (this=this@entry=0x1d5b428, connection=..., decoder=...)
---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebKit2/Platform/IPC/MessageReceiverMap.cpp:123
        messageReceiver = &lt;optimized out&gt;
#21 0x00007f10c1ecaf76 in WebKit::WebProcess::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;) (this=0x1d5b3c0, connection=..., decoder=...)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebKit2/WebProcess/WebProcess.cpp:641
#22 0x00007f10c1d7be4b in IPC::Connection::dispatchMessage(std::unique_ptr&lt;IPC::Decoder, std::default_delete&lt;IPC::Decoder&gt; &gt;) (this=this@entry=0x7f10af1ea180, message=std::unique_ptr&lt;IPC::Decoder&gt; containing 0x7f105c68e3c8)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebKit2/Platform/IPC/Connection.cpp:920
        oldDidReceiveInvalidMessage = false




#23 0x00007f10c1d7cb37 in IPC::Connection::dispatchOneMessage() (this=0x7f10af1ea180)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebKit2/Platform/IPC/Connection.cpp:951
        message = std::unique_ptr&lt;IPC::Decoder&gt; containing 0x0

#24 0x00007f10c1388a2f in WTF::Function&lt;void ()&gt;::operator()() const (this=&lt;synthetic pointer&gt;)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WTF/wtf/Function.h:50
        function = 
---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
          {m_callableWrapper = std::unique_ptr&lt;WTF::Function&lt;void()&gt;::CallableWrapperBase&gt; containing 0x7f10af1e1750}
        functionsToHandle = 1



#25 0x00007f10c1388a2f in WTF::RunLoop::performWork() (this=0x7f10af1f7000)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WTF/wtf/RunLoop.cpp:105

        function = 
          {m_callableWrapper = std::unique_ptr&lt;WTF::Function&lt;void()&gt;::CallableWrapperBase&gt; containing 0x7f10af1e1750}
        functionsToHandle = 1
#26 0x00007f10c13af6e9 in WTF::RunLoop::&lt;lambda(gpointer)&gt;::operator() (__closure=0x0, userData=&lt;optimized out&gt;)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WTF/wtf/glib/RunLoopGLib.cpp:66
#27 0x00007f10c13af6e9 in WTF::RunLoop::&lt;lambda(gpointer)&gt;::_FUN(gpointer) ()
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WTF/wtf/glib/RunLoopGLib.cpp:68
#28 0x00007f10ba83f39a in g_main_dispatch (context=0x1d10fd0) at gmain.c:3203
        dispatch = 
    0x7f10c13af700 &lt;WTF::&lt;lambda(GSource*, GSourceFunc, gpointer)&gt;::_FUN(GSource *, GSourceFunc, gpointer)&gt;
        prev_source = 0x0
        was_in_call = 0
---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
        user_data = 0x7f10af1f7000
        callback = 0x7f10c13af6e0 &lt;WTF::RunLoop::&lt;lambda(gpointer)&gt;::_FUN(gpointer)&gt;
        cb_funcs = &lt;optimized out&gt;
        cb_data = 0x1d87d20
        need_destroy = &lt;optimized out&gt;

        source = 0x1d5eaa0
        current = 0x1d3b8c0
        i = 0
#29 0x00007f10ba83f39a in g_main_context_dispatch (context=context@entry=0x1d10fd0) at gmain.c:3856
#30 0x00007f10ba83f750 in g_main_context_iterate (context=0x1d10fd0, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;) at gmain.c:3929
        max_priority = 2147483647
        timeout = 115
        some_ready = 1
        nfds = 4
        allocated_nfds = 4
        fds = &lt;optimized out&gt;
#31 0x00007f10ba83fa72 in g_main_loop_run (loop=0x1d5ea80) at gmain.c:4125

        __func__ = &quot;g_main_loop_run&quot;
#32 0x00007f10c13b0080 in WTF::RunLoop::run() ()
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WTF/wtf/glib/Ru---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
nLoopGLib.cpp:94
        runLoop = 
            @0x7f10af1f7000: {&lt;WTF::FunctionDispatcher&gt; = {&lt;WTF::ThreadSafeRefCounted&lt;WTF::FunctionDispatcher&gt;&gt; = {&lt;WTF::ThreadSafeRefCountedBase&gt; = {m_refCount = {&lt;std::__atomic_base&lt;unsigned int&gt;&gt; = {static _S_alignment = 4, _M_i = 1}, &lt;No data fields&gt;}}, &lt;No data fields&gt;}, _vptr.FunctionDispatcher = 0x7f10c15ef650 &lt;vtable for WTF::RunLoop+16&gt;}, m_functionQueueLock = {m_mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 512, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = &apos;\000&apos; &lt;repeats 17 times&gt;, &quot;\002&quot;, &apos;\000&apos; &lt;repeats 21 times&gt;, __align = 0}}, m_functionQueue = {m_start = 17, m_end = 19, m_buffer = {&lt;WTF::VectorBufferBase&lt;WTF::Function&lt;void()&gt; &gt;&gt; = {m_buffer = 0x7f10af1d70a8, m_capacity = 21, m_size = 0}, &lt;No data fields&gt;}}, m_mainContext = {m_ptr = 0x1d10fd0}, m_mainLoops = {&lt;WTF::VectorBuffer&lt;WTF::GRefPtr&lt;_GMainLoop&gt;, 0ul&gt;&gt; = {&lt;WTF::VectorBufferBase&lt;WTF::GRefPtr&lt;_GMainLoop&gt; &gt;&gt; = {m_buffer = 0x7f10af1fa180, m_capacity = 16, m_size = 1}, &lt;No data fields&gt;}, &lt;No data fields&gt;}, m_source = {m_ptr = 0x1d5eaa0}}
        nestedMainLoop = &lt;optimized out&gt;
#33 0x00007f10c2143587 in WebKit::ChildProcessMain&lt;WebKit::WebProcess, WebKit::WebProcessMain&gt;(int, char**) (argc=&lt;optimized out&gt;, argv=0x7ffc2b5786d8)
    at /home/hussam/cache/webkit2gtk/src/webkitgtk-2.15.2/Source/WebKit2/Shared/unix/ChildProcessMain.h:61
        childMain = 
                  {&lt;WebKit::ChildProcessMainBase&gt; = {_vptr.ChildProcessMainBase ---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
= 0x7f10c41f5a98 &lt;vtable for WebKit::WebProcessMain+16&gt;, m_parameters = {uiProcessName = {m_impl = {static isRefPtr = &lt;optimized out&gt;, m_ptr = 0x0}}, clientIdentifier = {m_impl = {static isRefPtr = &lt;optimized out&gt;, m_ptr = 0x0}}, connectionIdentifier = 18, extraInitializationData = {m_impl = {static m_maxLoad = 2, static m_minLoad = 6, m_table = 0x0, m_tableSize = 0, m_tableSizeMask = 0, m_keyCount = 0, m_deletedCount = 0}}}}, &lt;No data fields&gt;}
#34 0x00007f10b59d5291 in __libc_start_main () at /usr/lib/libc.so.6
#35 0x0000000000400b1a in _start ()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257231</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-12-07 05:31:08 -0800</bug_when>
    <thetext>It&apos;s very similar to bug #164912. Problem is, I thought that one was fixed in trunk. Alas.

It&apos;s actually possible you&apos;re hitting bug #164912 with stable and this bug with trunk, since the fix for bug #164912 was to remove some code that worked around an nvidia driver crash. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280234</commentid>
    <comment_count>2</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-02-23 02:59:38 -0800</bug_when>
    <thetext>My first impression here is that we are calling glBindFramebuffer without checking that the context we are about to destroy is the current one. I haven&apos;t debugged the execution, and whether someone might be setting it as current before the destruction (in which case this comment makes no sense), but if no one is taking care of that, we could be calling glBindFramebuffer on a context that has already been destroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280288</commentid>
    <comment_count>3</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-02-23 08:34:57 -0800</bug_when>
    <thetext>This problem was introduced by r295734 in the 2.14 branch, where an exit handler was set to release the existent GLContexts. But was fixed in 2.14.3, where that exit handler does not exist anymore.

In trunk and 2.15 branch seems that it already got fixed time ago.

If there were crashes on exit on 2.15 they probably had a different stack trace, as this one is nor reproducible there (there&apos;s no exit handler set to release glx contexts).

Actually currently the sharing GLContext doesn&apos;t seem to be destroyed at all on exit. I&apos;ve debugging a bit and only the compositor&apos;s GLContext is being destroyed. That should probably be handled in another bug.

Also, I think my previous comment is still valid. We need to make the about-to-be-destroyed context current in order to call glBindFramebuffer on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280745</commentid>
    <comment_count>4</comment_count>
      <attachid>302663</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-02-24 03:28:56 -0800</bug_when>
    <thetext>Created attachment 302663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280760</commentid>
    <comment_count>5</comment_count>
      <attachid>302663</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-02-24 05:24:10 -0800</bug_when>
    <thetext>Comment on attachment 302663
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Before destrying a GLContextGLX we need to set the default framebufer to avoid a bug

framebuffer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280829</commentid>
    <comment_count>6</comment_count>
      <attachid>302663</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-24 12:46:30 -0800</bug_when>
    <thetext>Comment on attachment 302663
Patch

Clearing flags on attachment: 302663

Committed r212968: &lt;http://trac.webkit.org/changeset/212968&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280830</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-24 12:46:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302663</attachid>
            <date>2017-02-24 03:28:56 -0800</date>
            <delta_ts>2017-02-24 12:46:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165522-20170224122606.patch</filename>
            <type>text/plain</type>
            <size>2572</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyOTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTI1MGE3NDNlNWM3NzY4
N2Q4MDEwN2Q2ZDZhOGMyMjQ0YjAyZTM2Yi4uZjRlZmE1ZjhlNjRhYjFkMmE0NTRkNTFkNjM0ZDFm
ZDM0MjJiOTVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTAyLTI0ICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gV2Via2l0V2Vi
UHJvY2VzcyBjcmFzaGVzIG9uIGV4aXQgb24gbnZpZGlhIGlmIHRocmVhZGVkIGNvbXBvc2l0aW5n
IGlzIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NTUyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJlZm9yZSBkZXN0cnlpbmcgYSBHTENvbnRleHRHTFggd2UgbmVlZCB0byBzZXQgdGhlIGRl
ZmF1bHQgZnJhbWVidWZlciB0byBhdm9pZCBhIGJ1ZworICAgICAgICBpbiBzb21lIG52aWRpYSBk
cml2ZXJzLiBFbnN1cmUgdGhhdCB3ZSBzZXQgdGhlIGNvbnRleHQgYXMgY3VycmVudCBiZWZvcmUg
cGVyZm9ybWluZworICAgICAgICB0aGF0IG9wZXJhdGlvbiwgYW5kIHNldCB0aGUgYXBwcm9wcmlh
dGUgY3VycmVudCBjb250ZXh0IGFmdGVyIGRvaW5nIHNvLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R0xDb250ZXh0R0xYOjp+R0xDb250ZXh0R0xYKToKKwogMjAxNy0w
Mi0yMyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtNb2Rl
cm4gTWVkaWEgQ29udHJvbHNdIE5vIGNvbnRyb2xzIGFyZSBzaG93biBmb3IgPGF1ZGlvIHByZWxv
YWQ9Im5vbmUiPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z2x4L0dMQ29udGV4dEdMWC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
bHgvR0xDb250ZXh0R0xYLmNwcAppbmRleCA5Mjg3Yjg1YzVhZDcxMjZjNTA0ZDY1ZmVkNTBhMzhk
YTQwZjEzOGQxLi40NTFiOTE0YmFjNzdiM2Q5NWJhZjA3MWIwOTYyMDlhNzYzMWExYzJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xY
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0
R0xYLmNwcApAQCAtMjc1LDggKzI3NSwyMSBAQCBHTENvbnRleHRHTFg6On5HTENvbnRleHRHTFgo
KQogICAgICAgICBjYWlyb19kZXZpY2VfZGVzdHJveShtX2NhaXJvRGV2aWNlKTsKIAogICAgIGlm
IChtX2NvbnRleHQpIHsKKyAgICAgICAgLy8gRHVlIHRvIGEgYnVnIGluIHNvbWUgbnZpZGlhIGRy
aXZlcnMsIHdlIG5lZWQgYmluZCB0aGUgZGVmYXVsdCBmcmFtZWJ1ZmZlciBpbiBhIGNvbnRleHQg
YmVmb3JlCisgICAgICAgIC8vIGRlc3Ryb3lpbmcgaXQgdG8gYXZvaWQgYSBjcmFzaC4gSW4gb3Jk
ZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byBtYWtlIHRoZSBjb250ZXh0IGN1cnJlbnQgYW5kLAor
ICAgICAgICAvLyBhZnRlciB0aGUgYmluZCBjaGFuZ2UsIHdlIG5lZWQgdG8gc2V0IHRoZSBwcmV2
aW91cyBjb250ZXh0IGFnYWluLgorICAgICAgICBHTENvbnRleHQqIHByZXZpb3VzQWN0aXZlQ29u
dGV4dCA9IEdMQ29udGV4dDo6Y3VycmVudCgpOworICAgICAgICBtYWtlQ29udGV4dEN1cnJlbnQo
KTsKICAgICAgICAgZ2xCaW5kRnJhbWVidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCAwKTsK
LSAgICAgICAgZ2xYTWFrZUN1cnJlbnQobV94MTFEaXNwbGF5LCBOb25lLCBOb25lKTsKKyAgICAg
ICAgaWYgKHByZXZpb3VzQWN0aXZlQ29udGV4dCAmJiBwcmV2aW91c0FjdGl2ZUNvbnRleHQgIT0g
dGhpcykgeworICAgICAgICAgICAgLy8gSWYgdGhlcmUgd2FzIGEgcHJldmlvdXMgY29udGV4dCBk
aWZmZXJlbnQgZnJvbSB0aGlzIG9uZSwganVzdCBtYWtlIGl0IGN1cnJlbnQgYWdhaW4uCisgICAg
ICAgICAgICBwcmV2aW91c0FjdGl2ZUNvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gSWYgdGhlcmUgd2FzIG5vIHByZXZpb3VzIGNv
bnRleHQgb3IgdGhpcyB3YXMgdGhlIHByZXZpb3VzLCBzZXQgYSB2b2lkIGNvbnRleHQgYXMgY3Vy
cmVudC4KKyAgICAgICAgICAgIC8vIFdlIHVzZSB0aGUgR0xYIGZ1bmN0aW9uIGhlcmUsIGFuZCB0
aGUgZGVzdHJ1Y3RvciBvZiBHTENvbnRleHQgd2lsbCBjbGVhbiB0aGUgcG9pbnRlcgorICAgICAg
ICAgICAgLy8gcmV0dXJuZWQgYnkgR0xDb250ZXh0OjpjdXJyZW50KCkuCisgICAgICAgICAgICBn
bFhNYWtlQ3VycmVudChtX3gxMURpc3BsYXksIE5vbmUsIE5vbmUpOworICAgICAgICB9CiAgICAg
fQogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>