<?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>167861</bug_id>
          
          <creation_ts>2017-02-05 17:12:43 -0800</creation_ts>
          <short_desc>[GStreamer] Deadlock when media player is destroyed</short_desc>
          <delta_ts>2017-02-07 10:06:37 -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>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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="Bastien Nocera">bugzilla</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1273438</commentid>
    <comment_count>0</comment_count>
    <who name="Bastien Nocera">bugzilla</who>
    <bug_when>2017-02-05 17:12:43 -0800</bug_when>
    <thetext>epiphany-3.22.5-1.fc25.x86_64
webkitgtk4-2.14.3-1.fc25.x86_64

After a while, epiphany will only load one out of every 2 or 3 tabs I open, blocking others, and blocking keyboard shortcuts at the same time.
This might have happened after loading a web page where a video was playing through HTML5.

I use &quot;one-secondary-process-per-web-view&quot; as the process model but with a maximum of 5, which might explain why hung tabs don&apos;t &quot;go away&quot; (no new web process is created).

The backtrace of the hang:
#0  0x00007ff1845b1460 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007ff17c71a50c in std::condition_variable::wait(std::unique_lock&lt;std::mutex&gt;&amp;) () at /lib64/libstdc++.so.6
#2  0x00007ff187584d08 in WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda&lt;bool ()&gt; const&amp;, WTF::ScopedLambda&lt;void ()&gt; const&amp;, std::chrono::time_point&lt;std::chrono::_V2::steady_clock, std::chrono::duration&lt;long, std::ratio&lt;1l, 1000000000l&gt; &gt; &gt;) (address=address@entry=0x55e4de5171d0, validation=..., beforeSleep=..., timeout=timeout@entry=...)
    at /usr/src/debug/webkitgtk-2.14.3/Source/WTF/wtf/ParkingLot.cpp:601
#3  0x00007ff18757b1e1 in WTF::ParkingLot::parkConditionally&lt;WTF::ParkingLot::ParkResult WTF::ParkingLot::compareAndPark&lt;unsigned char, int&gt;(WTF::Atomic&lt;unsigned char&gt; const*, int)::{lambda()#1}, WTF::ParkingLot::ParkResult WTF::ParkingLot::compareAndPark&lt;unsigned char, int&gt;(WTF::Atomic&lt;unsigned char&gt; const*, int)::{lambda()#2}&gt;(void const*, WTF::ParkingLot::ParkResult WTF::ParkingLot::compareAndPark&lt;unsigned char, int&gt;(WTF::Atomic&lt;unsigned char&gt; const*, int)::{lambda()#1} const&amp;, WTF::ParkingLot::ParkResult WTF::ParkingLot::compareAndPark&lt;unsigned char, int&gt;(WTF::Atomic&lt;unsigned char&gt; const*, int)::{lambda()#2} const&amp;, std::chrono::time_point&lt;WTF::ParkingLot::ParkResult WTF::ParkingLot::compareAndPark&lt;unsigned char, int&gt;(WTF::Atomic&lt;unsigned char&gt; const*, int)::{lambda()#2} const::_V2::steady_clock, WTF::ParkingLot::ParkResult WTF::ParkingLot::compareAndPark&lt;unsigned char, int&gt;(WTF::Atomic&lt;unsigned char&gt; const*, int)::{lambda()#2} const::duration&lt;long, std::ratio&lt;1l, 1000000000l&gt; &gt; &gt;) (timeout=..., beforeSleep=..., validation=..., address=0x55e4de5171d0) at /usr/src/debug/webkitgtk-2.14.3/Source/WTF/wtf/ParkingLot.h:77
#4  0x00007ff18757b1e1 in WTF::ParkingLot::compareAndPark&lt;unsigned char, int&gt;(WTF::Atomic&lt;unsigned char&gt; const*, int) (expected=3, address=0x55e4de5171d0)
    at /usr/src/debug/webkitgtk-2.14.3/Source/WTF/wtf/ParkingLot.h:92
#5  0x00007ff18757b1e1 in WTF::LockBase::lockSlow() (this=this@entry=0x55e4de5171d0) at /usr/src/debug/webkitgtk-2.14.3/Source/WTF/wtf/Lock.cpp:71
#6  0x00007ff188f35e5e in WTF::LockBase::lock() (this=0x55e4de5171d0) at /usr/src/debug/webkitgtk-2.14.3/Source/WTF/wtf/Lock.h:61
#7  0x00007ff188f35e5e in WTF::Locker&lt;WTF::LockBase&gt;::lock() (this=&lt;synthetic pointer&gt;) at /usr/src/debug/webkitgtk-2.14.3/Source/WTF/wtf/Locker.h:68
#8  0x00007ff188f35e5e in WTF::Locker&lt;WTF::LockBase&gt;::Locker(WTF::LockBase&amp;) (lockable=..., this=&lt;synthetic pointer&gt;) at /usr/src/debug/webkitgtk-2.14.3/Source/WTF/wtf/Locker.h:41
#9  0x00007ff188f35e5e in VideoRenderRequestScheduler::stop() (this=0x55e4de5171d0) at /usr/src/debug/webkitgtk-2.14.3/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp:94
#10 0x00007ff188f35e5e in webkitVideoSinkUnlock(GstBaseSink*) (baseSink=0x55e4de517480) at /usr/src/debug/webkitgtk-2.14.3/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp:283
#11 0x00007ff18390379d in gst_base_sink_change_state () at /lib64/libgstbase-1.0.so.0
#12 0x00007ff18360c6ee in gst_element_change_state () at /lib64/libgstreamer-1.0.so.0
#13 0x00007ff18360ce5f in gst_element_set_state_func () at /lib64/libgstreamer-1.0.so.0
#14 0x00007ff1835eb1ad in gst_bin_change_state_func () at /lib64/libgstreamer-1.0.so.0
#15 0x00007ff0d3df6d44 in fps_display_sink_change_state () at /usr/lib64/gstreamer-1.0/libgstdebugutilsbad.so
#16 0x00007ff18360c6ee in gst_element_change_state () at /lib64/libgstreamer-1.0.so.0
#17 0x00007ff18360ce5f in gst_element_set_state_func () at /lib64/libgstreamer-1.0.so.0
#18 0x00007ff1835eb1ad in gst_bin_change_state_func () at /lib64/libgstreamer-1.0.so.0
#19 0x00007ff18360c6ee in gst_element_change_state () at /lib64/libgstreamer-1.0.so.0
#20 0x00007ff18360ce5f in gst_element_set_state_func () at /lib64/libgstreamer-1.0.so.0
#21 0x00007ff1835eb1ad in gst_bin_change_state_func () at /lib64/libgstreamer-1.0.so.0
#22 0x00007ff0d95c61e8 in gst_play_sink_change_state () at /usr/lib64/gstreamer-1.0/libgstplayback.so
#23 0x00007ff18360c6ee in gst_element_change_state () at /lib64/libgstreamer-1.0.so.0
#24 0x00007ff18360ce5f in gst_element_set_state_func () at /lib64/libgstreamer-1.0.so.0
#25 0x00007ff1835eb1ad in gst_bin_change_state_func () at /lib64/libgstreamer-1.0.so.0
#26 0x00007ff1836306ca in gst_pipeline_change_state () at /lib64/libgstreamer-1.0.so.0
#27 0x00007ff0d95b78df in gst_play_bin_change_state () at /usr/lib64/gstreamer-1.0/libgstplayback.so
#28 0x00007ff18360c6ee in gst_element_change_state () at /lib64/libgstreamer-1.0.so.0
#29 0x00007ff18360ce5f in gst_element_set_state_func () at /lib64/libgstreamer-1.0.so.0
#30 0x00007ff188f27216 in WebCore::MediaPlayerPrivateGStreamer::changePipelineState(GstState) (this=this@entry=0x7ff0ea09ca00, newState=newState@entry=GST_STATE_PAUSED)
    at /usr/src/debug/webkitgtk-2.14.3/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:354
#31 0x00007ff188f29d03 in WebCore::MediaPlayerPrivateGStreamer::updateStates() (this=this@entry=0x7ff0ea09ca00)
    at /usr/src/debug/webkitgtk-2.14.3/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1438
#32 0x00007ff188f2aaf7 in WebCore::MediaPlayerPrivateGStreamer::handleMessage(_GstMessage*) (this=0x7ff0ea09ca00, message=0x7ff080001e20)
    at /usr/src/debug/webkitgtk-2.14.3/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:948
#33 0x00007ff187586dbd in WTF::Function&lt;void ()&gt;::operator()() const (this=&lt;synthetic pointer&gt;) at /usr/src/debug/webkitgtk-2.14.3/Source/WTF/wtf/Function.h:50
#34 0x00007ff187586dbd in WTF::RunLoop::performWork() (this=0x7ff1727f7000) at /usr/src/debug/webkitgtk-2.14.3/Source/WTF/wtf/RunLoop.cpp:122
#35 0x00007ff1875ad619 in WTF::RunLoop::&lt;lambda(gpointer)&gt;::operator() (__closure=0x0, userData=&lt;optimized out&gt;) at /usr/src/debug/webkitgtk-2.14.3/Source/WTF/wtf/glib/RunLoopGLib.cpp:66
#36 0x00007ff1875ad619 in WTF::RunLoop::&lt;lambda(gpointer)&gt;::_FUN(gpointer) () at /usr/src/debug/webkitgtk-2.14.3/Source/WTF/wtf/glib/RunLoopGLib.cpp:68
#37 0x00007ff180c49e42 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#38 0x00007ff180c4a1c0 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#39 0x00007ff180c4a4e2 in g_main_loop_run () at /lib64/libglib-2.0.so.0
#40 0x00007ff1875aded0 in WTF::RunLoop::run() () at /usr/src/debug/webkitgtk-2.14.3/Source/WTF/wtf/glib/RunLoopGLib.cpp:94
#41 0x00007ff188184fa9 in WebKit::ChildProcessMain&lt;WebKit::WebProcess, WebKit::WebProcessMain&gt;(int, char**) (argc=&lt;optimized out&gt;, argv=0x7ffe0270a918)
    at /usr/src/debug/webkitgtk-2.14.3/Source/WebKit2/Shared/unix/ChildProcessMain.h:61
#42 0x00007ff17bd9f401 in __libc_start_main () at /lib64/libc.so.6
#43 0x000055e4da2cdc5a in _start ()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273487</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-02-05 23:53:56 -0800</bug_when>
    <thetext>This is a deadlock, main thread in webkitVideoSinkUnlock while compositing thread is in webkitVideoSinkRender. I think I fixed this in r211357. I tried to reproduce this the other day in trunk and I was unable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273549</commentid>
    <comment_count>2</comment_count>
    <who name="Bastien Nocera">bugzilla</who>
    <bug_when>2017-02-06 06:36:47 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; This is a deadlock, main thread in webkitVideoSinkUnlock while compositing
&gt; thread is in webkitVideoSinkRender. I think I fixed this in r211357. I tried
&gt; to reproduce this the other day in trunk and I was unable.

Is that version in the release I&apos;m using? Or should I ask Michael to backport it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273552</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-02-06 06:42:49 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; This is a deadlock, main thread in webkitVideoSinkUnlock while compositing
&gt; &gt; thread is in webkitVideoSinkRender. I think I fixed this in r211357. I tried
&gt; &gt; to reproduce this the other day in trunk and I was unable.
&gt; 
&gt; Is that version in the release I&apos;m using? Or should I ask Michael to
&gt; backport it?

What release are you using? It&apos;s in 2.15.4, but not in 2.14.3. If you are using 2.15.4 then it&apos;s not fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273553</commentid>
    <comment_count>4</comment_count>
    <who name="Bastien Nocera">bugzilla</who>
    <bug_when>2017-02-06 06:45:16 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; This is a deadlock, main thread in webkitVideoSinkUnlock while compositing
&gt; &gt; &gt; thread is in webkitVideoSinkRender. I think I fixed this in r211357. I tried
&gt; &gt; &gt; to reproduce this the other day in trunk and I was unable.
&gt; &gt; 
&gt; &gt; Is that version in the release I&apos;m using? Or should I ask Michael to
&gt; &gt; backport it?
&gt; 
&gt; What release are you using? It&apos;s in 2.15.4, but not in 2.14.3. If you are
&gt; using 2.15.4 then it&apos;s not fixed.

Comment 0 :)

I&apos;m using 2.14.3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273555</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-02-06 06:48:09 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; &gt; This is a deadlock, main thread in webkitVideoSinkUnlock while compositing
&gt; &gt; &gt; &gt; thread is in webkitVideoSinkRender. I think I fixed this in r211357. I tried
&gt; &gt; &gt; &gt; to reproduce this the other day in trunk and I was unable.
&gt; &gt; &gt; 
&gt; &gt; &gt; Is that version in the release I&apos;m using? Or should I ask Michael to
&gt; &gt; &gt; backport it?
&gt; &gt; 
&gt; &gt; What release are you using? It&apos;s in 2.15.4, but not in 2.14.3. If you are
&gt; &gt; using 2.15.4 then it&apos;s not fixed.
&gt; 
&gt; Comment 0 :)
&gt; 
&gt; I&apos;m using 2.14.3

phew, then maybe it&apos;s indeed fixed by r211357. I plan to make 2.14.4 this week including that fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273588</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-02-06 09:18:22 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Is that version in the release I&apos;m using? Or should I ask Michael to
&gt; backport it?

Carlos handles all the backports!

Anyway, I&apos;m going to close this since it&apos;s already on the backports list and we think it&apos;s fixed in trunk. If you can reproduce in 2.14.4 once that&apos;s released, then we are wrong, so please complain or reopen in that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273917</commentid>
    <comment_count>7</comment_count>
    <who name="Bastien Nocera">bugzilla</who>
    <bug_when>2017-02-07 04:15:36 -0800</bug_when>
    <thetext>&lt;KaL&gt; hadess: deadlock is still here :-/ I think i have a fix
&lt;KaL&gt; feel free to reopen the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273919</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-02-07 04:23:07 -0800</bug_when>
    <thetext>I finally managed to reliably reproduce this with yelp :-) And the problem is that we are calling notifyDone() for the draw mutex without taking the lock.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273920</commentid>
    <comment_count>9</comment_count>
      <attachid>300801</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-02-07 04:27:45 -0800</bug_when>
    <thetext>Created attachment 300801
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274043</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-02-07 10:06:37 -0800</bug_when>
    <thetext>Committed r211815: &lt;http://trac.webkit.org/changeset/211815&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300801</attachid>
            <date>2017-02-07 04:27:45 -0800</date>
            <delta_ts>2017-02-07 08:48:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-gst-deadlock.diff</filename>
            <type>text/plain</type>
            <size>1732</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NDMyNjY2OWY3OS4uNzUxZjZhZDk2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wMi0wNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gRGVhZGxvY2sgd2hlbiBtZWRpYSBwbGF5
ZXIgaXMgZGVzdHJveWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjc4NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGUgcHJvYmxlbSBpcyB0aGF0IHdlIGFyZSBjYWxsaW5nIG5vdGlmeU9uZSgpIGZv
ciB0aGUgZHJhdyBtdXRleCB3aXRob3V0IHRha2luZyB0aGUgbG9jay4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6
OnJlcGFpbnQpOgorCiAyMDE3LTAyLTA2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBPdmVybGF5IHNjcm9sbGluZyB3aXRoIGlmcmFtZS1zIGJy
b2tlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2UuY3BwCmluZGV4IGE5M2U4NWZiY2Q3Li5hYzg5ODFiNDEzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtNzExLDYgKzcx
MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cmVwYWludCgpCiAg
ICAgaWYgKHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSAmJiBtX3BsYXllci0+Y2xpZW50
KCkubWVkaWFQbGF5ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKG1fcGxheWVyKSAmJiBjbGll
bnQoKSkgewogICAgICAgICBjbGllbnQoKS0+c2V0UGxhdGZvcm1MYXllck5lZWRzRGlzcGxheSgp
OwogI2lmIFVTRShHU1RSRUFNRVJfR0wpCisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX2RyYXdN
dXRleCk7CiAgICAgICAgIG1fZHJhd0NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICNlbmRpZgogICAg
ICAgICByZXR1cm47CkBAIC03MjAsNiArNzIxLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlOjpyZXBhaW50KCkKICAgICBtX3BsYXllci0+cmVwYWludCgpOwogCiAjaWYg
VVNFKEdTVFJFQU1FUl9HTCkgfHwgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQor
ICAgIExvY2tIb2xkZXIgbG9jayhtX2RyYXdNdXRleCk7CiAgICAgbV9kcmF3Q29uZGl0aW9uLm5v
dGlmeU9uZSgpOwogI2VuZGlmCiB9Cg==
</data>
<flag name="review"
          id="322658"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>