<?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>184583</bug_id>
          
          <creation_ts>2018-04-13 04:23:57 -0700</creation_ts>
          <short_desc>REGRESSION(r230627): [GTK][WPE] Possible deadlock when destroying the player in non AC mode</short_desc>
          <delta_ts>2018-04-13 06:18:36 -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>WebKit Nightly Build</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="Miguel Gomez">magomez</reporter>
          <assigned_to name="Miguel Gomez">magomez</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1414369</commentid>
    <comment_count>0</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2018-04-13 04:23:57 -0700</bug_when>
    <thetext>In my effort to simplify the code in the patch for https://bugs.webkit.org/show_bug.cgi?id=183362 I accidentally added the possibility of a deadlock between the main and gstreamer threads when not in AC mode.

The thing is that when the player destructor is running, there&apos;s the possibility that a call to triggerRepaint() is being executed in the gstreamer thread. After r230627 it&apos;s possible that cancelRepaint() called from the destructor is executed before triggerRepaint() waits in the m_drawCondition, which means that the gstreamer thread will be locked forever.

The fix here is to put m_destroying inside cancelRepaint() again, and modify it inside the same lock where we notify m_drawCondition. And also check its value in triggerRepaint() inside the m_drawMutex lock. That way, if cancelRepaint() gets executed before triggerRepaint() reaches the lock, triggerRepaint will exit before waiting in the condition, and if cancelRepaint() is executed after triggerRepaint() reaches the lock it will signal the m_drawCondition an release the gstreamer thread.

I&apos;ll send a patch in a while and then punish myself writing 500 times &quot;watch out with the race conditions&quot; :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414373</commentid>
    <comment_count>1</comment_count>
      <attachid>337880</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2018-04-13 04:45:05 -0700</bug_when>
    <thetext>Created attachment 337880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414384</commentid>
    <comment_count>2</comment_count>
      <attachid>337880</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-13 06:18:34 -0700</bug_when>
    <thetext>Comment on attachment 337880
Patch

Clearing flags on attachment: 337880

Committed r230629: &lt;https://trac.webkit.org/changeset/230629&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414385</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-13 06:18:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337880</attachid>
            <date>2018-04-13 04:45:05 -0700</date>
            <delta_ts>2018-04-13 06:18:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184583-20180413134503.patch</filename>
            <type>text/plain</type>
            <size>5713</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTMwZmFiNzM5NWViZDA3
NTE1ODRiYzdlZjYxZjBmZTcyNzYzYTNkZi4uZTRmNWNlNGNkOTJkYWY1MjgxYjMxNmJjNmEyNGU0
MzY0ZWI1Y2EwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIyIEBACiAyMDE4LTA0LTEzICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CiAKKyAgICAgICAgUkVHUkVTU0lPTihyMjMw
NjI3KTogW0dUS11bV1BFXSBQb3NzaWJsZSBkZWFkbG9jayB3aGVuIGRlc3Ryb3lpbmcgdGhlIHBs
YXllciBpbiBub24gQUMgbW9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg0NTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW4gbm9uIEFDIG1vZGUsIGVuc3VyZSB0aGF0IGEgZGVhZGxvY2sgY2FuJ3Qg
aGFwcGVuIHdoZW4gZGVzdHJveWluZyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLgor
CisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RlbnQgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp+TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyUmVwYWludCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpjYW5jZWxSZXBhaW50KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyQmFzZS5oOgorCisyMDE4LTA0LTEzICBNaWd1ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxp
YS5jb20+CisKICAgICAgICAgW0dUS10gW2dzdHJlYW1lcl0gdmlkZW8gd29uJ3QgdW5wYXVzZSB3
aGVuIGJ1aWx0IHdpdGggLURVU0VfR1NUUkVBTUVSX0dMPU9GRgogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMzYyCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAppbmRleCBhOTkxMWQ2YmMy
ZDk4MDM0ZDlhNDEzOTM3ODYxMzNmZjFlYTc4ZTlkLi44ZTQ3NmZmNDEwNTkyNDEwZGMyNjg0YWEz
YTVmN2I2MmMzZWQzMGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC0yNDAsOSArMjQwLDYgQEAgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZShNZWRpYVBs
YXllciogcGwKIAogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6fk1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2UoKQogewotICAgIC8vIEZsYWcgdGhlIHBsYXllciBhcyBiZWlu
ZyBkZXN0cm95ZWQsIHNvIHRyaWdnZXJSZXBhaW50IHdpbGwgaWdub3JlIGluY29taW5nIHNhbXBs
ZXMuCi0gICAgbV9kZXN0cm95aW5nID0gdHJ1ZTsKLQogI2lmIEVOQUJMRShFTkNSWVBURURfTUVE
SUEpCiAgICAgbV9wcm90ZWN0aW9uQ29uZGl0aW9uLm5vdGlmeUFsbCgpOwogI2VuZGlmCkBAIC0y
NjEsOCArMjU4LDkgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6fk1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UoKQogICAgIGlmIChtX3ZvbHVtZUVsZW1lbnQpCiAgICAg
ICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfbWF0Y2hlZChtX3ZvbHVtZUVsZW1lbnQu
Z2V0KCksIEdfU0lHTkFMX01BVENIX0RBVEEsIDAsIDAsIG51bGxwdHIsIG51bGxwdHIsIHRoaXMp
OwogCi0gICAgLy8gVGhpcyB3aWxsIHJlbGVhc2UgdGhlIEdTdHJlYW1lciB0aHJlYWQgZnJvbSBt
X2RyYXdDb25kaXRpb24gaW4gbm9uIEFDIG1vZGUgaW4gY2FzZSB0aGVyZSdzIGFuIG9uZ29pbmcg
dHJpZ2dlclJlcGFpbnQgY2FsbC4KLSAgICBjYW5jZWxSZXBhaW50KCk7CisgICAgLy8gVGhpcyB3
aWxsIHJlbGVhc2UgdGhlIEdTdHJlYW1lciB0aHJlYWQgZnJvbSBtX2RyYXdDb25kaXRpb24gaW4g
bm9uIEFDIG1vZGUgaW4gY2FzZSB0aGVyZSdzIGFuIG9uZ29pbmcgdHJpZ2dlclJlcGFpbnQgY2Fs
bAorICAgIC8vIHdhaXRpbmcgdGhlcmUsIGFuZCBlbnN1cmUgdGhhdCBhbnkgdHJpZ2dlclJlcGFp
bnQgY2FsbCByZWFjaGluZyB0aGUgbG9jayB3b24ndCB3YWl0IG9uIG1fZHJhd0NvbmRpdGlvbi4K
KyAgICBjYW5jZWxSZXBhaW50KHRydWUpOwogCiAgICAgLy8gVGhlIGNoYW5nZSB0byBHU1RfU1RB
VEVfTlVMTCBzdGF0ZSBpcyBhbHdheXMgc3luY2hyb25vdXMuIFNvIGFmdGVyIHRoaXMgZ2V0cyBl
eGVjdXRlZCB3ZSBkb24ndCBuZWVkIHRvIHdvcnJ5CiAgICAgLy8gYWJvdXQgaGFuZGxlcnMgcnVu
bmluZyBpbiB0aGUgR1N0cmVhbWVyIHRocmVhZC4KQEAgLTc4NywxMCArNzg1LDYgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpyZXBhaW50KCkKIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyUmVwYWludChHc3RTYW1wbGUqIHNhbXBs
ZSkKIHsKLSAgICAvLyBEbyBub3QgdHJ5IHRvIHByb2Nlc3MgbmV3IGZyYW1lcyBpZiB0aGUgcGxh
eWVyIGlzIGJlaW5nIGRlc3Ryb3llZCBieSB0aGUgbWFpbiB0aHJlYWQuCi0gICAgaWYgKG1fZGVz
dHJveWluZykKLSAgICAgICAgcmV0dXJuOwotCiAgICAgYm9vbCB0cmlnZ2VyUmVzaXplOwogICAg
IHsKICAgICAgICAgYXV0byBzYW1wbGVMb2NrZXIgPSBob2xkTG9jayhtX3NhbXBsZU11dGV4KTsK
QEAgLTgwNSw2ICs3OTksOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6
OnRyaWdnZXJSZXBhaW50KEdzdFNhbXBsZSogc2FtcGxlKQogCiAgICAgaWYgKCFtX3JlbmRlcmlu
Z0NhbkJlQWNjZWxlcmF0ZWQpIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kcmF3TXV0
ZXgpOworICAgICAgICBpZiAobV9kZXN0cm95aW5nKQorICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICBtX2RyYXdUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKICAgICAgICAgbV9kcmF3Q29uZGl0
aW9uLndhaXQobV9kcmF3TXV0ZXgpOwogICAgICAgICByZXR1cm47CkBAIC04MjksMTYgKzgyNSwy
MCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnJlcGFpbnRDYWxsYmFj
ayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZQogICAgIHBsYXllci0+dHJpZ2dlclJlcGFpbnQo
c2FtcGxlKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpjYW5j
ZWxSZXBhaW50KCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6Y2FuY2Vs
UmVwYWludChib29sIGRlc3Ryb3lpbmcpCiB7CiAgICAgLy8gVGhlIGdvYWwgb2YgdGhpcyBmdW5j
dGlvbiBpcyB0byByZWxlYXNlIHRoZSBHU3RyZWFtZXIgdGhyZWFkIGZyb20gbV9kcmF3Q29uZGl0
aW9uIGluIHRyaWdnZXJSZXBhaW50KCkgaW4gbm9uLUFDIGNhc2UsCiAgICAgLy8gdG8gYXZvaWQg
YSBkZWFkbG9jayBpZiB0aGUgcGxheWVyIGdldHMgcGF1c2VkIHdoaWxlIHdhaXRpbmcgZm9yIGRy
YXdpbmcgKHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwMDAz
KToKICAgICAvLyB0aGUgbWFpbiB0aHJlYWQgaXMgd2FpdGluZyBmb3IgdGhlIEdTdHJlYW1lciB0
aHJlYWQgdG8gcGF1c2UsIGJ1dCB0aGUgR1N0cmVhbWVyIHRocmVhZCBpcyBsb2NrZWQgd2FpdGlu
ZyBmb3IgdGhlCiAgICAgLy8gbWFpbiB0aHJlYWQgdG8gZHJhdy4gVGhpcyBkZWFkbG9jayBkb2Vz
bid0IGhhcHBlbiB3aGVuIHVzaW5nIEFDIGJlY2F1c2UgdGhlIHNhbXBsZSBpcyBwcm9jZXNzZWQg
KG5vdCBwYWludGVkKSBpbiB0aGUgY29tcG9zaXRvcgogICAgIC8vIHRocmVhZCwgc28gdGhlIG1h
aW4gdGhyZWFkIGNhbiByZXF1ZXN0IHRoZSBwYXVzZSBhbmQgd2FpdCBpZiB0aGUgR1N0cmVhbWVy
IHRocmVhZCBpcyB3YWl0aW5nIGZvciB0aGUgY29tcG9zaXRvciB0aHJlYWQuCisgICAgLy8KKyAg
ICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gdXNlZCB3aGVuIGRlc3Ryb3lpbmcgdGhlIHBsYXll
ciAoZGVzdHJveWluZyBwYXJhbWV0ZXIgaXMgdHJ1ZSksIHRvIHJlbGVhc2UgdGhlIGdzdHJlYW1l
ciB0aHJlYWQgZnJvbQorICAgIC8vIG1fZHJhd0NvbmRpdGlvbiBhbmQgdG8gZW5zdXJlIHRoYXQg
bmV3IHRyaWdnZXJSZXBhaW50IGNhbGxzIHdvbid0IHdhaXQgb24gbV9kcmF3Q29uZGl0aW9uLgog
ICAgIGlmICghbV9yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKSB7Ci0gICAgICAgIG1fZHJhd1Rp
bWVyLnN0b3AoKTsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kcmF3TXV0ZXgpOworICAg
ICAgICBtX2RyYXdUaW1lci5zdG9wKCk7CisgICAgICAgIG1fZGVzdHJveWluZyA9IGRlc3Ryb3lp
bmc7CiAgICAgICAgIG1fZHJhd0NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAgICB9CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaAppbmRleCAw
M2U2YzczZDdiMWQzNzg4NDNlNjgzMjQzZTE3ZmM3NDYyMTNkODgwLi44ZThkYjdmYTFlY2I5ZDcx
NTM3NzIxNWUyNzVkMDYxYTMxNjExOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBwcm90ZWN0ZWQ6
CiAKICAgICB2b2lkIHRyaWdnZXJSZXBhaW50KEdzdFNhbXBsZSopOwogICAgIHZvaWQgcmVwYWlu
dCgpOwotICAgIHZvaWQgY2FuY2VsUmVwYWludCgpOworICAgIHZvaWQgY2FuY2VsUmVwYWludChi
b29sIGRlc3Ryb3lpbmcgPSBmYWxzZSk7CiAKICAgICBzdGF0aWMgdm9pZCByZXBhaW50Q2FsbGJh
Y2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSosIEdzdFNhbXBsZSopOwogICAgIHN0
YXRpYyB2b2lkIHJlcGFpbnRDYW5jZWxsZWRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlKik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>