<?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>205707</bug_id>
          
          <creation_ts>2020-01-02 19:46:21 -0800</creation_ts>
          <short_desc>REGRESSION (r253926): Flaky crashes on webgl/1.0.3/conformance/textures/texture-copying-feedback-loops.html and webgl/2.0.0/conformance/textures/misc/texture-copying-feedback-loops.html</short_desc>
          <delta_ts>2020-01-06 17:26:38 -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>WebGL</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=205483</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>205483</blocked>
    
    <blocked>205843</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>jdarpinian</cc>
    
    <cc>kbr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1602319</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-01-02 19:46:21 -0800</bug_when>
    <thetext>rdar://problem/58227967

conformance/textures/texture-copying-feedback-loops.html started being a flaky crash after switching to ANGLE.

https://results.webkit.org/?suite=layout-tests&amp;test=webgl%2F1.0.3%2Fconformance%2Ftextures%2Ftexture-copying-feedback-loops.html

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Application Specific Information:
abort() called

Application Specific Signatures:
Graphics kernel error: 0xfffffffe


Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	0x00007fff6ab9765a __pthread_kill + 10
1   libsystem_pthread.dylib       	0x00007fff6ac53e60 pthread_kill + 430
2   libsystem_c.dylib             	0x00007fff6ab1e808 abort + 120
3   libGPUSupportMercury.dylib    	0x00007fff53a380a5 gpusGenerateCrashLog.cold.1 + 95
4   libGPUSupportMercury.dylib    	0x00007fff53a2f18f gpusGenerateCrashLog + 89
5   com.apple.driver.AppleIntelKBLGraphicsGLDriver	0x00007fff29795e58 gpusKillClientExt + 9
6   libGPUSupportMercury.dylib    	0x00007fff53a3055b gpusSubmitDataBuffers + 164
7   com.apple.driver.AppleIntelKBLGraphicsGLDriver	0x00007fff28a0da36 IntelCommandBuffer::getNew(GLDContextRec*) + 48
8   com.apple.driver.AppleIntelKBLGraphicsGLDriver	0x00007fff28a0d844 intelSubmitCommands + 171</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602581</commentid>
    <comment_count>1</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-01-03 14:14:27 -0800</bug_when>
    <thetext>Looks like a crash inside Intel&apos;s graphics driver. There aren&apos;t any suppressions for this test in Chromium on macOS so it should be possible to make WebKit&apos;s WebGL validation behave exactly the same. I&apos;ll investigate locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602683</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-01-03 18:27:47 -0800</bug_when>
    <thetext>More complete crash stack:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	0x00007fff6d24d2c6 __pthread_kill + 10
1   libsystem_pthread.dylib       	0x00007fff6d308bf1 pthread_kill + 284
2   libsystem_c.dylib             	0x00007fff6d1b76a6 abort + 127
3   libGPUSupportMercury.dylib    	0x00007fff5c222240 gpusGenerateCrashLog + 166
4   com.apple.driver.AppleIntelKBLGraphicsGLDriver	0x00007fff3a511578 gpusKillClientExt + 9
5   libGPUSupportMercury.dylib    	0x00007fff5c2235ea gpusSubmitDataBuffers + 164
6   com.apple.driver.AppleIntelKBLGraphicsGLDriver	0x00007fff3996aea8 IntelCommandBuffer::getNew(GLDContextRec*) + 48
7   com.apple.driver.AppleIntelKBLGraphicsGLDriver	0x00007fff3996acba intelSubmitCommands + 171
8   GLEngine                      	0x00007fff4af5f671 gleUnbindTextureObject + 58
9   GLEngine                      	0x00007fff4af30477 gleUnbindDeleteHashNamesAndObjects + 159
10  GLEngine                      	0x00007fff4ae3eaae glDeleteTextures_Exec + 697
11  libANGLE-shared.dylib         	0x000000010b494ece rx::StateManagerGL::deleteTexture(unsigned int) + 278 (StateManagerGL.cpp:246)
12  libANGLE-shared.dylib         	0x000000010b4aef61 rx::TextureGL::onDestroy(gl::Context const*) + 31 (TextureGL.cpp:156)
13  libANGLE-shared.dylib         	0x000000010b4a9b0b gl::Texture::onDestroy(gl::Context const*) + 171 (Texture.cpp:675)
14  libANGLE-shared.dylib         	0x000000010b4624c6 angle::RefCountObject&lt;gl::Context, angle::Result&gt;::release(gl::Context const*) + 266 (RefCountObject.h:45)
15  libANGLE-shared.dylib         	0x000000010b46fd2a gl::TypedResourceManager&lt;gl::Texture, gl::HandleAllocator, gl::TextureManager, gl::TextureID&gt;::deleteObject(gl::Context const*, gl::TextureID) + 78 (ResourceManager.cpp:102)
16  libANGLE-shared.dylib         	0x000000010b263cd6 gl::Context::deleteTextures(int, gl::TextureID const*) + 42 (Context.cpp:6210)
17  libANGLE-shared.dylib         	0x000000010b2c2773 gl::DeleteTextures(int, unsigned int const*) + 142 (entry_points_gles_2_0_autogen.cpp:799)
18  com.apple.WebCore             	0x000000010f64ef35 WebCore::GraphicsContext3D::deleteTexture(unsigned int) + 245 (GraphicsContext3DANGLE.cpp:1763)
19  com.apple.WebCore             	0x00000001106e9cdc WebCore::WebGLObject::deleteObject(WebCore::GraphicsContext3D*) + 76 (WebGLObject.cpp:63)
20  com.apple.WebCore             	0x000000011070f800 WebCore::WebGLSharedObject::detachContextGroup() + 32 (WebGLSharedObject.cpp:52)
21  com.apple.WebCore             	0x00000001106e8838 WebCore::WebGLContextGroup::loseContextGroup(WebCore::WebGLRenderingContextBase::LostContextMode) + 184 (WebGLContextGroup.cpp:88)
22  com.apple.WebCore             	0x0000000110709560 non-virtual thunk to WebCore::WebGLRenderingContextBase::stop() + 96 (WebGLRenderingContextBase.cpp:5180)
23  com.apple.WebCore             	0x00000001104af3cd WTF::Detail::CallableWrapper&lt;WebCore::ScriptExecutionContext::stopActiveDOMObjects()::$_7, WebCore::ScriptExecutionContext::ShouldContinue, WebCore::ActiveDOMObject&amp;&gt;::call(WebCore::ActiveDOMObject&amp;) + 13 (Function.h:52)
24  com.apple.WebCore             	0x00000001104aaa59 WebCore::ScriptExecutionContext::forEachActiveDOMObject(WTF::Function&lt;WebCore::ScriptExecutionContext::ShouldContinue (WebCore::ActiveDOMObject&amp;)&gt; const&amp;) const + 489 (ScriptExecutionContext.cpp:244)
25  com.apple.WebCore             	0x00000001104aac06 WebCore::ScriptExecutionContext::stopActiveDOMObjects() + 70 (ScriptExecutionContext.cpp:298)
26  com.apple.WebCore             	0x000000011085c042 WebCore::FrameLoader::frameDetached() + 178 (FrameLoader.cpp:2817)
27  com.apple.WebCore             	0x00000001105fcabf WebCore::HTMLFrameOwnerElement::disconnectContentFrame() + 31 (HTMLFrameOwnerElement.cpp:81)
28  com.apple.WebCore             	0x00000001103f300a WebCore::disconnectSubframes(WebCore::ContainerNode&amp;, WebCore::SubframeDisconnectPolicy) + 218 (ContainerNodeAlgorithms.cpp:304)
29  com.apple.WebCore             	0x00000001103efc3c WebCore::ContainerNode::removeChildren() + 540 (ContainerNode.cpp:104)
30  com.apple.WebCore             	0x000000011059c74c WebCore::replaceChildrenWithFragment(WebCore::ContainerNode&amp;, WTF::Ref&lt;WebCore::DocumentFragment, WTF::DumbPtrTraits&lt;WebCore::DocumentFragment&gt; &gt;&amp;&amp;) + 92 (markup.cpp:1334)


The crash is occurring during test teardown. I can reproduce this running in WebKit locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602792</commentid>
    <comment_count>3</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-01-04 16:02:50 -0800</bug_when>
    <thetext>This crash is strange. All of ANGLE&apos;s state appears to be set up correctly. The egl::Display is initialized, and the CGLContextObj that it refers to internally is still current, per CGLGetCurrentContext(). It doesn&apos;t look like the CGLContextObj has been deleted out from under the library - assuming that would have caused the current context to be null&apos;ed out. Still investigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602809</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-01-04 18:40:44 -0800</bug_when>
    <thetext>Still trying to figure out what is going on. Have checked out two copies of WebKit at this revision:

Provide pid to crashing service worker process and GPU process
617c711307e3fb84a29000b2010bbf95b43773cc

one using ANGLE, the other not. Built both Debug, running both with minibrowser in WK1 mode (for easier debugging).

Can see both versions allocating and deleting texture objects. The ANGLE version seems to be allocating a few more textures per iteration, but that may be because the instrumentation I added is at a lower level in ANGLE.

The crash is somehow related to running the test in an iframe. With the ANGLE backend, when loading LayoutTests/webgl/1.0.3/conformance/textures/texture-copying-feedback-loops.html (served up via a local HTTP server), it reliably crashes upon the first or second reload. The iframe never displays correctly with the ANGLE backend, even if attempting to resize the window to force a repaint. Loading LayoutTests/webgl/1.0.3/resources/webgl_test_files/conformance/textures/texture-copying-feedback-loops.html, the page can be reloaded over and over again reliably.

Wondering whether some other part of WebKit which is using raw OpenGL is coming in and setting the CGLContextObj out from under ANGLE, causing ANGLE to inadvertently modify OpenGL context state belonging to WebKit, and ultimately leading to corrupted OpenGL state and a crash. I&apos;ve tried modifying EGL_MakeCurrent (Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_egl.cpp) to always call SetContextCurrent (and GraphicsContext3D::makeContextCurrent to always call EGL_MakeCurrent), but the crash persists.

Still investigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602831</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-01-05 00:56:50 -0800</bug_when>
    <thetext>Looking more deeply into ANGLE, it assumes no other code in the process is making OpenGL calls - not a good assumption when it&apos;s being embedded as a library (but not the base OpenGL ES implementation) in a larger application. Have tried modifying GraphicsContext3D::makeContextCurrent (Source/WebCore/platform/graphics/cocoa/GraphicsContext3DCocoa.mm) to forcibly set ANGLE&apos;s internal CGLContextObj to be current, via CGLSetCurrentContext:

...
#elif USE(ANGLE)
    bool res = EGL_MakeCurrent(m_displayObj, EGL_NO_SURFACE, EGL_NO_SURFACE, m_contextObj);
    if (res) {
        EGLDeviceEXT device = nullptr;
        EGL_QueryDisplayAttribEXT(m_displayObj, EGL_DEVICE_EXT, reinterpret_cast&lt;EGLAttrib*&gt;(&amp;device));
        CGLContextObj cglContext = nullptr;
        EGL_QueryDeviceAttribEXT(device, EGL_CGL_CONTEXT_ANGLE, reinterpret_cast&lt;EGLAttrib*&gt;(&amp;cglContext));
        CGLSetCurrentContext(cglContext);
    }
    return res;
#endif
...

Have added some logging and confirmed that CGLSetCurrentContext is being called for each WebGL entry point. Unfortunately, this doesn&apos;t work around the problem; the same crash happens after reloading the page once or twice. I&apos;d like to figure out a way to reset the CGLContextObj to null upon returning from the JavaScript callback that&apos;s making WebGL API calls, to see whether that helps isolate ANGLE from the rest of WebKit&apos;s rendering.

Have looked a bit into RenderIFrame and superclasses, PlatformCALayerCocoa and the layer types it uses, GraphicsLayerCA, TileController, WidgetMac.mm, and some others, to try to understand how iframes are rendered. Are they another CALayer in the hierarchy? Do they have their own NSView? The question remains why the iframe running this test is disappearing when the ANGLE backend is enabled, and what interference there is between ANGLE&apos;s OpenGL context and the rest of WebKit&apos;s rendering that&apos;s causing this crash in the OpenGL driver.

Still investigating - would appreciate any feedback on the questions above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602832</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-01-05 01:35:57 -0800</bug_when>
    <thetext>In GraphicsContext3D::markLayerComposited (GraphicsContext3DANGLE.cpp), tried resetting ANGLE&apos;s notion of the EGL context to EGL_NO_CONTEXT, and calling CGLSetCurrentContext(nullptr). WebGL still works, but the crash still persists. If a workaround like this is to be attempted then it needs to be bounded more tightly to the JavaScript callback currently running WebGL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602882</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-01-05 13:23:30 -0800</bug_when>
    <thetext>It turns out the disappearance of the iframe was unrelated. Apple&apos;s layout test wrapper for the WebGL conformance suite removes the iframe if all sub-tests pass, and for this test, the switch to ANGLE fixes the remaining two preexisting failures.

Remembering that a workaround was recently added to Chromium for an Intel graphics driver bug where operations were being reordered with respect to glBindFramebuffer calls, I dug in the version history and found this:

Fixed WebGL flush bug for old Intel driver
https://chromium-review.googlesource.com/1912790

Applying this workaround in ANGLE conclusively works around this crash in the OpenGL driver! Running the test in the Minibrowser, it can be reloaded 40+ times reliably, where it used to crash within the first couple of reloads.

It&apos;s likely to solve several of the other layout test flakes caused by the switch to ANGLE. Likely not all, though - will have to analyze them all case-by-case.

Patch incoming. It will be upstreamed to ANGLE under this bug:

Need flush workaround before/after bindFramebuffer on Intel drivers on macOS
https://bugs.chromium.org/p/angleproject/issues/detail?id=4267</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602885</commentid>
    <comment_count>8</comment_count>
      <attachid>386796</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-01-05 13:28:55 -0800</bug_when>
    <thetext>Created attachment 386796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602886</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-01-05 13:29:49 -0800</bug_when>
    <thetext>Note that there are important steps to take when updating ANGLE. See http://trac.webkit.org/wiki/UpdatingANGLE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602890</commentid>
    <comment_count>10</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-01-05 14:04:00 -0800</bug_when>
    <thetext>This patch is being upstreamed to ANGLE under:
https://chromium-review.googlesource.com/1987932

I think it&apos;s worth adding to WebKit&apos;s copy of ANGLE sooner rather than later because this may fix many flaky failures of the WebGL layout / conformance tests.

Raising bug to P1 because this was a crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602897</commentid>
    <comment_count>11</comment_count>
      <attachid>386796</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-05 15:22:51 -0800</bug_when>
    <thetext>Comment on attachment 386796
Patch

Clearing flags on attachment: 386796

Committed r254045: &lt;https://trac.webkit.org/changeset/254045&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602898</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-05 15:22:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603386</commentid>
    <comment_count>13</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-01-06 17:13:26 -0800</bug_when>
    <thetext>Upon review of this patch upstream in ANGLE in https://chromium-review.googlesource.com/1987932 , more effort was devoted to creating a reduced test case, and it came to light that this workaround is not really sufficient.

Will file a new bug, block it on this one, and propose a revised workaround.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386796</attachid>
            <date>2020-01-05 13:28:55 -0800</date>
            <delta_ts>2020-01-05 15:22:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205707-20200105132854.patch</filename>
            <type>text/plain</type>
            <size>4573</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggNDEyYjkzYWZmYWMyZDE2NTQ5MDRhMDE0MjhlY2I5ZGNjN2M3NzJjYy4uNmZlYTMxYjVkNzIx
ZWQ5NjNkNTNkOTE3N2ZhMzI1NWIzZmUzMGJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTAxLTA1ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyNTM5MjYpOiBGbGFreSBjcmFzaGVz
IG9uIHdlYmdsLzEuMC4zL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtY29weWluZy1mZWVk
YmFjay1sb29wcy5odG1sIGFuZCB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNj
L3RleHR1cmUtY29weWluZy1mZWVkYmFjay1sb29wcy5odG1sCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU3MDcKKworICAgICAgICBXb3JrIGFyb3Vu
ZCBidWdzIGluIEludGVsJ3MgZ3JhcGhpY3MgZHJpdmVyIHdoZXJlIG9wZXJhdGlvbnMgY2FuCisg
ICAgICAgIGJlIGluY29ycmVjdGx5IHJlb3JkZXJlZCBhY3Jvc3MgZ2xCaW5kRnJhbWVidWZmZXIg
Y2FsbHMgYnkKKyAgICAgICAgZmx1c2hpbmcgYmVmb3JlL2FmdGVyIHRoZXNlIGNhbGxzLiBDb25j
bHVzaXZlbHkgYWRkcmVzc2VzIHRoaXMKKyAgICAgICAgY3Jhc2g7IG1heSBhbHNvIGFkZHJlc3Mg
b3RoZXIgbGF5b3V0IHRlc3QgZmxha2luZXNzIHNlZW4gd2hlbgorICAgICAgICBzd2l0Y2hpbmcg
dG8gQU5HTEUgYmFja2VuZCBmb3IgV2ViR0wuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBpbmNsdWRlL3BsYXRmb3JtL0ZlYXR1cmVzR0wuaDoKKyAg
ICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvU3RhdGVNYW5hZ2VyR0wuY3BwOgorICAg
ICAgICAocng6OlN0YXRlTWFuYWdlckdMOjpiaW5kRnJhbWVidWZmZXIpOgorICAgICAgICAqIHNy
Yy9saWJBTkdMRS9yZW5kZXJlci9nbC9yZW5kZXJlcmdsX3V0aWxzLmNwcDoKKyAgICAgICAgKHJ4
OjpuYXRpdmVnbF9nbDo6SW5pdGlhbGl6ZUZlYXR1cmVzKToKKwogMjAyMC0wMS0wNCAgS2VubmV0
aCBSdXNzZWxsICA8a2JyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
aU9TIFNpbXVsYXRvciB0byBBTkdMRSBiYWNrZW5kIGZvciBXZWJHTApkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9wbGF0Zm9ybS9GZWF0dXJlc0dMLmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL0ZlYXR1cmVzR0wuaAppbmRleCBl
YzcwYzc5NzEwZGM2YmMwYzQxOTkxMGQ4ZTk0ZTM4NDliMDYzMTk3Li4xNWUyZDkxMTgxOTQzMDRi
YTdmNzI4NDhmOTk5ZGFlNGY1MDE1OWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9pbmNsdWRlL3BsYXRmb3JtL0ZlYXR1cmVzR0wuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL0ZlYXR1cmVzR0wuaApAQCAtMzg2LDYgKzM4NiwxNiBA
QCBzdHJ1Y3QgRmVhdHVyZXNHTCA6IEZlYXR1cmVTZXRCYXNlCiAgICAgICAgICJBbGwgTWFjIGRy
aXZlcnMgZG8gbm90IGhhbmRsZSBzdHJ1Y3Qgc2NvcGVzIGNvcnJlY3RseS4gVGhpcyB3b3JrYXJv
dW5kIG92ZXJ3cml0ZXMgYSBzdHJ1Y3QiCiAgICAgICAgICJuYW1lIHdpdGggYSB1bmlxdWUgcHJl
Zml4LiIsCiAgICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2NyYnVnLmNvbS80MDM5NTcifTsKKwor
ICAgIC8vIEludGVsIGRyaXZlcnMgb24gTWFjIC0gYXBwYXJlbnRseSBmb3IgYm90aCBvbGRlciBh
bmQgY3VycmVudCBHUFVzIC0gaGF2ZQorICAgIC8vIGJ1Z3Mgd2hlcmUgY2VydGFpbiBvcGVyYXRp
b25zIGNhbiBiZSByZW9yZGVyZWQgYWNyb3NzIGdsQmluZEZyYW1lYnVmZmVyCisgICAgLy8gY2Fs
bHMuIEZsdXNoaW5nIGJlZm9yZSBhbmQgYWZ0ZXIgZ2xCaW5kRnJhbWVidWZmZXIgd29ya3MgYXJv
dW5kIHRoZXNlLgorICAgIC8vIFRoZXNlIGJ1Z3MgbWF5IGV4aXN0IG9uIG90aGVyIHBsYXRmb3Jt
cy4KKyAgICBGZWF0dXJlIGZsdXNoQmVmb3JlQW5kQWZ0ZXJCaW5kRnJhbWVidWZmZXIgPSB7Cisg
ICAgICAgICJmbHVzaF9iZWZvcmVfYW5kX2FmdGVyX2JpbmRmcmFtZWJ1ZmZlciIsIEZlYXR1cmVD
YXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCisgICAgICAgICJJbnRlbCBkcml2ZXJzIChvbiBN
YWMsIHBvc3NpYmx5IG90aGVyIHBsYXRmb3JtcykgaW5jb3JyZWN0bHkgcmVvcmRlciBzb21lIG9w
ZXJhdGlvbnMiCisgICAgICAgICIgYWNyb3NzIGdsQmluZEZyYW1lYnVmZmVyIGNhbGxzLiBGbHVz
aCBiZWZvcmUgYW5kIGFmdGVyIGFzIGEgd29ya2Fyb3VuZC4iLAorICAgICAgICAmbWVtYmVycywg
Imh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDI2NyJ9OwogfTsKIAogaW5saW5lIEZlYXR1cmVzR0w6OkZl
YXR1cmVzR0woKSAgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL1N0YXRlTWFuYWdlckdMLmNwcCBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9TdGF0ZU1hbmFnZXJHTC5j
cHAKaW5kZXggNTA3NThlN2IwN2VmMzhmNDRlYjU4ZjM1Yzk3MjY1OWY5MmM3NTNiNy4uYTNkOTc2
NzRiOTdmMmRlYWUzMjZmMzc5MTIxYjJmNmY0M2M3YzFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL1N0YXRlTWFuYWdlckdMLmNw
cAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wv
U3RhdGVNYW5hZ2VyR0wuY3BwCkBAIC01ODUsNiArNTg1LDEwIEBAIHZvaWQgU3RhdGVNYW5hZ2Vy
R0w6OnNldFBpeGVsUGFja0J1ZmZlcihjb25zdCBnbDo6QnVmZmVyICpwaXhlbEJ1ZmZlcikKIAog
dm9pZCBTdGF0ZU1hbmFnZXJHTDo6YmluZEZyYW1lYnVmZmVyKEdMZW51bSB0eXBlLCBHTHVpbnQg
ZnJhbWVidWZmZXIpCiB7CisgICAgYm9vbCBmbHVzaEJlZm9yZUFuZEFmdGVyID0gbUZlYXR1cmVz
LmZsdXNoQmVmb3JlQW5kQWZ0ZXJCaW5kRnJhbWVidWZmZXIuZW5hYmxlZDsKKyAgICBpZiAoZmx1
c2hCZWZvcmVBbmRBZnRlcikKKyAgICAgICAgbUZ1bmN0aW9ucy0+Zmx1c2goKTsKKwogICAgIHN3
aXRjaCAodHlwZSkKICAgICB7CiAgICAgICAgIGNhc2UgR0xfRlJBTUVCVUZGRVI6CkBAIC02MjQs
NiArNjI4LDkgQEAgdm9pZCBTdGF0ZU1hbmFnZXJHTDo6YmluZEZyYW1lYnVmZmVyKEdMZW51bSB0
eXBlLCBHTHVpbnQgZnJhbWVidWZmZXIpCiAgICAgICAgICAgICBVTlJFQUNIQUJMRSgpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgfQorCisgICAgaWYgKGZsdXNoQmVmb3JlQW5kQWZ0ZXIpCisg
ICAgICAgIG1GdW5jdGlvbnMtPmZsdXNoKCk7CiB9CiAKIHZvaWQgU3RhdGVNYW5hZ2VyR0w6OmJp
bmRSZW5kZXJidWZmZXIoR0xlbnVtIHR5cGUsIEdMdWludCByZW5kZXJidWZmZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvcmVu
ZGVyZXJnbF91dGlscy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUv
cmVuZGVyZXIvZ2wvcmVuZGVyZXJnbF91dGlscy5jcHAKaW5kZXggMDJmMmRlMzAzYzYyNDczZTM4
MTNhY2M0NmY4Njg3MTY0MTllNWVjYy4uYzQ0MWQ2ODk3OTRhY2I2NzlmZGY4NGRkNTcwYjM4YTkw
NjZhY2M0YSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xF
L3JlbmRlcmVyL2dsL3JlbmRlcmVyZ2xfdXRpbHMuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9yZW5kZXJlcmdsX3V0aWxzLmNwcApAQCAt
MTYwMyw2ICsxNjAzLDkgQEAgdm9pZCBJbml0aWFsaXplRmVhdHVyZXMoY29uc3QgRnVuY3Rpb25z
R0wgKmZ1bmN0aW9ucywgYW5nbGU6OkZlYXR1cmVzR0wgKmZlYXR1cmUKIAogICAgIC8vIFBvcnRl
ZCBmcm9tIGdwdV9kcml2ZXJfYnVnX2xpc3QuanNvbiAoIzE4NCkKICAgICBBTkdMRV9GRUFUVVJF
X0NPTkRJVElPTihmZWF0dXJlcywgcHJlQWRkVGV4ZWxGZXRjaE9mZnNldHMsIElzQXBwbGUoKSAm
JiBpc0ludGVsKTsKKworICAgIC8vIGFuZ2xlYnVnLmNvbS80MjY3CisgICAgQU5HTEVfRkVBVFVS
RV9DT05ESVRJT04oZmVhdHVyZXMsIGZsdXNoQmVmb3JlQW5kQWZ0ZXJCaW5kRnJhbWVidWZmZXIs
IElzQXBwbGUoKSAmJiBpc0ludGVsKTsKIH0KIAogdm9pZCBJbml0aWFsaXplRnJvbnRlbmRGZWF0
dXJlcyhjb25zdCBGdW5jdGlvbnNHTCAqZnVuY3Rpb25zLCBhbmdsZTo6RnJvbnRlbmRGZWF0dXJl
cyAqZmVhdHVyZXMpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>