<?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>134392</bug_id>
          
          <creation_ts>2014-06-27 05:06:54 -0700</creation_ts>
          <short_desc>curl: Fix several deadlocks</short_desc>
          <delta_ts>2018-02-28 09:13:30 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>117300</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="cand">cand</reporter>
          <assigned_to name="Basuke Suzuki">basuke</assigned_to>
          <cc>basuke</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>galpeter</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1018931</commentid>
    <comment_count>0</comment_count>
    <who name="cand">cand</who>
    <bug_when>2014-06-27 05:06:54 -0700</bug_when>
    <thetext>Mutexes on posix platforms are not recursive, unlike on Windows. CurlDownload tried to re-lock a mutex in several places, causing deadlocks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018932</commentid>
    <comment_count>1</comment_count>
      <attachid>233977</attachid>
    <who name="cand">cand</who>
    <bug_when>2014-06-27 05:07:23 -0700</bug_when>
    <thetext>Created attachment 233977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019584</commentid>
    <comment_count>2</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2014-07-01 01:10:45 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=233977) [details]
&gt; Patch

This patch doesn&apos;t have a changelog and please mark patches with r? to be reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330556</commentid>
    <comment_count>3</comment_count>
      <attachid>315971</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-07-19 22:17:19 -0700</bug_when>
    <thetext>Created attachment 315971
remove mutex

Because JobManager calls callback sequentially from phase to phase, there is no need to maintain thread safety by mutex. m_response is the only object which is touched from background and main thread, all header received event is the last method to touch the response and all manipulation is finished by that timing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330557</commentid>
    <comment_count>4</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-07-19 22:18:13 -0700</bug_when>
    <thetext>This patch should be landed after following patch is landed.
- https://bugs.webkit.org/show_bug.cgi?id=134393</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402624</commentid>
    <comment_count>5</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-02-28 09:13:30 -0800</bug_when>
    <thetext>With the huge architecture change, this deadlocks are resolved. Actually those mutex was gone and was replaced with operation queue style architecture.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233977</attachid>
            <date>2014-06-27 05:07:23 -0700</date>
            <delta_ts>2017-07-19 22:17:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>curl-fix-deadlocks.patch</filename>
            <type>text/plain</type>
            <size>1032</size>
            <attacher name="cand">cand</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93
bmxvYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3du
bG9hZC5jcHAKaW5kZXggNDg0ZWRjZC4uNjJkZDZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAKQEAgLTEyMCw3ICsx
MjAsNyBAQCB2b2lkIEN1cmxEb3dubG9hZE1hbmFnZXI6OnN0b3BUaHJlYWRJZklkbGUoKQogewog
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKIAotICAgIGlmICghZ2V0QWN0aXZlRG93
bmxvYWRDb3VudCgpICYmICFnZXRQZW5kaW5nRG93bmxvYWRDb3VudCgpKQorICAgIGlmICghbV9h
Y3RpdmVIYW5kbGVMaXN0LnNpemUoKSAmJiAhbV9hY3RpdmVIYW5kbGVMaXN0LnNpemUoKSkKICAg
ICAgICAgc2V0UnVuVGhyZWFkKGZhbHNlKTsKIH0KIApAQCAtMzMzLDggKzMzMyw2IEBAIFJlc291
cmNlUmVzcG9uc2UgQ3VybERvd25sb2FkOjpnZXRSZXNwb25zZSgpIGNvbnN0CiAKIHZvaWQgQ3Vy
bERvd25sb2FkOjpjbG9zZUZpbGUoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4
KTsKLQogICAgIGlmIChtX3RlbXBIYW5kbGUgIT0gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkg
ewogICAgICAgICBXZWJDb3JlOjpjbG9zZUZpbGUobV90ZW1wSGFuZGxlKTsKICAgICAgICAgbV90
ZW1wSGFuZGxlID0gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKQEAgLTQ1MCw2ICs0NDgsOCBA
QCB2b2lkIEN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGFPZkxlbmd0aChpbnQgc2l6ZSkKIAog
dm9pZCBDdXJsRG93bmxvYWQ6OmRpZEZpbmlzaCgpCiB7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fbXV0ZXgpOworCiAgICAgY2xvc2VGaWxlKCk7CiAgICAgbW92ZUZpbGVUb0Rlc3RpbmF0aW9u
KCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315971</attachid>
            <date>2017-07-19 22:17:19 -0700</date>
            <delta_ts>2017-07-19 22:36:49 -0700</delta_ts>
            <desc>remove mutex</desc>
            <filename>134392-2.diff</filename>
            <type>text/plain</type>
            <size>4041</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmMTM5MzNmZWY5YS4uNTUwMTI0MjIxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzMCBAQAogMjAxNy0wNy0xOSAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CiAKKyAgICAgICAgY3VybDogRml4IHNldmVyYWwgZGVhZGxvY2tzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQzOTIKKworICAgICAgICBC
ZWNhdXNlIG9mIHRoZSByZWZhY3RvcmluZyBlZmZvcnQgb2YgQ3VybEpvYk1hbmFnZXIKKwlmb3Jt
YWx5IGtub3duIGFzIEN1cmxEb3dubG9hZE1hbmFnZXIsIHRoZSB0YXNrcyBvZiB0aGlzCisJQ3Vy
bERvd25sb2FkIHdvcmtzIHZlcnkgc2VxdWVuY2lhbCB3aGljaCBtZWFucyBubyBuZWVkCisJdG8g
bWFpbnRhaW4gZGVhZGxvY2sgYnkgbXV0ZXguIFdlIGNhbiBzYWZlbHkgcmVtb3ZlCisJdGhhdCBi
eSBpdHMgbmV3IGRlc2lnbi4KKworCVJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmluaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25s
b2FkOjpnZXRUZW1wUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmdldFVy
bCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmdldFJlc3BvbnNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6Y2xvc2VGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6
OkN1cmxEb3dubG9hZDo6bW92ZUZpbGVUb0Rlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkN1cmxEb3dubG9hZDo6YWRkSGVhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxv
YWQ6OmRpZFJlY2VpdmVIZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpj
bGVhbnVwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmg6
CisKKzIwMTctMDctMTkgIEJhc3VrZSBTdXp1a2kgIDxCYXN1a2UuU3V6dWtpQHNvbnkuY29tPgor
CiAgICAgICAgIGN1cmw6IERvbid0IHRyeSB0byBjbG9zZSAmIG1vdmUgdGhlIGRvd25sb2FkZWQg
ZmlsZSB0d2ljZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM0MzkzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsRG93bmxvYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0N1cmxEb3dubG9hZC5jcHAKaW5kZXggNjU1MjQ0YmU3ZTMuLmQ0YWUzMWQ4NWZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2Fk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25s
b2FkLmNwcApAQCAtNTYsOCArNTYsNiBAQCB2b2lkIEN1cmxEb3dubG9hZDo6aW5pdChDdXJsRG93
bmxvYWRMaXN0ZW5lciogbGlzdGVuZXIsIGNvbnN0IFVSTCYgdXJsKQogICAgIGlmICghbGlzdGVu
ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwot
CiAgICAgbV9jdXJsSGFuZGxlLmVuYWJsZVNoYXJlSGFuZGxlKCk7CiAKICAgICBtX2N1cmxIYW5k
bGUuc2V0VXJsKHVybCk7CkBAIC0xMjAsMjYgKzExOCwyMSBAQCBib29sIEN1cmxEb3dubG9hZDo6
Y2FuY2VsKCkKIAogU3RyaW5nIEN1cmxEb3dubG9hZDo6Z2V0VGVtcFBhdGgoKSBjb25zdAogewot
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIHJldHVybiBtX3RlbXBQYXRoOwog
fQogCiBTdHJpbmcgQ3VybERvd25sb2FkOjpnZXRVcmwoKSBjb25zdAogewotICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgIHJldHVybiBTdHJpbmcobV9jdXJsSGFuZGxlLnVybCgp
KTsKIH0KIAogUmVzb3VyY2VSZXNwb25zZSBDdXJsRG93bmxvYWQ6OmdldFJlc3BvbnNlKCkgY29u
c3QKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICByZXR1cm4gbV9yZXNw
b25zZTsKIH0KIAogdm9pZCBDdXJsRG93bmxvYWQ6OmNsb3NlRmlsZSgpCiB7Ci0gICAgTG9ja0hv
bGRlciBsb2NrZXIobV9tdXRleCk7Ci0KICAgICBpZiAobV90ZW1wSGFuZGxlICE9IGludmFsaWRQ
bGF0Zm9ybUZpbGVIYW5kbGUpIHsKICAgICAgICAgV2ViQ29yZTo6Y2xvc2VGaWxlKG1fdGVtcEhh
bmRsZSk7CiAgICAgICAgIG1fdGVtcEhhbmRsZSA9IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7
CkBAIC0xNDgsOCArMTQxLDYgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmNsb3NlRmlsZSgpCiAKIHZv
aWQgQ3VybERvd25sb2FkOjptb3ZlRmlsZVRvRGVzdGluYXRpb24oKQogewotICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fbXV0ZXgpOwotCiAgICAgaWYgKG1fZGVzdGluYXRpb24uaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm47CiAKQEAgLTE2NywxNCArMTU4LDExIEBAIHZvaWQgQ3VybERvd25sb2Fk
Ojp3cml0ZURhdGFUb0ZpbGUoY29uc3QgY2hhciogZGF0YSwgaW50IHNpemUpCiAKIHZvaWQgQ3Vy
bERvd25sb2FkOjphZGRIZWFkZXJzKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsK
LSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICBtX2N1cmxIYW5kbGUuYXBwZW5k
UmVxdWVzdEhlYWRlcnMocmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCkpOwogfQogCiB2b2lkIEN1
cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZUhlYWRlcihjb25zdCBTdHJpbmcmIGhlYWRlcikKIHsKLSAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKLQogICAgIGlmIChoZWFkZXIgPT0gIlxyXG4i
IHx8IGhlYWRlciA9PSAiXG4iKSB7CiAgICAgICAgIGxvbmcgaHR0cENvZGUgPSAwOwogICAgICAg
ICBtX2N1cmxIYW5kbGUuZ2V0UmVzcG9uc2VDb2RlKGh0dHBDb2RlKTsKQEAgLTIyMSwxMiArMjA5
LDkgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OnN1Y2Nlc3MoKQogdm9pZCBDdXJsRG93bmxvYWQ6OmNs
ZWFudXAoKQogewogICAgIGNsb3NlRmlsZSgpOwotICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9tdXRleCk7CiAKLSAgICAgICAgaWYgKG1fZGVsZXRlc0ZpbGVVcG9uRmFpbHVyZSkK
LSAgICAgICAgICAgIGRlbGV0ZUZpbGUobV90ZW1wUGF0aCk7Ci0gICAgfQorICAgIGlmIChtX2Rl
bGV0ZXNGaWxlVXBvbkZhaWx1cmUpCisgICAgICAgIGRlbGV0ZUZpbGUobV90ZW1wUGF0aCk7CiB9
CiAKIHNpemVfdCBDdXJsRG93bmxvYWQ6OndyaXRlQ2FsbGJhY2soY2hhciogcHRyLCBzaXplX3Qg
c2l6ZSwgc2l6ZV90IG5tZW1iLCB2b2lkKiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5oCmluZGV4IGYwMGM4MzU2YzhiLi41
YThmNzI3YWE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0N1cmxEb3dubG9hZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsRG93bmxvYWQuaApAQCAtOTgsNyArOTgsNiBAQCBwcml2YXRlOgogICAgIFBsYXRm
b3JtRmlsZUhhbmRsZSBtX3RlbXBIYW5kbGUgeyBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07
CiAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwogICAgIGJvb2wgbV9kZWxldGVzRmls
ZVVwb25GYWlsdXJlIHsgZmFsc2UgfTsKLSAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKICAgICBD
dXJsRG93bmxvYWRMaXN0ZW5lciogbV9saXN0ZW5lciB7IG51bGxwdHIgfTsKIH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>