<?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>138425</bug_id>
          
          <creation_ts>2014-11-05 08:54:05 -0800</creation_ts>
          <short_desc>[GStreamer] the webkitwebsrc element can stale</short_desc>
          <delta_ts>2014-12-15 07:37:26 -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>528+ (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="Xavier Claessens">xclaesse</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1046476</commentid>
    <comment_count>0</comment_count>
    <who name="Xavier Claessens">xclaesse</who>
    <bug_when>2014-11-05 08:54:05 -0800</bug_when>
    <thetext>When hlsdemux downloads next fragments, it will change source&apos;s state from PAUSE to READY, then change its uri, and change state back from READY to PAUSE. That state change is catched in WebKitWebSourceGStreamer::webKitWebSrcChangeState(). That sequence of events can happen:

1) pause-&gt;ready state change, priv-&gt;stopID is set to an idle cb ID that will call webKitWebSrcStop in main thread.
2) ready-&gt;pause state change, priv-&gt;startID is set to an idle cb ID that will call webKitWebSrcStart in main thread.
3) the main thread runs webKitWebSrcStop() that calls removeTimeoutSources() which remove priv-&gt;startID source.
And now webKitWebSrcStart will never be called, so it won&apos;t download anything.

So that happens when webkitwebsrc&apos;s state transition pause-&gt;ready-&gt;pause quickly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046478</commentid>
    <comment_count>1</comment_count>
    <who name="Xavier Claessens">xclaesse</who>
    <bug_when>2014-11-05 08:54:40 -0800</bug_when>
    <thetext>Note that shen souphttpsrc is used, it works correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047077</commentid>
    <comment_count>2</comment_count>
      <attachid>241179</attachid>
    <who name="Xavier Claessens">xclaesse</who>
    <bug_when>2014-11-07 07:50:14 -0800</bug_when>
    <thetext>Created attachment 241179
Proposed patch

I&apos;m not sure what&apos;s the procedure to properly propose patches, but this one fix the issue for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049492</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-18 08:41:41 -0800</bug_when>
    <thetext>You can find the contributor guidelines there: http://www.webkit.org/coding/contributing.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054611</commentid>
    <comment_count>4</comment_count>
      <attachid>243145</attachid>
    <who name="Xavier Claessens">xclaesse</who>
    <bug_when>2014-12-11 13:54:25 -0800</bug_when>
    <thetext>Created attachment 243145
patch

Patch updated to latest webkit master, with changelog. Is that all needed to get it reviewed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055613</commentid>
    <comment_count>5</comment_count>
      <attachid>243145</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-12-15 07:02:15 -0800</bug_when>
    <thetext>Comment on attachment 243145
patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055618</commentid>
    <comment_count>6</comment_count>
      <attachid>243145</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-15 07:37:23 -0800</bug_when>
    <thetext>Comment on attachment 243145
patch

Clearing flags on attachment: 243145

Committed r177279: &lt;http://trac.webkit.org/changeset/177279&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055619</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-15 07:37:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241179</attachid>
            <date>2014-11-07 07:50:14 -0800</date>
            <delta_ts>2014-12-11 13:54:25 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>0001-webkitwebsrc-Fix-race-when-quickly-changing-state-pa.patch</filename>
            <type>text/plain</type>
            <size>2416</size>
            <attacher name="Xavier Claessens">xclaesse</attacher>
            
              <data encoding="base64">RnJvbSBhYjJmNDY3YTExZGZjNmY2NmIzMjdmNGE0ZTk3MmU1MWI2ZmQ2NGMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmUgTW9yZWlyYSBNYWdhbGhhZXMgKGFuZHJ1bmtvKSIg
PGFuZHJlLm1hZ2FsaGFlc0Bjb2xsYWJvcmEuY28udWs+CkRhdGU6IFdlZCwgNSBOb3YgMjAxNCAx
MzoyODozOCAtMDUwMApTdWJqZWN0OiBbUEFUQ0hdIHdlYmtpdHdlYnNyYzogRml4IHJhY2Ugd2hl
biBxdWlja2x5IGNoYW5naW5nIHN0YXRlCiBwYXVzZS0+cmVhZHktPnBhdXNlCgpodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NDI1Ci0tLQogLi4uL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIHwgMTIgKysrKysr
KysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9X
ZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggZDViNDZj
NC4uNjFmMjM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5j
cHAKQEAgLTEzNyw2ICsxMzcsNyBAQCBzdHJ1Y3QgX1dlYktpdFdlYlNyY1ByaXZhdGUgewogCiAg
ICAgZ3VpbnQ2NCByZXF1ZXN0ZWRPZmZzZXQ7CiAKKyAgICBnYm9vbGVhbiBwZW5kaW5nU3RhcnQ7
CiAgICAgZ3VpbnQgc3RhcnRJRDsKICAgICBndWludCBzdG9wSUQ7CiAgICAgZ3VpbnQgbmVlZERh
dGFJRDsKQEAgLTM5NCw5ICszOTUsMTEgQEAgc3RhdGljIHZvaWQgcmVtb3ZlVGltZW91dFNvdXJj
ZXMoV2ViS2l0V2ViU3JjKiBzcmMpCiB7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9
IHNyYy0+cHJpdjsKIAotICAgIGlmIChwcml2LT5zdGFydElEKQotICAgICAgICBnX3NvdXJjZV9y
ZW1vdmUocHJpdi0+c3RhcnRJRCk7Ci0gICAgcHJpdi0+c3RhcnRJRCA9IDA7CisgICAgaWYgKCFw
cml2LT5wZW5kaW5nU3RhcnQpIHsKKyAgICAgICAgaWYgKHByaXYtPnN0YXJ0SUQpCisgICAgICAg
ICAgICBnX3NvdXJjZV9yZW1vdmUocHJpdi0+c3RhcnRJRCk7CisgICAgICAgIHByaXYtPnN0YXJ0
SUQgPSAwOworICAgIH0KIAogICAgIGlmIChwcml2LT5uZWVkRGF0YUlEKQogICAgICAgICBnX3Nv
dXJjZV9yZW1vdmUocHJpdi0+bmVlZERhdGFJRCk7CkBAIC00NzgsNiArNDgxLDcgQEAgc3RhdGlj
IGdib29sZWFuIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogCiAgICAgR011
dGV4TG9ja2VyIGxvY2tlcihHU1RfT0JKRUNUX0dFVF9MT0NLKHNyYykpOwogCisgICAgcHJpdi0+
cGVuZGluZ1N0YXJ0ID0gRkFMU0U7CiAgICAgcHJpdi0+c3RhcnRJRCA9IDA7CiAgICAgcHJpdi0+
Y29yc0FjY2Vzc0NoZWNrID0gQ09SU05vQ2hlY2s7CiAKQEAgLTU3NiwxMCArNTgwLDEyIEBAIHN0
YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVybiB3ZWJLaXRXZWJTcmNDaGFuZ2VTdGF0ZShHc3RFbGVt
ZW50KiBlbGVtZW50LCBHc3RTdGF0CiAgICAgc3dpdGNoICh0cmFuc2l0aW9uKSB7CiAgICAgY2Fz
ZSBHU1RfU1RBVEVfQ0hBTkdFX1JFQURZX1RPX1BBVVNFRDoKICAgICAgICAgR1NUX0RFQlVHX09C
SkVDVChzcmMsICJSRUFEWS0+UEFVU0VEIik7CisgICAgICAgIHByaXYtPnBlbmRpbmdTdGFydCA9
IFRSVUU7CiAgICAgICAgIHByaXYtPnN0YXJ0SUQgPSBnX2lkbGVfYWRkX2Z1bGwoR19QUklPUklU
WV9ERUZBVUxULCAoR1NvdXJjZUZ1bmMpIHdlYktpdFdlYlNyY1N0YXJ0LCBnc3Rfb2JqZWN0X3Jl
ZihzcmMpLCAoR0Rlc3Ryb3lOb3RpZnkpIGdzdF9vYmplY3RfdW5yZWYpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfUEFVU0VEX1RPX1JFQURZOgogICAgICAgICBH
U1RfREVCVUdfT0JKRUNUKHNyYywgIlBBVVNFRC0+UkVBRFkiKTsKKyAgICAgICAgcHJpdi0+cGVu
ZGluZ1N0YXJ0ID0gRkFMU0U7CiAgICAgICAgIC8vIGNhbmNlbCBwZW5kaW5nIHNvdXJjZXMKICAg
ICAgICAgcmVtb3ZlVGltZW91dFNvdXJjZXMoc3JjKTsKICAgICAgICAgcHJpdi0+c3RvcElEID0g
Z19pZGxlX2FkZF9mdWxsKEdfUFJJT1JJVFlfREVGQVVMVCwgKEdTb3VyY2VGdW5jKSB3ZWJLaXRX
ZWJTcmNTdG9wLCBnc3Rfb2JqZWN0X3JlZihzcmMpLCAoR0Rlc3Ryb3lOb3RpZnkpIGdzdF9vYmpl
Y3RfdW5yZWYpOwotLSAKMS45LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243145</attachid>
            <date>2014-12-11 13:54:25 -0800</date>
            <delta_ts>2014-12-15 07:37:23 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-GStreamer-the-webkitwebsrc-element-can-stale.patch</filename>
            <type>text/plain</type>
            <size>3008</size>
            <attacher name="Xavier Claessens">xclaesse</attacher>
            
              <data encoding="base64">RnJvbSA5MGM2MDE0ZDRmNGQxYmM2ZTVlM2Q1MGI3NDk3OTc2YmJkNDgwOThjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYXZpZXIgQ2xhZXNzZW5zIDx4YXZpZXIuY2xhZXNzZW5zQGNv
bGxhYm9yYS5jb20+CkRhdGU6IFRodSwgMTEgRGVjIDIwMTQgMTY6NTE6MTMgLTA1MDAKU3ViamVj
dDogW1BBVENIXSBbR1N0cmVhbWVyXSB0aGUgd2Via2l0d2Vic3JjIGVsZW1lbnQgY2FuIHN0YWxl
CgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDEyICsrKysrKysrKysrKwogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIHwgIDcgKysrKysrLQogMiBmaWxlcyBj
aGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ0
YjIwOGEuLjhmYzY0NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0xMi0xMSAg
WGF2aWVyIENsYWVzc2VucyAgPHhhdmllci5jbGFlc3NlbnNAY29sbGFib3JhLmNvbT4KKworICAg
ICAgICBbR1N0cmVhbWVyXSB0aGUgd2Via2l0d2Vic3JjIGVsZW1lbnQgY2FuIHN0YWxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg0MjUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAo
cmVtb3ZlVGltZW91dFNvdXJjZXMpOgorICAgICAgICAod2ViS2l0V2ViU3JjU3RhcnQpOgorICAg
ICAgICAod2ViS2l0V2ViU3JjQ2hhbmdlU3RhdGUpOgorCiAyMDE0LTEyLTExICBBbmRlcnMgQ2Fy
bHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCB1c2luZyBTUUxpdGVG
aWxlU3lzdGVtIGluIHRoZSBzdG9yYWdlIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKaW5kZXggMTVmNDZkZC4uMWZjMzA1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTEyNCw2ICsxMjQsNyBAQCBzdHJ1
Y3QgX1dlYktpdFdlYlNyY1ByaXZhdGUgewogCiAgICAgZ3VpbnQ2NCByZXF1ZXN0ZWRPZmZzZXQ7
CiAKKyAgICBnYm9vbGVhbiBwZW5kaW5nU3RhcnQ7CiAgICAgR1RocmVhZFNhZmVNYWluTG9vcFNv
dXJjZSBzdGFydFNvdXJjZTsKICAgICBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlIHN0b3BTb3Vy
Y2U7CiAgICAgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSBuZWVkRGF0YVNvdXJjZTsKQEAgLTM2
NCw3ICszNjUsOCBAQCBzdGF0aWMgdm9pZCByZW1vdmVUaW1lb3V0U291cmNlcyhXZWJLaXRXZWJT
cmMqIHNyYykKIHsKICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gc3JjLT5wcml2Owog
Ci0gICAgcHJpdi0+c3RhcnRTb3VyY2UuY2FuY2VsKCk7CisgICAgaWYgKCFwcml2LT5wZW5kaW5n
U3RhcnQpCisgICAgICAgIHByaXYtPnN0YXJ0U291cmNlLmNhbmNlbCgpOwogICAgIHByaXYtPm5l
ZWREYXRhU291cmNlLmNhbmNlbCgpOwogICAgIHByaXYtPmVub3VnaERhdGFTb3VyY2UuY2FuY2Vs
KCk7CiAgICAgcHJpdi0+c2Vla1NvdXJjZS5jYW5jZWwoKTsKQEAgLTQzNiw2ICs0MzgsNyBAQCBz
dGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNTdGFydChXZWJLaXRXZWJTcmMqIHNyYykKIAogICAgIEdN
dXRleExvY2tlcjxHTXV0ZXg+IGxvY2tlcigqR1NUX09CSkVDVF9HRVRfTE9DSyhzcmMpKTsKIAor
ICAgIHByaXYtPnBlbmRpbmdTdGFydCA9IEZBTFNFOwogICAgIHByaXYtPmRpZFBhc3NBY2Nlc3ND
b250cm9sQ2hlY2sgPSBmYWxzZTsKIAogICAgIGlmICghcHJpdi0+dXJpKSB7CkBAIC01NDAsMTIg
KzU0MywxNCBAQCBzdGF0aWMgR3N0U3RhdGVDaGFuZ2VSZXR1cm4gd2ViS2l0V2ViU3JjQ2hhbmdl
U3RhdGUoR3N0RWxlbWVudCogZWxlbWVudCwgR3N0U3RhdAogICAgIHN3aXRjaCAodHJhbnNpdGlv
bikgewogICAgIGNhc2UgR1NUX1NUQVRFX0NIQU5HRV9SRUFEWV9UT19QQVVTRUQ6CiAgICAgICAg
IEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUkVBRFktPlBBVVNFRCIpOworICAgICAgICBwcml2LT5w
ZW5kaW5nU3RhcnQgPSBUUlVFOwogICAgICAgICBnc3Rfb2JqZWN0X3JlZihzcmMpOwogICAgICAg
ICBwcml2LT5zdGFydFNvdXJjZS5zY2hlZHVsZSgiW1dlYktpdF0gd2ViS2l0V2ViU3JjU3RhcnQi
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4oc3RkOjpiaW5kKHdlYktpdFdlYlNyY1N0YXJ0LCBzcmMp
KSwgR19QUklPUklUWV9ERUZBVUxULAogICAgICAgICAgICAgW3NyY10geyBnc3Rfb2JqZWN0X3Vu
cmVmKHNyYyk7IH0pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0Vf
UEFVU0VEX1RPX1JFQURZOgogICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIlBBVVNFRC0+
UkVBRFkiKTsKKyAgICAgICAgcHJpdi0+cGVuZGluZ1N0YXJ0ID0gRkFMU0U7CiAgICAgICAgIC8v
IGNhbmNlbCBwZW5kaW5nIHNvdXJjZXMKICAgICAgICAgcmVtb3ZlVGltZW91dFNvdXJjZXMoc3Jj
KTsKICAgICAgICAgZ3N0X29iamVjdF9yZWYoc3JjKTsKLS0gCjEuOS4xCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>