<?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>129419</bug_id>
          
          <creation_ts>2014-02-27 01:50:02 -0800</creation_ts>
          <short_desc>[GTK] Wrong GL context when destroying textures</short_desc>
          <delta_ts>2019-06-12 20:57:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Iago Toral">itoral</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mawww</cc>
    
    <cc>mrobinson</cc>
    
    <cc>roger_fong</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>985082</commentid>
    <comment_count>0</comment_count>
    <who name="Iago Toral">itoral</who>
    <bug_when>2014-02-27 01:50:02 -0800</bug_when>
    <thetext>Destroying a WebPage can trigger destruction of GL textures (via GraphicsContext3D) and we should make sure that the right GL context is bound when this happens. When closing a tab in Epiphany, it can happen that the wrong context is bound when textures are destroyed this way.

In theory, GraphicsContext3D should prevent this since it calls makeContextCurrent before executing GL commands, however, this only works when GraphicsContext3DPrivate is created with renderStyle GraphicsContext3D::RenderOffscreen. When renderStyle is GraphicsContext3D::RenderToCurrentGLContext GraphicsContext3D will be created with the currently bound GL context but won&apos;t hold a reference to it so its makeContextCurrent calls translate to no-op leaving it up to the client code to ensure that the right GL context is bound every time that the GraphicsContext3D instance is used.

This does not currently happen and thus destroying textures as part of the WebPage tear down process can produce removal of GL textures from the wrong GL context. This does not have a visible impact since all our GL contexts have a sharing context that makes sure that they all share the namespace and hence the objects, but it is a problem when we don&apos;t have a valid sharing context (which is a temporary situation for me while I am working on Wayland support). Even if having a common sharing context for all our GL contexts prevents this from actually being harmful, it is a bug that can affect new developments like the one I am doing right now and when it happens it can be hard to track down, so I think it is worth fixing.

I think the best solution for this is to have GraphicsContext3D hold a reference to the active context in use when it is created also with renderStyle GraphicsContext3D::RenderToCurrentGLContext. Actually, the Nix port was doing this before, I guess because they ran into this problem at some point. I&apos;ll attach a patch to do this shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985083</commentid>
    <comment_count>1</comment_count>
      <attachid>225350</attachid>
    <who name="Iago Toral">itoral</who>
    <bug_when>2014-02-27 02:03:20 -0800</bug_when>
    <thetext>Created attachment 225350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985177</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-02-27 08:28:15 -0800</bug_when>
    <thetext>Do you have the callstack for this failure? I hope we can fix it without adding another abstraction over EGL and GLX. We already have plenty of those in the source tree. :) The other potential issue I see here is that whether to use EGL or GLX is a runtime decision, not a compile-time one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985476</commentid>
    <comment_count>3</comment_count>
    <who name="Iago Toral">itoral</who>
    <bug_when>2014-02-27 23:26:02 -0800</bug_when>
    <thetext>The risk I see with a different approach to fixing the problem is that we may be taking an error-prone path by having clients be responsible of always binding the right GL context before any GraphicsContext3D GL operation is done. Actually, it kind of feels wrong considering that GraphicsContext3D is already calling makeContextCurrent to take care of this, but I trust your judgment here better than mine :). I agree that the number of abstractions related with the GL context is already important. Doing a run-time decision between EGL and GLX is easy though.

A least one other way to fix this that I tried was to to invalidate the LayerTreeHost instance ASAP in WebPage::close (before FrameLoader::detachFromParent). That works because it will bind and then destroy the GL context before anything else is destroyed. It would be a one line patch, so let me know if you prefer that solution better and I&apos;ll provide the patch.

For reference, this is the stack trace leading to the problem:

#0  _mesa_delete_texture_object (ctx=0x2158de8, texObj=0x2c07880) at main/texobj.c:224
#1  0x00007fc01f3a4e74 in intelDeleteTextureObject (ctx=0x2158de8, texObj=0x2c07880) at intel_tex.c:56
#2  0x00007fc01f15cfc7 in _mesa_reference_texobj_ (ptr=0x7fff27a5ffc0, tex=0x0) at main/texobj.c:392
#3  0x00007fc01f15c5d3 in _mesa_reference_texobj (ptr=0x7fff27a5ffc0, tex=0x0) at main/texobj.h:81
#4  0x00007fc01f15e35a in _mesa_DeleteTextures (n=1, textures=0x7fff27a6001c) at main/texobj.c:1193
#5  0x00007fc0905bc09b in glDeleteTextures (n=1, textures=0x7fff27a6001c) at ../../../src/mapi/glapi/glapi_mapi_tmp.h:3810
#6  0x00007fc094da20a6 in WebCore::GraphicsContext3D::deleteTexture(unsigned int) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#7  0x00007fc094a1b604 in WebCore::BitmapTextureGL::~BitmapTextureGL() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#8  0x00007fc094a1b619 in WebCore::BitmapTextureGL::~BitmapTextureGL() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#9  0x00007fc094a3307d in WTF::Vector&lt;WebCore::TextureMapperTile, 0ul, WTF::CrashOnOverflow&gt;::shrink(unsigned long) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#10 0x00007fc094a331a7 in WebCore::TextureMapperTiledBackingStore::~TextureMapperTiledBackingStore() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#11 0x00007fc094a2fce6 in WebCore::TextureMapperLayer::~TextureMapperLayer() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#12 0x00007fc094a2fd79 in WebCore::TextureMapperLayer::~TextureMapperLayer() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#13 0x00007fc094a26431 in WebCore::GraphicsLayerTextureMapper::~GraphicsLayerTextureMapper() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#14 0x00007fc094a26479 in WebCore::GraphicsLayerTextureMapper::~GraphicsLayerTextureMapper() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#15 0x00007fc0948f4751 in WebCore::RenderLayerBacking::destroyGraphicsLayers() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#16 0x00007fc0948f6029 in WebCore::RenderLayerBacking::~RenderLayerBacking() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#17 0x00007fc0948f6159 in WebCore::RenderLayerBacking::~RenderLayerBacking() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#18 0x00007fc0948e7141 in WebCore::RenderLayer::clearBacking(bool) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#19 0x00007fc0948e729a in WebCore::RenderLayer::~RenderLayer() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#20 0x00007fc0948e74f9 in WebCore::RenderLayer::~RenderLayer() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#21 0x00007fc094927ec1 in WebCore::RenderObject::willBeDestroyed() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#22 0x00007fc09492d1ed in WebCore::RenderObject::destroy() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#23 0x00007fc0949dae7e in WebCore::Style::detachRenderTree(WebCore::Element&amp;, WebCore::Style::DetachType) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#24 0x00007fc0949dad9b in WebCore::Style::detachChildren(WebCore::ContainerNode&amp;, WebCore::Style::DetachType) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#25 0x00007fc0949dadfb in WebCore::Style::detachRenderTree(WebCore::Element&amp;, WebCore::Style::DetachType) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#26 0x00007fc0949dad9b in WebCore::Style::detachChildren(WebCore::ContainerNode&amp;, WebCore::Style::DetachType) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#27 0x00007fc0949dadfb in WebCore::Style::detachRenderTree(WebCore::Element&amp;, WebCore::Style::DetachType) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#28 0x00007fc0949dad9b in WebCore::Style::detachChildren(WebCore::ContainerNode&amp;, WebCore::Style::DetachType) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#29 0x00007fc0949dadfb in WebCore::Style::detachRenderTree(WebCore::Element&amp;, WebCore::Style::DetachType) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#30 0x00007fc0949dad9b in WebCore::Style::detachChildren(WebCore::ContainerNode&amp;, WebCore::Style::DetachType) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#31 0x00007fc0949dadfb in WebCore::Style::detachRenderTree(WebCore::Element&amp;, WebCore::Style::DetachType) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#32 0x00007fc0949dad9b in WebCore::Style::detachChildren(WebCore::ContainerNode&amp;, WebCore::Style::DetachType) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#33 0x00007fc0949dadfb in WebCore::Style::detachRenderTree(WebCore::Element&amp;, WebCore::Style::DetachType) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#34 0x00007fc0949dad9b in WebCore::Style::detachChildren(WebCore::ContainerNode&amp;, WebCore::Style::DetachType) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#35 0x00007fc0949dadfb in WebCore::Style::detachRenderTree(WebCore::Element&amp;, WebCore::Style::DetachType) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#36 0x00007fc0943f52d7 in WebCore::Document::destroyRenderTree() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#37 0x00007fc0944000c5 in WebCore::Document::prepareForDestruction() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#38 0x00007fc0947bedc8 in WebCore::Frame::setView(WTF::PassRefPtr&lt;WebCore::FrameView&gt;) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#39 0x00007fc0947297d3 in WebCore::FrameLoader::detachFromParent() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#40 0x00007fc0941e6df5 in WebKit::WebPage::close() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#41 0x00007fc094210b54 in WebKit::WebPage::didReceiveWebPageMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&amp;) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#42 0x00007fc0952fec7b in CoreIPC::MessageReceiverMap::dispatchMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&amp;) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#43 0x00007fc0941f1e16 in WebKit::WebProcess::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&amp;) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#44 0x00007fc0952f8e2b in CoreIPC::Connection::dispatchMessage(std::unique_ptr&lt;CoreIPC::MessageDecoder, std::default_delete&lt;CoreIPC::MessageDecoder&gt; &gt;) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#45 0x00007fc0952f8f73 in CoreIPC::Connection::dispatchOneMessage() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#46 0x00007fc0935076d8 in WTF::RunLoop::performWork() () from /home/itoral/Devel/Gnome/bin/lib64/libjavascriptcoregtk-3.0.so.0
#47 0x00007fc093514459 in WTF::RunLoop::queueWork(WTF::RunLoop*) () from /home/itoral/Devel/Gnome/bin/lib64/libjavascriptcoregtk-3.0.so.0
#48 0x00007fc090153d7b in g_idle_dispatch (source=0x7fc03c0022e0, callback=0x7fc093514450 &lt;WTF::RunLoop::queueWork(WTF::RunLoop*)&gt;, user_data=0x7fc087352d90) at gmain.c:5280
#49 0x00007fc0901514e0 in g_main_dispatch (context=0xcf7ac0) at gmain.c:3066
#50 0x00007fc09015220e in g_main_context_dispatch (context=0xcf7ac0) at gmain.c:3641
#51 0x00007fc0901523fe in g_main_context_iterate (context=0xcf7ac0, block=1, dispatch=1, self=0xce1920) at gmain.c:3712
#52 0x00007fc09015282e in g_main_loop_run (loop=0xd14590) at gmain.c:3906
#53 0x00007fc094176b2d in WebProcessMainGtk () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#54 0x00007fc093874de5 in __libc_start_main (main=0x400750 &lt;main&gt;, argc=2, ubp_av=0x7fff27a60a18, init=&lt;optimized out&gt;, fini=&lt;optimized out&gt;, rtld_fini=&lt;optimized out&gt;, 
    stack_end=0x7fff27a60a08) at libc-start.c:260
#55 0x000000000040077e in _start ()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986868</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-03-04 10:40:01 -0800</bug_when>
    <thetext>Okay. I think your original approach is the way to go, but I hope we can find a way to do it without adding another class. :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987213</commentid>
    <comment_count>5</comment_count>
    <who name="Iago Toral">itoral</who>
    <bug_when>2014-03-05 04:06:32 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Okay. I think your original approach is the way to go, but I hope we can find a way to do it without adding another class. :/

Unfortunately my patch seems to work well always when going through EGL but when going with the GLX path it seems that some times it does not work, so this solution is not 100% reliable in all cases.

I guess this still needs more investigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987217</commentid>
    <comment_count>6</comment_count>
    <who name="Iago Toral">itoral</who>
    <bug_when>2014-03-05 05:16:34 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Okay. I think your original approach is the way to go, but I hope we can find a way to do it without adding another class. :/
&gt; 
&gt; Unfortunately my patch seems to work well always when going through EGL but when going with the GLX path it seems that some times it does not work, so this solution is not 100% reliable in all cases.
&gt; 
&gt; I guess this still needs more investigation.

Found the reason:

The problem is that the tear down sequence in WebPage::close goes so that WebCore::FrameLoader::detachFromParent() is called first (this will produce destruction of GL objects via GraphicsContext3D) and then the drawing area is destroyed (which invalidates the layer tree host).

I was working under the assumption that this tear down sequence is always like that and hence making sure that only the destruction of the layer tree host&apos;s context would destroy the actual GL context (that is, the pixmaps, surfaces, etc) but in some unusual circumstances it looks like LayerTreeHostGtk::invalidate can be called before WebPage::close. This happens due to a timer like this:

#1  0x00007fb9e4fdb9a3 in WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#2  0x00007fb9e431f5e2 in WTF::RunLoop::TimerBase::timerFiredCallback(WTF::RunLoop::TimerBase*) () from /home/itoral/Devel/Gnome/bin/lib64/libjavascriptcoregtk-3.0.so.0
#3  0x00007fb9e0f5e206 in g_timeout_dispatch (source=0x37d0310, callback=0x7fb9e431f5c0 &lt;WTF::RunLoop::TimerBase::timerFiredCallback(WTF::RunLoop::TimerBase*)&gt;, 
    user_data=0x3502d30) at gmain.c:4450
#4  0x00007fb9e0f5c4e0 in g_main_dispatch (context=0xf50ac0) at gmain.c:3066
#5  0x00007fb9e0f5d20e in g_main_context_dispatch (context=0xf50ac0) at gmain.c:3641

This creates a problem because we can only allow the underlying GL context to be really destroyed when we know for sure that both the layer tree host and the GraphicsContext3D are done with it which, according to this, can happen in any order.

I think the way to fix this would be to make the GLContext instance used by both the layer tree host and the GraphicsContext3D a RefPtr instead of an OwnPtr. I think this would allow us to just use the same GLContext instance for both and make sure it won&apos;t be destroyed until both objects are done with it. This would require to change the signature of the GLContext::create*() functions.

Martin, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987257</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-03-05 07:49:03 -0800</bug_when>
    <thetext>(In reply to comment #6)

&gt; I think the way to fix this would be to make the GLContext instance used by both the layer tree host and the GraphicsContext3D a RefPtr instead of an OwnPtr. I think this would allow us to just use the same GLContext instance for both and make sure it won&apos;t be destroyed until both objects are done with it. This would require to change the signature of the GLContext::create*() functions.

It seems a bit suspicious that the GraphicsContext3D is destroyed before the layer tree host. What owns the graphics context?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987594</commentid>
    <comment_count>8</comment_count>
    <who name="Iago Toral">itoral</who>
    <bug_when>2014-03-06 00:19:03 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; 
&gt; &gt; I think the way to fix this would be to make the GLContext instance used by both the layer tree host and the GraphicsContext3D a RefPtr instead of an OwnPtr. I think this would allow us to just use the same GLContext instance for both and make sure it won&apos;t be destroyed until both objects are done with it. This would require to change the signature of the GLContext::create*() functions.
&gt; 
&gt; It seems a bit suspicious that the GraphicsContext3D is destroyed before the layer tree host. What owns the graphics context?

The TextureMapperGL has a reference to a GraphicsContext3D that it creates in its constructor, but it is a RefPtr.

TextureMapperGLData, which is also created in the TextureMapperGL constuctor, seems to hold another RefPtr to the same pointer of the graphics context.

Then all the instances of BitmapTextureGL created with the texture mapper also have a RefPtr to the GraphicsContext3D instance.

Typically, the GraphicsContext3D is destroyed with the texture mapper like this:

#0  0x00007fa1241580d0 in WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#1  0x00007fa124157bd6 in WebCore::GraphicsContext3D::~GraphicsContext3D() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#2  0x00007fa123a31408 in WebCore::TextureMapperGL::~TextureMapperGL() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#3  0x00007fa123a31449 in WebCore::TextureMapperGL::~TextureMapperGL() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#4  0x00007fa12320c6b0 in WebKit::LayerTreeHostGtk::invalidate() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#5  0x00007fa1231e0199 in WebKit::DrawingAreaImpl::~DrawingAreaImpl() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#6  0x00007fa1231e0289 in WebKit::DrawingAreaImpl::~DrawingAreaImpl() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#7  0x00007fa1231f915d in WebKit::WebPage::close() () from /home/itoral/Devel

However, this can also happen some times:

#0  0x00007fa1241580d0 in WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#1  0x00007fa124157bd6 in WebCore::GraphicsContext3D::~GraphicsContext3D() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#2  0x00007fa123a2d827 in WebCore::BitmapTextureGL::~BitmapTextureGL() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#3  0x00007fa123a2d8f9 in WebCore::BitmapTextureGL::~BitmapTextureGL() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#4  0x00007fa123a4533d in WTF::Vector&lt;WebCore::TextureMapperTile, 0ul, WTF::CrashOnOverflow&gt;::shrink(unsigned long) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#5  0x00007fa123a45467 in WebCore::TextureMapperTiledBackingStore::~TextureMapperTiledBackingStore() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#6  0x00007fa123a41fa6 in WebCore::TextureMapperLayer::~TextureMapperLayer() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#7  0x00007fa123a42039 in WebCore::TextureMapperLayer::~TextureMapperLayer() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#8  0x00007fa123a386f1 in WebCore::GraphicsLayerTextureMapper::~GraphicsLayerTextureMapper() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#9  0x00007fa123a38739 in WebCore::GraphicsLayerTextureMapper::~GraphicsLayerTextureMapper() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#10 0x00007fa1239069f1 in WebCore::RenderLayerBacking::destroyGraphicsLayers() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#11 0x00007fa1239082c9 in WebCore::RenderLayerBacking::~RenderLayerBacking() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#12 0x00007fa1239083f9 in WebCore::RenderLayerBacking::~RenderLayerBacking() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#13 0x00007fa1238f93e1 in WebCore::RenderLayer::clearBacking(bool) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#14 0x00007fa1238f953a in WebCore::RenderLayer::~RenderLayer() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#15 0x00007fa1238f9799 in WebCore::RenderLayer::~RenderLayer() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#16 0x00007fa12393a161 in WebCore::RenderObject::willBeDestroyed() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#17 0x00007fa12393f48d in WebCore::RenderObject::destroy() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#18 0x00007fa1239ed11e in WebCore::Style::detachRenderTree(WebCore::Element&amp;, WebCore::Style::DetachType) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#19 0x00007fa1239ed03b in WebCore::Style::detachChildren(WebCore::ContainerNode&amp;, WebCore::Style::DetachType) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#20 0x00007fa1239ed09b in WebCore::Style::detachRenderTree(WebCore::Element&amp;, WebCore::Style::DetachType) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#21 0x00007fa1239ed03b in WebCore::Style::detachChildren(WebCore::ContainerNode&amp;, WebCore::Style::DetachType) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#22 0x00007fa1239ed09b in WebCore::Style::detachRenderTree(WebCore::Element&amp;, WebCore::Style::DetachType) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#23 0x00007fa1239ed03b in WebCore::Style::detachChildren(WebCore::ContainerNode&amp;, WebCore::Style::DetachType) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#24 0x00007fa1239ed09b in WebCore::Style::detachRenderTree(WebCore::Element&amp;, WebCore::Style::DetachType) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#25 0x00007fa1239ed03b in WebCore::Style::detachChildren(WebCore::ContainerNode&amp;, WebCore::Style::DetachType) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#26 0x00007fa1239ed09b in WebCore::Style::detachRenderTree(WebCore::Element&amp;, WebCore::Style::DetachType) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#27 0x00007fa1239ed03b in WebCore::Style::detachChildren(WebCore::ContainerNode&amp;, WebCore::Style::DetachType) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#28 0x00007fa1239ed09b in WebCore::Style::detachRenderTree(WebCore::Element&amp;, WebCore::Style::DetachType) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#29 0x00007fa1239ed03b in WebCore::Style::detachChildren(WebCore::ContainerNode&amp;, WebCore::Style::DetachType) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#30 0x00007fa1239ed09b in WebCore::Style::detachRenderTree(WebCore::Element&amp;, WebCore::Style::DetachType) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#31 0x00007fa123407577 in WebCore::Document::destroyRenderTree() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#32 0x00007fa123412365 in WebCore::Document::prepareForDestruction() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#33 0x00007fa1237d1068 in WebCore::Frame::setView(WTF::PassRefPtr&lt;WebCore::FrameView&gt;) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#34 0x00007fa12373ba73 in WebCore::FrameLoader::detachFromParent() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#35 0x00007fa1231f9125 in WebKit::WebPage::close() () from /home/itoral/Devel

The error situation, which is a crash in the driver when trying to make current a context that is no longer valid, happens with this stack:

#0  0x00007f2c00c0b22b in intel_prepare_render (brw=0x302c4b0) at brw_context.c:1117
#1  0x00007f2c00c0ae42 in intelMakeCurrent (driContextPriv=0x2ff66d0, driDrawPriv=0x2fe75e0, driReadPriv=0x2fe75e0) at brw_context.c:964
#2  0x00007f2c00b8348b in driBindContext (pcp=0x2ff66d0, pdp=0x2fe75e0, prp=0x2fe75e0) at dri_util.c:543
#3  0x00007f2c81d0a3a9 in dri2_bind_context (context=0x4639810, old=0x7f2c81d444e0 &lt;dummyContext&gt;, draw=41949698, read=41949698) at dri2_glx.c:162
#4  0x00007f2c81cd044d in MakeContextCurrent (dpy=0x1bf6740, draw=41949698, read=41949698, gc_user=0x4639810) at glxcurrent.c:259
#5  0x00007f2c81cd056e in glXMakeCurrent (dpy=0x1bf6740, draw=41949698, gc=0x4639810) at glxcurrent.c:293
#6  0x00007f2c86a4edd3 in WebCore::GLContextGLX::makeContextCurrent() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#7  0x00007f2c864fa341 in WebCore::GraphicsContext3D::deleteTexture(unsigned int) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#8  0x00007f2c861738e4 in WebCore::BitmapTextureGL::~BitmapTextureGL() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#9  0x00007f2c861738f9 in WebCore::BitmapTextureGL::~BitmapTextureGL() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#10 0x00007f2c8618b33d in WTF::Vector&lt;WebCore::TextureMapperTile, 0ul, WTF::CrashOnOverflow&gt;::shrink(unsigned long) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#11 0x00007f2c8618b467 in WebCore::TextureMapperTiledBackingStore::~TextureMapperTiledBackingStore() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#12 0x00007f2c86187fa6 in WebCore::TextureMapperLayer::~TextureMapperLayer() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#13 0x00007f2c86188039 in WebCore::TextureMapperLayer::~TextureMapperLayer() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#14 0x00007f2c8617e6f1 in WebCore::GraphicsLayerTextureMapper::~GraphicsLayerTextureMapper() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#15 0x00007f2c8617e739 in WebCore::GraphicsLayerTextureMapper::~GraphicsLayerTextureMapper() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#16 0x00007f2c8604c9f1 in WebCore::RenderLayerBacking::destroyGraphicsLayers() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#17 0x00007f2c8604e2c9 in WebCore::RenderLayerBacking::~RenderLayerBacking() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#18 0x00007f2c8604e3f9 in WebCore::RenderLayerBacking::~RenderLayerBacking() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#19 0x00007f2c8603f3e1 in WebCore::RenderLayer::clearBacking(bool) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#20 0x00007f2c8603f53a in WebCore::RenderLayer::~RenderLayer() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#21 0x00007f2c8603f799 in WebCore::RenderLayer::~RenderLayer() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#22 0x00007f2c86080161 in WebCore::RenderObject::willBeDestroyed() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#23 0x00007f2c8608548d in WebCore::RenderObject::destroy() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#24 0x00007f2c8613311e in WebCore::Style::detachRenderTree(WebCore::Element&amp;, WebCore::Style::DetachType) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#25 0x00007f2c8613303b in WebCore::Style::detachChildren(WebCore::ContainerNode&amp;, WebCore::Style::DetachType) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#26 0x00007f2c8613309b in WebCore::Style::detachRenderTree(WebCore::Element&amp;, WebCore::Style::DetachType) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#27 0x00007f2c8613303b in WebCore::Style::detachChildren(WebCore::ContainerNode&amp;, WebCore::Style::DetachType) ()
   from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#28 0x00007f2c8613309b in WebCore::Style::detachRenderTree(WebCore::Element&amp;, WebCore::Style::DetachType) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#29 0x00007f2c85b4d577 in WebCore::Document::destroyRenderTree() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#30 0x00007f2c85b58365 in WebCore::Document::prepareForDestruction() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#31 0x00007f2c85f17068 in WebCore::Frame::setView(WTF::PassRefPtr&lt;WebCore::FrameView&gt;) () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#32 0x00007f2c85e81a73 in WebCore::FrameLoader::detachFromParent() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25
#33 0x00007f2c8593f125 in WebKit::WebPage::close() () from /home/itoral/Devel/Gnome/bin/lib64/libwebkit2gtk-3.0.so.25

And as far as I can see, when this happens the texture mapper was already destroyed (I suppose because of that timer function I mentioned in a previous comment), but it looks like some BitmapTextureGL objects still lived, keeping a reference to the GraphicsContext3D preventing its destruction, hence leading to the problem.

I don&apos;t know if this behavior is expected or is a bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151980</commentid>
    <comment_count>9</comment_count>
      <attachid>225350</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-01-02 09:34:25 -0800</bug_when>
    <thetext>Comment on attachment 225350
Patch

I don&apos;t understand OpenGL, but I do understand that this:

&quot;The problem is that the tear down sequence in WebPage::close goes so that WebCore::FrameLoader::detachFromParent() is called first (this will produce destruction of GL objects via GraphicsContext3D) and then the drawing area is destroyed (which invalidates the layer tree host).&quot;

Means you&apos;ve decided this patch is not ready. :) Removing from request queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544333</commentid>
    <comment_count>10</comment_count>
    <who name="Maxime Coste">mawww</who>
    <bug_when>2019-06-12 20:57:07 -0700</bug_when>
    <thetext>This triggers a crash here, with the following callstack:

#0  0x00007f02a32eae69 in glDeleteTextures () from /lib64/libGL.so.1
#1  0x00007f02a86f4ece in WebCore::BitmapTextureGL::~BitmapTextureGL (this=0x7f01dda6d210, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp:291
#2  0x00007f02a86f4f59 in WebCore::BitmapTextureGL::~BitmapTextureGL (this=0x7f01dda6d210, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp:288
#3  0x00007f02a73509e6 in WTF::RefCounted&lt;WebCore::BitmapTexture&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefCounted.h:142
#4  WTF::RefCounted&lt;WebCore::BitmapTexture&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefCounted.h:142
#5  WTF::derefIfNotNull&lt;WebCore::BitmapTexture&gt; (ptr=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:44
#6  WTF::RefPtr&lt;WebCore::BitmapTexture, WTF::DumbPtrTraits&lt;WebCore::BitmapTexture&gt; &gt;::~RefPtr (this=0x7f01ea017790, __in_chrg=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:69
#7  WebCore::TextureMapperTile::~TextureMapperTile (this=0x7f01ea017788, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/texmap/TextureMapperTile.h:42
#8  WebCore::CoordinatedBackingStoreTile::~CoordinatedBackingStoreTile (this=0x7f01ea017788, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:38
#9  WTF::KeyValuePair&lt;unsigned int, WebCore::CoordinatedBackingStoreTile&gt;::~KeyValuePair (this=0x7f01ea017780, __in_chrg=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/KeyValuePair.h:33
#10 WTF::HashTable&lt;unsigned int, WTF::KeyValuePair&lt;unsigned int, WebCore::CoordinatedBackingStoreTile&gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;unsigned int, WebCore::CoordinatedBackingStoreTile&gt; &gt;, WTF::IntHash&lt;unsigned int&gt;, WTF::HashMap&lt;unsigned int, WebCore::CoordinatedBackingStoreTile, WTF::IntHash&lt;unsigned int&gt;, WTF::HashTraits&lt;unsigned int&gt;, WTF::HashTraits&lt;WebCore::CoordinatedBackingStoreTile&gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;unsigned int&gt; &gt;::deallocateTable (size=&lt;optimized out&gt;, table=0x7f01ea017600)
    at DerivedSources/ForwardingHeaders/wtf/HashTable.h:1178
#11 WTF::HashTable&lt;unsigned int, WTF::KeyValuePair&lt;unsigned int, WebCore::CoordinatedBackingStoreTile&gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;unsigned int, WebCore::CoordinatedBackingStoreTile&gt; &gt;, WTF::IntHash&lt;unsigned int&gt;, WTF::HashMap&lt;unsigned int, WebCore::CoordinatedBackingStoreTile, WTF::IntHash&lt;unsigned int&gt;, WTF::HashTraits&lt;unsigned int&gt;, WTF::HashTraits&lt;WebCore::CoordinatedBackingStoreTile&gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;unsigned int&gt; &gt;::~HashTable (this=0x7f01e28c7078, __in_chrg=&lt;optimized out&gt;)
    at DerivedSources/ForwardingHeaders/wtf/HashTable.h:362
#12 WTF::HashMap&lt;unsigned int, WebCore::CoordinatedBackingStoreTile, WTF::IntHash&lt;unsigned int&gt;, WTF::HashTraits&lt;unsigned int&gt;, WTF::HashTraits&lt;WebCore::CoordinatedBackingStoreTile&gt; &gt;::~HashMap (this=0x7f01e28c7078, __in_chrg=&lt;optimized out&gt;)
    at DerivedSources/ForwardingHeaders/wtf/HashMap.h:35
#13 WebCore::CoordinatedBackingStore::~CoordinatedBackingStore (this=0x7f01e28c7060, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:63
#14 WebCore::CoordinatedBackingStore::~CoordinatedBackingStore (this=0x7f01e28c7060, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:63
#15 0x00007f02a7359ec6 in WTF::RefCounted&lt;WebCore::CoordinatedBackingStore&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefCounted.h:142
#16 WTF::RefCounted&lt;WebCore::CoordinatedBackingStore&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefCounted.h:142
#17 WTF::derefIfNotNull&lt;WebCore::CoordinatedBackingStore&gt; (ptr=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:44
#18 WTF::RefPtr&lt;WebCore::CoordinatedBackingStore, WTF::DumbPtrTraits&lt;WebCore::CoordinatedBackingStore&gt; &gt;::~RefPtr (this=0x224ee30, __in_chrg=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:69
#19 Nicosia::BackingStoreTextureMapperImpl::CompositionState::~CompositionState (this=0x224ee30, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/texmap/NicosiaBackingStoreTextureMapperImpl.h:100
#20 Nicosia::BackingStoreTextureMapperImpl::~BackingStoreTextureMapperImpl (this=0x224ede0, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/texmap/NicosiaBackingStoreTextureMapperImpl.h:43
#21 0x00007f02a7359ee9 in Nicosia::BackingStoreTextureMapperImpl::~BackingStoreTextureMapperImpl (this=0x224ede0, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/texmap/NicosiaBackingStoreTextureMapperImpl.h:43
#22 0x00007f02a7358369 in Nicosia::BackingStore::~BackingStore (this=0x7f01da988780, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:303
#23 0x00007f02a7358906 in WTF::ThreadSafeRefCounted&lt;Nicosia::BackingStore, (WTF::DestructionThread)0&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/ThreadSafeRefCounted.h:71
#24 WTF::ThreadSafeRefCounted&lt;Nicosia::BackingStore, (WTF::DestructionThread)0&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/ThreadSafeRefCounted.h:71
#25 WTF::derefIfNotNull&lt;Nicosia::BackingStore&gt; (ptr=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:44
#26 WTF::RefPtr&lt;Nicosia::BackingStore, WTF::DumbPtrTraits&lt;Nicosia::BackingStore&gt; &gt;::~RefPtr (this=0x7f0250a6c1d8, __in_chrg=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:69
#27 Nicosia::CompositionLayer::LayerState::~LayerState (this=0x7f0250a6c030, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:89
#28 Nicosia::CompositionLayer::{unnamed type#1}::~CompositionLayer() (this=0x7f0250a6c030, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:271
#29 Nicosia::CompositionLayer::~CompositionLayer (this=0x7f0250a6c000, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:70
#30 0x00007f02a7358e29 in Nicosia::CompositionLayer::~CompositionLayer (this=0x7f0250a6c000, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:70
#31 0x00007f02a7358ce6 in WTF::ThreadSafeRefCounted&lt;Nicosia::PlatformLayer, (WTF::DestructionThread)0&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/ThreadSafeRefCounted.h:71
#32 WTF::ThreadSafeRefCounted&lt;Nicosia::PlatformLayer, (WTF::DestructionThread)0&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/ThreadSafeRefCounted.h:71
#33 WTF::derefIfNotNull&lt;Nicosia::CompositionLayer&gt; (ptr=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:44
#34 WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt;::~RefPtr (this=0x7f01f2ad3f00, __in_chrg=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:69
#35 WTF::VectorDestructor&lt;true, WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt; &gt;::destruct (end=0x7f01f2ad3f18, begin=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:64
#36 WTF::VectorTypeOperations&lt;WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt; &gt;::destruct (end=0x7f01f2ad3f18, begin=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:243
#37 WTF::Vector&lt;WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt;, 0ul, WTF::CrashOnOverflow, 16ul&gt;::~Vector (this=0x7f0210144550, __in_chrg=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:675
#38 Nicosia::CompositionLayer::LayerState::~LayerState (this=0x7f02101443d0, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:89
#39 Nicosia::CompositionLayer::{unnamed type#1}::~CompositionLayer() (this=0x7f0210144030, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:271
#40 Nicosia::CompositionLayer::~CompositionLayer (this=0x7f0210144000, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:70
#41 0x00007f02a7358e29 in Nicosia::CompositionLayer::~CompositionLayer (this=0x7f0210144000, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:70
#42 0x00007f02a7358c46 in WTF::ThreadSafeRefCounted&lt;Nicosia::PlatformLayer, (WTF::DestructionThread)0&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/ThreadSafeRefCounted.h:71
#43 WTF::ThreadSafeRefCounted&lt;Nicosia::PlatformLayer, (WTF::DestructionThread)0&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/ThreadSafeRefCounted.h:71
#44 WTF::derefIfNotNull&lt;Nicosia::CompositionLayer&gt; (ptr=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:44
#45 WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt;::~RefPtr (this=0x7f012ced3320, __in_chrg=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:69
#46 WTF::VectorDestructor&lt;true, WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt; &gt;::destruct (end=0x7f012ced3328, begin=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:64
#47 WTF::VectorTypeOperations&lt;WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt; &gt;::destruct (end=0x7f012ced3328, begin=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:243
#48 WTF::Vector&lt;WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt;, 0ul, WTF::CrashOnOverflow, 16ul&gt;::~Vector (this=0x7f021f4919b0, __in_chrg=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:675
#49 Nicosia::CompositionLayer::LayerState::~LayerState (this=0x7f021f491830, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:89
#50 Nicosia::CompositionLayer::{unnamed type#1}::~CompositionLayer() (this=0x7f021f491830, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:271
#51 Nicosia::CompositionLayer::~CompositionLayer (this=0x7f021f491800, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:70
#52 0x00007f02a7358e29 in Nicosia::CompositionLayer::~CompositionLayer (this=0x7f021f491800, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:70
#53 0x00007f02a7358c46 in WTF::ThreadSafeRefCounted&lt;Nicosia::PlatformLayer, (WTF::DestructionThread)0&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/ThreadSafeRefCounted.h:71
#54 WTF::ThreadSafeRefCounted&lt;Nicosia::PlatformLayer, (WTF::DestructionThread)0&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/ThreadSafeRefCounted.h:71
#55 WTF::derefIfNotNull&lt;Nicosia::CompositionLayer&gt; (ptr=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:44
#56 WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt;::~RefPtr (this=0x7f012ced3318, __in_chrg=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:69
#57 WTF::VectorDestructor&lt;true, WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt; &gt;::destruct (end=0x7f012ced3320, begin=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:64
#58 WTF::VectorTypeOperations&lt;WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt; &gt;::destruct (end=0x7f012ced3320, begin=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:243
#59 WTF::Vector&lt;WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt;, 0ul, WTF::CrashOnOverflow, 16ul&gt;::~Vector (this=0x7f01e8de41b0, __in_chrg=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:675
#60 Nicosia::CompositionLayer::LayerState::~LayerState (this=0x7f01e8de4030, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:89
#61 Nicosia::CompositionLayer::{unnamed type#1}::~CompositionLayer() (this=0x7f01e8de4030, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:271
#62 Nicosia::CompositionLayer::~CompositionLayer (this=0x7f01e8de4000, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:70
#63 0x00007f02a7358e29 in Nicosia::CompositionLayer::~CompositionLayer (this=0x7f01e8de4000, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:70
#64 0x00007f02a7358c46 in WTF::ThreadSafeRefCounted&lt;Nicosia::PlatformLayer, (WTF::DestructionThread)0&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/ThreadSafeRefCounted.h:71
#65 WTF::ThreadSafeRefCounted&lt;Nicosia::PlatformLayer, (WTF::DestructionThread)0&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/ThreadSafeRefCounted.h:71
#66 WTF::derefIfNotNull&lt;Nicosia::CompositionLayer&gt; (ptr=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:44
#67 WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt;::~RefPtr (this=0x7f012ced3310, __in_chrg=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:69
#68 WTF::VectorDestructor&lt;true, WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt; &gt;::destruct (end=0x7f012ced3318, begin=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:64
#69 WTF::VectorTypeOperations&lt;WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt; &gt;::destruct (end=0x7f012ced3318, begin=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:243
#70 WTF::Vector&lt;WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt;, 0ul, WTF::CrashOnOverflow, 16ul&gt;::~Vector (this=0x7f01e8de47b0, __in_chrg=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:675
#71 Nicosia::CompositionLayer::LayerState::~LayerState (this=0x7f01e8de4630, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:89
#72 Nicosia::CompositionLayer::{unnamed type#1}::~CompositionLayer() (this=0x7f01e8de4630, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:271
#73 Nicosia::CompositionLayer::~CompositionLayer (this=0x7f01e8de4600, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:70
#74 0x00007f02a7358e29 in Nicosia::CompositionLayer::~CompositionLayer (this=0x7f01e8de4600, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:70
#75 0x00007f02a7358c46 in WTF::ThreadSafeRefCounted&lt;Nicosia::PlatformLayer, (WTF::DestructionThread)0&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/ThreadSafeRefCounted.h:71
#76 WTF::ThreadSafeRefCounted&lt;Nicosia::PlatformLayer, (WTF::DestructionThread)0&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/ThreadSafeRefCounted.h:71
#77 WTF::derefIfNotNull&lt;Nicosia::CompositionLayer&gt; (ptr=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:44
#78 WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt;::~RefPtr (this=0x7f01fa298510, __in_chrg=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:69
#79 WTF::VectorDestructor&lt;true, WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt; &gt;::destruct (end=0x7f01fa298520, begin=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:64
#80 WTF::VectorTypeOperations&lt;WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt; &gt;::destruct (end=0x7f01fa298520, begin=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:243
#81 WTF::Vector&lt;WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt;, 0ul, WTF::CrashOnOverflow, 16ul&gt;::~Vector (this=0x7f0250a5b9b0, __in_chrg=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:675
#82 Nicosia::CompositionLayer::LayerState::~LayerState (this=0x7f0250a5b830, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:89
#83 Nicosia::CompositionLayer::{unnamed type#1}::~CompositionLayer() (this=0x7f0250a5b830, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:271
#84 Nicosia::CompositionLayer::~CompositionLayer (this=0x7f0250a5b800, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:70
#85 0x00007f02a7358e29 in Nicosia::CompositionLayer::~CompositionLayer (this=0x7f0250a5b800, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:70
#86 0x00007f02a7358c46 in WTF::ThreadSafeRefCounted&lt;Nicosia::PlatformLayer, (WTF::DestructionThread)0&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/ThreadSafeRefCounted.h:71
#87 WTF::ThreadSafeRefCounted&lt;Nicosia::PlatformLayer, (WTF::DestructionThread)0&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/ThreadSafeRefCounted.h:71
#88 WTF::derefIfNotNull&lt;Nicosia::CompositionLayer&gt; (ptr=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:44
#89 WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt;::~RefPtr (this=0x7f012ced3308, __in_chrg=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:69
#90 WTF::VectorDestructor&lt;true, WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt; &gt;::destruct (end=0x7f012ced3310, begin=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:64
#91 WTF::VectorTypeOperations&lt;WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt; &gt;::destruct (end=0x7f012ced3310, begin=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:243
#92 WTF::Vector&lt;WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt;, 0ul, WTF::CrashOnOverflow, 16ul&gt;::~Vector (this=0x7f01dd6673b0, __in_chrg=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/Vector.h:675
#93 Nicosia::CompositionLayer::LayerState::~LayerState (this=0x7f01dd667230, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:89
#94 Nicosia::CompositionLayer::{unnamed type#1}::~CompositionLayer() (this=0x7f01dd667230, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:271
#95 Nicosia::CompositionLayer::~CompositionLayer (this=0x7f01dd667200, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:70
#96 0x00007f02a7358e29 in Nicosia::CompositionLayer::~CompositionLayer (this=0x7f01dd667200, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:70
#97 0x00007f02a735976b in WTF::ThreadSafeRefCounted&lt;Nicosia::PlatformLayer, (WTF::DestructionThread)0&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/ThreadSafeRefCounted.h:71
#98 WTF::ThreadSafeRefCounted&lt;Nicosia::PlatformLayer, (WTF::DestructionThread)0&gt;::deref (this=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/ThreadSafeRefCounted.h:71
#99 WTF::derefIfNotNull&lt;Nicosia::CompositionLayer&gt; (ptr=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:44
#100 WTF::RefPtr&lt;Nicosia::CompositionLayer, WTF::DumbPtrTraits&lt;Nicosia::CompositionLayer&gt; &gt;::~RefPtr (this=0x7f0212cb4278, __in_chrg=&lt;optimized out&gt;) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:69
#101 Nicosia::Scene::State::~State (this=0x7f0212cb4258, __in_chrg=&lt;optimized out&gt;) at ../Source/WebCore/platform/graphics/nicosia/NicosiaScene.h:49
#102 0x00007f02a73202c1 in WebKit::CompositingCoordinator::{unnamed type#1}::~CompositingCoordinator() (this=0x7f0212cb4250, __in_chrg=&lt;optimized out&gt;) at ../Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:121
#103 WebKit::CompositingCoordinator::~CompositingCoordinator (this=0x7f0212cb4210, __in_chrg=&lt;optimized out&gt;) at ../Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:62
#104 0x00007f02a732074a in WebKit::LayerTreeHost::~LayerTreeHost (this=0x7f0212cb41c8, __in_chrg=&lt;optimized out&gt;) at /usr/include/c++/8/bits/unique_ptr.h:347
#105 0x00007f02a7320a35 in std::default_delete&lt;WebKit::LayerTreeHost&gt;::operator() (this=&lt;optimized out&gt;, __ptr=0x7f0212cb41c8) at /usr/include/c++/8/bits/unique_ptr.h:75
#106 std::default_delete&lt;WebKit::LayerTreeHost&gt;::operator() (this=0x7f0292c77080, __ptr=0x7f0212cb41c8) at /usr/include/c++/8/bits/unique_ptr.h:75
#107 std::unique_ptr&lt;WebKit::LayerTreeHost, std::default_delete&lt;WebKit::LayerTreeHost&gt; &gt;::reset (__p=0x7f0212cb41c8, this=0x7f0292c77080) at /usr/include/c++/8/bits/unique_ptr.h:382
#108 std::unique_ptr&lt;WebKit::LayerTreeHost, std::default_delete&lt;WebKit::LayerTreeHost&gt; &gt;::operator=(decltype(nullptr)) (this=0x7f0292c77080) at /usr/include/c++/8/bits/unique_ptr.h:318
#109 WebKit::DrawingAreaCoordinatedGraphics::discardPreviousLayerTreeHost (this=0x7f0292c77000) at ../Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:487
#110 0x00007f02a6238e43 in WTF::RunLoop::TimerBase::&lt;lambda(gpointer)&gt;::operator() (__closure=0x0, userData=0x7f0292c77088) at ../Source/WTF/wtf/glib/RunLoopGLib.cpp:171
#111 WTF::RunLoop::TimerBase::&lt;lambda(gpointer)&gt;::_FUN(gpointer) () at ../Source/WTF/wtf/glib/RunLoopGLib.cpp:177
#112 0x00007f02a25d406d in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#113 0x00007f02a25d4438 in ?? () from /lib64/libglib-2.0.so.0
#114 0x00007f02a25d4762 in g_main_loop_run () from /lib64/libglib-2.0.so.0
#115 0x00007f02a6239270 in WTF::RunLoop::run () at ../Source/WTF/wtf/glib/RunLoopGLib.cpp:96
#116 0x00007f02a732e998 in WebKit::AuxiliaryProcessMain&lt;WebKit::WebProcess, WebKit::WebProcessMain&gt; (argc=&lt;optimized out&gt;, argv=0x7ffcde3aa338) at ../Source/WebKit/Shared/unix/AuxiliaryProcessMain.h:47
#117 0x00007f02a1ddc413 in __libc_start_main () from /lib64/libc.so.6
#118 0x0000000000400a5e in _start ()

Dump of assembler code for function glDeleteTextures:
   0x00007f02a32eae60 &lt;+0&gt;:	mov    %fs:0xfffffffffffffbb8,%rax
=&gt; 0x00007f02a32eae69 &lt;+9&gt;:	jmpq   *0xa38(%rax)

rax is zero here, as indicated by the %fs register usage, this is a thread local access, so I assume this is accessing the active GL context function table and it is currently null, which would mean we have no active GL context, likely because we deactivated it earlier in that stack of destructor calls.

This happens on http://svn.webkit.org/repository/webkit/trunk@246340</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225350</attachid>
            <date>2014-02-27 02:03:20 -0800</date>
            <delta_ts>2016-01-02 09:34:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-GTK-Wrong-GL-context-when-destroying-textures.patch</filename>
            <type>text/plain</type>
            <size>9428</size>
            <attacher name="Iago Toral">itoral</attacher>
            
              <data encoding="base64">RnJvbSBjOTlhYTIzZmY2MWI1ZjkyODQ0MWUxNjk0OWRkMmY2M2FkNjg1NTU3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJYWdvIFRvcmFsIFF1aXJvZ2EgPGl0b3JhbEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDI3IEZlYiAyMDE0IDEwOjU5OjE1ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
W0dUS10gV3JvbmcgR0wgY29udGV4dCB3aGVuIGRlc3Ryb3lpbmcgdGV4dHVyZXMKIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk0MTkKClJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgoKS2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBHTCBjb250ZXh0IGFs
c28gd2hlbiB3ZSBjcmVhdGUgYSBHcmFwaGljc0NvbnRleHQzRCB3aXRoIHJlbmRlcgpzdHlsZSBH
cmFwaGljc0NvbnRleHQzRDo6UmVuZGVyVG9DdXJyZW50R0xDb250ZXh0LiBUaGlzIHdpbGwgZW5z
dXJlIHRoYXQgR0wgY29tbWFuZHMgZXhlY3V0ZWQKdGhyb3VnaCB0aGUgZ3JhcGhpY3MgY29udGV4
dCB3aWxsIGFsd2F5cyBiaW5kIHRoZSByaWdodCBHTCBjb250ZXh0LgoKKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgoqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHA6
CihXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZSk6CiogcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEZyb21DdXJyZW50R0xYLmNw
cDogQWRkZWQuCihXZWJDb3JlOjpHTENvbnRleHRGcm9tQ3VycmVudEdMWDo6Y3JlYXRlRnJvbUN1
cnJlbnRHTENvbnRleHQpOgooV2ViQ29yZTo6R0xDb250ZXh0RnJvbUN1cnJlbnRHTFg6OkdMQ29u
dGV4dEZyb21DdXJyZW50R0xYKToKKFdlYkNvcmU6OkdMQ29udGV4dEZyb21DdXJyZW50R0xYOjpt
YWtlQ29udGV4dEN1cnJlbnQpOgooV2ViQ29yZTo6R0xDb250ZXh0RnJvbUN1cnJlbnRHTFg6Omlu
aXRpYWxpemUpOgoqIHBsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRGcm9tQ3VycmVudEdM
WC5oOiBBZGRlZC4KLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDIxICsrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtICAgICAgICAgICAgICAgICB8ICA4ICsrLQogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAgfCAxNSArKysrKysKIC4uLi9ncmFwaGljcy9nbHgvR0xD
b250ZXh0RnJvbUN1cnJlbnRHTFguY3BwICAgICAgIHwgNjIgKysrKysrKysrKysrKysrKysrKysr
KwogLi4uL2dyYXBoaWNzL2dseC9HTENvbnRleHRGcm9tQ3VycmVudEdMWC5oICAgICAgICAgfCA2
MCArKysrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgMTY0IGluc2VydGlvbnMo
KyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEZyb21DdXJyZW50R0xYLmNwcAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRG
cm9tQ3VycmVudEdMWC5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZlMWRkZmUuLjljMDQxMzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNCBAQAorMjAxNC0wMi0yNyAgSWFnbyBUb3JhbCBRdWlyb2dhICA8aXRv
cmFsQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gV3JvbmcgR0wgY29udGV4dCB3aGVuIGRl
c3Ryb3lpbmcgdGV4dHVyZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyOTQxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgR0wgY29udGV4dCBhbHNv
IHdoZW4gd2UgY3JlYXRlIGEgR3JhcGhpY3NDb250ZXh0M0Qgd2l0aCByZW5kZXIKKyAgICAgICAg
c3R5bGUgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclRvQ3VycmVudEdMQ29udGV4dC4gVGhpcyB3
aWxsIGVuc3VyZSB0aGF0IEdMIGNvbW1hbmRzIGV4ZWN1dGVkCisgICAgICAgIHRocm91Z2ggdGhl
IGdyYXBoaWNzIGNvbnRleHQgd2lsbCBhbHdheXMgYmluZCB0aGUgcmlnaHQgR0wgY29udGV4dC4K
KworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0RnJvbUN1cnJlbnRHTFguY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEZyb21DdXJyZW50R0xYOjpjcmVhdGVG
cm9tQ3VycmVudEdMQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRGcm9tQ3Vy
cmVudEdMWDo6R0xDb250ZXh0RnJvbUN1cnJlbnRHTFgpOgorICAgICAgICAoV2ViQ29yZTo6R0xD
b250ZXh0RnJvbUN1cnJlbnRHTFg6Om1ha2VDb250ZXh0Q3VycmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpHTENvbnRleHRGcm9tQ3VycmVudEdMWDo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEZyb21DdXJyZW50R0xYLmg6IEFkZGVkLgorCiAy
MDE0LTAyLTI3ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLiBGaXhpbmcgdGhlIEdUSyBidWlsZCBmaXggYWZ0ZXIgcjE2NDc1Ny4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDI4ZGY3YjAuLjI5MjIwNDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNjIyNiw3ICs2MjI2LDkgQEAgcGxhdGZvcm1ndGtf
c291cmNlcyArPSBcCiBpZiBVU0VfR0xYCiB3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguY3BwIFwKLQlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmgKKwlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmggXAorCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRGcm9tQ3VycmVudEdMWC5jcHAg
XAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRGcm9tQ3Vy
cmVudEdMWC5oCiBlbmRpZiAjIEVORCBVU0VfR0xYCiBlbHNlCiB3ZWJjb3JlX3NvdXJjZXMgKz0g
XApAQCAtNjI0OCw3ICs2MjUwLDkgQEAgZW5kaWYgIyBFTkQgVVNFX09QRU5HTAogaWYgVVNFX0VH
TAogd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWdsL0dMQ29udGV4dEVHTC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuaAogZW5kaWYgIyBFTkQg
VVNFX0VHTAogZWxzZQogaWYgVEFSR0VUX1dJTjMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcApp
bmRleCA5NTYxNjZkLi43NzBlYjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKQEAgLTI2
LDYgKzI2LDE0IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CiAKKyNpZiBQTEFURk9STShHVEspCisjaWYgVVNFKEVHTCkKKyNpbmNs
dWRlICJHTENvbnRleHRGcm9tQ3VycmVudEVHTC5oIgorI2VsaWYgVVNFKEdMWCkKKyNpbmNsdWRl
ICJHTENvbnRleHRGcm9tQ3VycmVudEdMWC5oIgorI2VuZGlmCisjZW5kaWYKKwogI2lmIFVTRShD
QUlSTykKICNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRDYWlyby5oIgogI2VuZGlmCkBAIC01OSw2
ICs2NywxMyBAQCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZShHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgRwogICAgICAgICBtX2dsQ29udGV4dCA9
IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dChHTENvbnRleHQ6OnNoYXJpbmdDb250
ZXh0KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5k
ZXJUb0N1cnJlbnRHTENvbnRleHQ6CisjaWYgUExBVEZPUk0oR1RLKQorI2lmIFVTRShFR0wpCisg
ICAgICAgIG1fZ2xDb250ZXh0ID0gR0xDb250ZXh0RnJvbUN1cnJlbnRFR0w6OmNyZWF0ZUZyb21D
dXJyZW50R0xDb250ZXh0KCk7CisjZWxpZiBVU0UoR0xYKQorICAgICAgICBtX2dsQ29udGV4dCA9
IEdMQ29udGV4dEZyb21DdXJyZW50R0xYOjpjcmVhdGVGcm9tQ3VycmVudEdMQ29udGV4dCgpOwor
I2VuZGlmCisjZW5kaWYKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3c6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dM
Q29udGV4dEZyb21DdXJyZW50R0xYLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dseC9HTENvbnRleHRGcm9tQ3VycmVudEdMWC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uN2RkYmQ3OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRGcm9tQ3VycmVudEdMWC5jcHAKQEAgLTAs
MCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlCisgKiAgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkdMQ29udGV4dEZyb21DdXJyZW50R0xYLmgiCisKKyNpZiBVU0UoR0xYKQorCisjaW5jbHVk
ZSAiT3BlbkdMU2hpbXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPEdM
Q29udGV4dEZyb21DdXJyZW50R0xYPiBHTENvbnRleHRGcm9tQ3VycmVudEdMWDo6Y3JlYXRlRnJv
bUN1cnJlbnRHTENvbnRleHQoKQoreworICAgIGlmICghaW5pdGlhbGl6ZSgpKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEdMQ29udGV4dEZyb21DdXJy
ZW50R0xYKCkpOworfQorCitHTENvbnRleHRGcm9tQ3VycmVudEdMWDo6R0xDb250ZXh0RnJvbUN1
cnJlbnRHTFgoKQorICAgIDogbV9kaXNwbGF5KGdsWEdldEN1cnJlbnREaXNwbGF5KCkpCisgICAg
LCBtX3N1cmZhY2UoZ2xYR2V0Q3VycmVudERyYXdhYmxlKCkpCisgICAgLCBtX2NvbnRleHQoZ2xY
R2V0Q3VycmVudENvbnRleHQoKSkKK3sKK30KKworYm9vbCBHTENvbnRleHRGcm9tQ3VycmVudEdM
WDo6bWFrZUNvbnRleHRDdXJyZW50KCkKK3sKKyAgICBHTENvbnRleHQ6Om1ha2VDb250ZXh0Q3Vy
cmVudCgpOworICAgIHJldHVybiBnbFhNYWtlQ3VycmVudChtX2Rpc3BsYXksIG1fc3VyZmFjZSwg
bV9jb250ZXh0KTsKK30KKworYm9vbCBHTENvbnRleHRGcm9tQ3VycmVudEdMWDo6aW5pdGlhbGl6
ZSgpCit7CisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyAgICBzdGF0aWMg
Ym9vbCBzdWNjZXNzID0gdHJ1ZTsKKyAgICBpZiAoIWluaXRpYWxpemVkKSB7CisgICAgICAgIHN1
Y2Nlc3MgPSBpbml0aWFsaXplT3BlbkdMU2hpbXMoKTsKKyAgICAgICAgaW5pdGlhbGl6ZWQgPSB0
cnVlOworICAgIH0KKyAgICByZXR1cm4gc3VjY2VzczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gVVNFKEdMWCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRGcm9tQ3VycmVudEdMWC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEZyb21DdXJyZW50R0xYLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQyNWZmNgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRGcm9tQ3Vy
cmVudEdMWC5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZQor
ICogIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNpZm5kZWYgR0xD
b250ZXh0RnJvbUN1cnJlbnRHTFhfaAorI2RlZmluZSBHTENvbnRleHRGcm9tQ3VycmVudEdMWF9o
CisKKyNpZiBVU0UoR0xYKQorCisjaW5jbHVkZSAiR0xDb250ZXh0LmgiCisjaW5jbHVkZSA8R0wv
Z2x4Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR0xDb250ZXh0RnJvbUN1cnJl
bnRHTFggOiBwdWJsaWMgR0xDb250ZXh0IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHTENv
bnRleHRGcm9tQ3VycmVudEdMWCk7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8R0xD
b250ZXh0RnJvbUN1cnJlbnRHTFg+IGNyZWF0ZUZyb21DdXJyZW50R0xDb250ZXh0KCk7CisKKyAg
ICB2aXJ0dWFsIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0
dWFsIHZvaWQgc3dhcEJ1ZmZlcnMoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIEludFNpemUg
ZGVmYXVsdEZyYW1lQnVmZmVyU2l6ZSgpIG92ZXJyaWRlIHsgcmV0dXJuIEludFNpemUoKTsgfQor
ICAgIHZpcnR1YWwgY2Fpcm9fZGV2aWNlX3QqIGNhaXJvRGV2aWNlKCkgb3ZlcnJpZGUgeyByZXR1
cm4gMDsgfQorCisgICAgdmlydHVhbCBib29sIGNhblJlbmRlclRvRGVmYXVsdEZyYW1lYnVmZmVy
KCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFw
aGljc0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKSBvdmVycmlkZSB7IHJldHVybiB0aGlzOyB9
CisgICAgdmlydHVhbCB2b2lkIHdhaXROYXRpdmUoKSBvdmVycmlkZSB7IH0KKworcHJpdmF0ZToK
KyAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplKCk7CisKKyAgICBHTENvbnRleHRGcm9tQ3VycmVu
dEdMWCgpOworCisgICAgRGlzcGxheSogbV9kaXNwbGF5OworICAgIEdMWERyYXdhYmxlIG1fc3Vy
ZmFjZTsKKyAgICBHTFhDb250ZXh0IG1fY29udGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIFVTRShHTFgpCisKKyNlbmRpZiAvLyBHTENvbnRleHRGcm9tQ3Vy
cmVudEdMWF9oCi0tIAoxLjguMy4yCgo=
</data>
<flag name="review"
          id="249475"
          type_id="1"
          status="-"
          setter="mcatanzaro"
    />
    <flag name="commit-queue"
          id="249476"
          type_id="3"
          status="-"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>