<?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>204848</bug_id>
          
          <creation_ts>2019-12-04 05:33:20 -0800</creation_ts>
          <short_desc>[GStreamer] Crashes in MediaPlayerPrivateGStreamer::ensureGstGLContext</short_desc>
          <delta_ts>2019-12-09 01:19:03 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=201507</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1595450</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-12-04 05:33:20 -0800</bug_when>
    <thetext>When WebKit has somehow gotten itself into the &quot;bad state&quot; described in bug #201507, webpages that use GStreamerGL crash instead of falling back to non-AC mode. Once the mysterious bad state is achieved, it becomes 100% reproducible by loading https://riot.igalia.com.

Program terminated with signal SIGSEGV, Segmentation fault.
#0  WebCore::MediaPlayerPrivateGStreamer::ensureGstGLContext (
    this=0x7f8c214d5700)
    at ../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1916
1916	    GstGLPlatform glPlatform = webkitContext-&gt;isEGLContext() ? GST_GL_PLATFORM_EGL : GST_GL_PLATFORM_GLX;

(gdb) bt full
#0  0x00007f8ca4020e5a in WebCore::MediaPlayerPrivateGStreamer::ensureGstGLContext() (this=0x7f8c214d5700)
    at ../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1916
        sharedDisplay = &lt;optimized out&gt;
        shouldAdoptRef = true
        webkitContext = 0x0
        glPlatform = &lt;optimized out&gt;
        glAPI = &lt;optimized out&gt;
        contextHandle = &lt;optimized out&gt;
        previousActiveContext = &lt;optimized out&gt;
#1  0x00007f8ca4020e5a in WebCore::MediaPlayerPrivateGStreamer::ensureGstGLContext() (this=0x7f8c214d5700)
    at ../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1861
#2  0x00007f8ca40213f9 in WebCore::MediaPlayerPrivateGStreamer::requestGLContext(char const*)
    (this=0x7f8c214d5700, contextType=0x7f8ca42e2725 &quot;gst.gl.GLDisplay&quot;)
    at ../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1838
#3  0x00007f8ca402382c in WebCore::MediaPlayerPrivateGStreamer::ensureGLVideoSinkContext() (this=this@entry=0x7f8c214d5700)
    at ../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3700
#4  0x00007f8ca4023af8 in WebCore::MediaPlayerPrivateGStreamer::changePipelineState(GstState) (this=0x7f8c214d5700, newState=GST_STATE_PAUSED) at ../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1187
        currentState = GST_STATE_NULL
        pending = GST_STATE_VOID_PENDING
        __FUNCTION__ = &quot;changePipelineState&quot;
        setStateResult = &lt;optimized out&gt;
        pausedOrPlaying = &lt;optimized out&gt;
#5  0x00007f8ca401eff5 in WebCore::MediaPlayerPrivateGStreamer::commitLoad() (this=0x7f8c214d5700) at ../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:591
        __FUNCTION__ = &quot;commitLoad&quot;
#6  0x00007f8ca402f498 in WebCore::MediaPlayerPrivateGStreamer::loadFull(WTF::String const&amp;, WTF::String const&amp;) (this=0x7f8c214d5700, urlString=..., pipelineName=...) at ../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:550
        url = {m_string = {static MaxLength = 2147483647, m_impl = {static isRefPtr = &lt;error reading variable: Missing ELF symbol &quot;WTF::RefPtr&lt;WTF::StringImpl, WTF::DumbPtrTraits&lt;WTF::StringImpl&gt; &gt;::isRefPtr&quot;.&gt;, m_ptr = 0x7f8c318f96f0}}, m_isValid = 1, m_protocolIsInHTTPFamily = 1, m_cannotBeABaseURL = 0, m_portLength = 0, static maxPortLength = 7, static maxSchemeLength = 67108863, m_schemeEnd = 5, m_userStart = 8, m_userEnd = 8, m_passwordEnd = 8, m_hostEnd = 23, m_pathAfterLastSlash = 30, m_pathEnd = 41, m_queryEnd = 41}
        __FUNCTION__ = &quot;loadFull&quot;
#7  0x00007f8ca402f588 in WebCore::MediaPlayerPrivateGStreamer::load(WTF::String const&amp;) (this=&lt;optimized out&gt;, urlString=...) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:56
#8  0x00007f8ca39d5033 in WebCore::MediaPlayer::loadWithNextMediaEngine(WebCore::MediaPlayerFactory const*) (this=this@entry=0x7f8c31721398, current=current@entry=0x0) at DerivedSources/ForwardingHeaders/wtf/URL.h:94
        engine = &lt;optimized out&gt;
#9  0x00007f8ca39d533e in WebCore::MediaPlayer::load(WTF::URL const&amp;, WebCore::ContentType const&amp;, WTF::String const&amp;) (this=0x7f8c31721398, url=..., contentType=..., keySystem=...) at ../Source/WebCore/platform/graphics/MediaPlayer.cpp:410
        protectedThis = {static isRef = &lt;error reading variable: Missing ELF symbol &quot;WTF::Ref&lt;WebCore::MediaPlayer, WTF::DumbPtrTraits&lt;WebCore::MediaPlayer&gt; &gt;::isRef&quot;.&gt;, m_ptr = 0x7f8c31721398}
#10 0x00007f8ca3530a22 in WebCore::HTMLMediaElement::loadResource(WTF::URL const&amp;, WebCore::ContentType&amp;, WTF::String const&amp;) (this=this@entry=0x7f8c4a82f390, initialURL=..., contentType=..., keySystem=...) at ../Source/WebCore/html/HTMLMediaElement.cpp:1618
        frame = {static isRefPtr = &lt;error reading variable: Missing ELF symbol &quot;WTF::RefPtr&lt;WebCore::Frame, WTF::DumbPtrTraits&lt;WebCore::Frame&gt; &gt;::isRefPtr&quot;.&gt;, m_ptr = 0x7f8c9ad87000}
        page = &lt;optimized out&gt;
        url = {m_string = {static MaxLength = 2147483647, m_impl = {static isRefPtr = &lt;error reading variable: Missing ELF symbol &quot;WTF::RefPtr&lt;WTF::StringImpl, WTF::DumbPtrTraits&lt;WTF::StringImpl&gt; &gt;::isRefPtr&quot;.&gt;, m_ptr = 0x7f8c318f96f0}}, m_isValid = 1, m_protocolIsInHTTPFamily = 1, m_cannotBeABaseURL = 0, m_portLength = 0, static maxPortLength = 7, static maxSchemeLength = 67108863, m_schemeEnd = 5, m_userStart = 8, m_userEnd = 8, m_passwordEnd = 8, m_hostEnd = 23, m_pathAfterLastSlash = 30, m_pathEnd = 41, m_queryEnd = 41}
        resource = 0x0
        loadAttempted = false
#11 0x00007f8ca3531325 in WebCore::HTMLMediaElement::loadNextSourceChild() (this=0x7f8c4a82f390) at ../Source/WebCore/html/HTMLMediaElement.cpp:1499
        contentType = {m_type = {static MaxLength = 2147483647, m_impl = {static isRefPtr = &lt;error reading variable: Missing ELF symbol &quot;WTF::RefPtr&lt;WTF::StringImpl, WTF::DumbPtrTraits&lt;WTF::StringImpl&gt; &gt;::isRefPtr&quot;.&gt;, m_ptr = 0x7f8c495cf2c0}}}
        keySystem = {static MaxLength = 2147483647, m_impl = {static isRefPtr = &lt;error reading variable: Missing ELF symbol &quot;WTF::RefPtr&lt;WTF::StringImpl, WTF::DumbPtrTraits&lt;WTF::StringImpl&gt; &gt;::isRefPtr&quot;.&gt;, m_ptr = 0x0}}
        mediaURL = {m_string = {static MaxLength = 2147483647, m_impl = {static isRefPtr = &lt;error reading variable: Missing ELF symbol &quot;WTF::RefPtr&lt;WTF::StringImpl, WTF::DumbPtrTraits&lt;WTF::StringImpl&gt; &gt;::isRefPtr&quot;.&gt;, m_ptr = 0x7f8c318f96f0}}, m_isValid = 1, m_protocolIsInHTTPFamily = 1, m_cannotBeABaseURL = 0, m_portLength = 0, static maxPortLength = 7, static maxSchemeLength = 67108863, m_schemeEnd = 5, m_userStart = 8, m_userEnd = 8, m_passwordEnd = 8, m_hostEnd = 23, m_pathAfterLastSlash = 30, m_pathEnd = 41, m_queryEnd = 41}
#12 0x00007f8ca3531715 in WebCore::HTMLMediaElement::&lt;lambda()&gt;::operator() (__closure=&lt;optimized out&gt;) at ../Source/WebCore/html/HTMLMediaElement.cpp:1481
        mode = WebCore::HTMLMediaElement::&lt;lambda()&gt;::Children
#13 0x00007f8ca3531715 in WTF::Detail::CallableWrapper&lt;WebCore::HTMLMediaElement::selectMediaResource()::&lt;lambda()&gt;, void&gt;::call(void) (this=0x7f8c214ccf78) at DerivedSources/ForwardingHeaders/wtf/Function.h:52
#14 0x00007f8ca3922b4d in WTF::Function&lt;void ()&gt;::operator()() const (this=&lt;synthetic pointer&gt;) at DerivedSources/ForwardingHeaders/wtf/Function.h:76
        task = {m_callableWrapper = std::unique_ptr&lt;WTF::Detail::CallableWrapperBase&lt;void&gt;&gt; = {get() = 0x7f8c214ccf90}}
#15 0x00007f8ca3922b4d in WebCore::TaskDispatcher&lt;WebCore::Timer&gt;::dispatchOneTask() (this=0x7f8c4a82f798) at ../Source/WebCore/platform/GenericTaskQueue.cpp:110
        task = {m_callableWrapper = std::unique_ptr&lt;WTF::Detail::CallableWrapperBase&lt;void&gt;&gt; = {get() = 0x7f8c214ccf90}}
#16 0x00007f8ca3922c1e in WebCore::TaskDispatcher&lt;WebCore::Timer&gt;::sharedTimerFired() () at ../Source/WebCore/platform/GenericTaskQueue.cpp:85
        queuedDispatchers = {m_start = 1, m_end = 5, m_buffer = {&lt;WTF::VectorBufferBase&lt;WTF::WeakPtr&lt;WebCore::TaskDispatcher&lt;WebCore::Timer&gt; &gt; &gt;&gt; = {m_buffer = 0x7f8c22482c00, m_capacity = 16, m_size = &lt;optimized out&gt;}, &lt;No data fields&gt;}}
#17 0x00007f8ca394df74 in WebCore::ThreadTimers::sharedTimerFiredInternal() (this=0x7f8c9ad8e370) at ../Source/WebCore/platform/ThreadTimers.h:104
        item = {static isRef = &lt;error reading variable: Missing ELF symbol &quot;WTF::Ref&lt;WebCore::ThreadTimerHeapItem, WTF::DumbPtrTraits&lt;WebCore::ThreadTimerHeapItem&gt; &gt;::isRef&quot;.&gt;, m_ptr = 0x7f8c214a4600}
        timer = &lt;optimized out&gt;
        interval = &lt;optimized out&gt;
        timeToQuit = &lt;optimized out&gt;
#18 0x00007f8ca394df74 in WebCore::ThreadTimers::sharedTimerFiredInternal() (this=0x7f8c9ad8e370) at ../Source/WebCore/platform/ThreadTimers.cpp:101
#19 0x00007f8ca0341448 in WTF::RunLoop::TimerBase::&lt;lambda(gpointer)&gt;::operator() (__closure=0x0, userData=0x7f8ca4e6a9d0 &lt;WebCore::MainThreadSharedTimer::singleton()::instance+16&gt;) at ../Source/WTF/wtf/glib/RunLoopGLib.cpp:177
        timer = 0x7f8ca4e6a9d0 &lt;WebCore::MainThreadSharedTimer::singleton()::instance+16&gt;
        source = 0x55ad6cd8fb10
#20 0x00007f8ca0341448 in WTF::RunLoop::TimerBase::&lt;lambda(gpointer)&gt;::_FUN(gpointer) () at ../Source/WTF/wtf/glib/RunLoopGLib.cpp:183
#21 0x00007f8ca09c358e in g_main_context_remove_poll (context=0x55ad6cad3d90, fd=0x55ad6cd8fae0) at ../glib/gmain.c:4456
        __func__ = &quot;g_main_context_remove_poll&quot;
#22 0xffffffff06278ef0 in  ()
#23 0x0000000000000001 in  ()
#24 0x0000000000000000 in  ()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595452</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-12-04 05:35:51 -0800</bug_when>
    <thetext>This also causes every article page on https://vox.com to crash (again, only after the bad UI process state has been achieved).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595800</commentid>
    <comment_count>2</comment_count>
      <attachid>384903</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-12-05 07:48:53 -0800</bug_when>
    <thetext>Created attachment 384903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595802</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-12-05 07:51:53 -0800</bug_when>
    <thetext>Untested, since I can&apos;t reproduce your bugs. :)
So please. Test!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595804</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-12-05 08:11:27 -0800</bug_when>
    <thetext>I can&apos;t reproduce it either, Phil. This just seems to happen once every few days. I&apos;ll let you know if I still see the crashes in 2.27.4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596777</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-12-09 01:18:33 -0800</bug_when>
    <thetext>Committed r253284: &lt;https://trac.webkit.org/changeset/253284&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384903</attachid>
            <date>2019-12-05 07:48:53 -0800</date>
            <delta_ts>2019-12-08 08:11:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204848-20191205154851.patch</filename>
            <type>text/plain</type>
            <size>2426</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjUyZjhiNzA0Yzk3MWY1
NzQ5YTBmNDI3NzBlYzc1NDBiZGRkYTM5ZS4uNDYzNDkzMjA3ZDJlY2JkZTMyNDY4MWY5Mjg3ZjU1
Y2I3ZjFkYmNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTEyLTA1ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBDcmFzaGVzIGluIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZW5zdXJlR3N0R0xDb250
ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4
NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtl
IHN1cmUgdGhlIEdMIHZpZGVvIHNpbmsgdXNlcyBhIHZhbGlkIFdlYktpdCBzaGFyZWQgR0wgY29u
dGV4dC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HTFZpZGVvU2lu
a0dTdHJlYW1lci5jcHA6CisgICAgICAgIChlbnN1cmVHc3RHTENvbnRleHQpOgorICAgICAgICAo
d2ViS2l0R0xWaWRlb1NpbmtQcm9iZVBsYXRmb3JtKToKKwogMjAxOS0xMi0wNSAgeW91ZW5uIGZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJp
ZGVTZXR0aW5nLU1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQuaHRtbCBpcyBmYWlsaW5nIGFmdGVy
IHJlbW92YWwgb2YgaW50ZXJuYWxzLnNldE1vY2tNZWRpYUNhcHR1cmVEZXZpY2VzRW5hYmxlZCBB
UEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9HTFZpZGVvU2lua0dTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR0xWaWRlb1NpbmtHU3RyZWFtZXIuY3BwCmluZGV4IGRiMTNlODgyYzU0
YjE2MTkwZDFiY2E2NTVjOGQwY2U2ZDFjN2ZjMTguLjMyYWE4NTkyMzJiMzdiMTgxZmExY2MwNWFi
MGIwZjE4NzJlMjZjMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9HTFZpZGVvU2lua0dTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dMVmlkZW9TaW5rR1N0cmVhbWVyLmNwcApA
QCAtMTkwLDYgKzE5MCwxMiBAQCBzdGF0aWMgYm9vbCBlbnN1cmVHc3RHTENvbnRleHQoV2ViS2l0
R0xWaWRlb1NpbmsqIHNpbmspCiAgICAgfQogCiAgICAgR0xDb250ZXh0KiBzaGFyZWRDb250ZXh0
ID0gc2hhcmVkRGlzcGxheS5zaGFyaW5nR0xDb250ZXh0KCk7CisgICAgaWYgKCFzaGFyZWRDb250
ZXh0KSB7CisgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKEdTVF9FTEVNRU5UX0NBU1Qoc2luayks
IFJFU09VUkNFLCBOT1RfRk9VTkQsICgoIldlYktpdCBzaGFyZWQgR0wgY29udGV4dCB1bmF2YWls
YWJsZSIpKSwKKyAgICAgICAgICAgICgiVGhlIFdlYktpdCBzaGFyZWQgR0wgY29udGV4dCBzb21l
aG93IGRpc2FwcGVhcmVkLiBWaWRlbyB0ZXh0dXJlcyByZW5kZXJpbmcgd2lsbCBmYWlsLiIpKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIC8vIEVHTCBhbmQgR0xYIGFyZSBt
dXR1YWxseSBleGNsdXNpdmUsIG5vIG5lZWQgZm9yIGlmZGVmcyBoZXJlLgogICAgIEdzdEdMUGxh
dGZvcm0gZ2xQbGF0Zm9ybSA9IHNoYXJlZENvbnRleHQtPmlzRUdMQ29udGV4dCgpID8gR1NUX0dM
X1BMQVRGT1JNX0VHTCA6IEdTVF9HTF9QTEFURk9STV9HTFg7CiAKQEAgLTM0MSw2ICszNDcsMTMg
QEAgdm9pZCB3ZWJLaXRHTFZpZGVvU2lua1NldE1lZGlhUGxheWVyUHJpdmF0ZShXZWJLaXRHTFZp
ZGVvU2luayogc2luaywgTWVkaWFQbGF5ZXIKIAogYm9vbCB3ZWJLaXRHTFZpZGVvU2lua1Byb2Jl
UGxhdGZvcm0oKQogeworICAgIGF1dG8mIHNoYXJlZERpc3BsYXkgPSBQbGF0Zm9ybURpc3BsYXk6
OnNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygpOworICAgIEdMQ29udGV4dCogc2hhcmVkQ29u
dGV4dCA9IHNoYXJlZERpc3BsYXkuc2hhcmluZ0dMQ29udGV4dCgpOworICAgIGlmICghc2hhcmVk
Q29udGV4dCkgeworICAgICAgICBHU1RfV0FSTklORygiV2ViS2l0IHNoYXJlZCBHTCBjb250ZXh0
IGlzIG5vdCBhdmFpbGFibGUuIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAg
ICByZXR1cm4gaXNHU3RyZWFtZXJQbHVnaW5BdmFpbGFibGUoImFwcCIpICYmIGlzR1N0cmVhbWVy
UGx1Z2luQXZhaWxhYmxlKCJvcGVuZ2wiKTsKIH0KIAo=
</data>
<flag name="review"
          id="400729"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>