<?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>186361</bug_id>
          
          <creation_ts>2018-06-06 13:51:05 -0700</creation_ts>
          <short_desc>[Win] Fix WorkQueue crash</short_desc>
          <delta_ts>2018-06-14 11:58:47 -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>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Basuke Suzuki">basuke</reporter>
          <assigned_to name="Basuke Suzuki">basuke</assigned_to>
          <cc>basuke</cc>
    
    <cc>fujii</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1430572</commentid>
    <comment_count>0</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-06-06 13:51:05 -0700</bug_when>
    <thetext>WorkQueue::handleCallback was called after WorkQueue::unregisterAndCloseHandle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430574</commentid>
    <comment_count>1</comment_count>
      <attachid>342080</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-06-06 13:52:58 -0700</bug_when>
    <thetext>Created attachment 342080
WIP - first trial</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430655</commentid>
    <comment_count>2</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-06-06 17:56:10 -0700</bug_when>
    <thetext>It&apos;s easy to reproduce this crash by using TestWebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430844</commentid>
    <comment_count>3</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-06-07 08:50:45 -0700</bug_when>
    <thetext>Fujihiro&gt;

Question about your patch. This removes the consideration mentioned here:

    // We&apos;re going to make a blocking call to ::UnregisterWaitEx before closing the handle. (The
    // blocking version of ::UnregisterWaitEx is much simpler than the non-blocking version.) If we
    // do this on the current thread, we&apos;ll deadlock if we&apos;re currently in a callback function for
    // the wait we&apos;re unregistering. So instead we do it asynchronously on some other worker thread.

I&apos;m not sure this happens in actual use case, but it seems possible. To solve that, how about adding a invalid flag to WorkItemContext? Then we can avoid invocation in a handleCallback after unregisterAndCloseHandle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431129</commentid>
    <comment_count>4</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-06-07 21:01:25 -0700</bug_when>
    <thetext>Year. My patch doesn&apos;t do thinkgs right. But, it works for me at least for running WinCairo WK2 stably.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1433071</commentid>
    <comment_count>5</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-06-14 11:58:47 -0700</bug_when>
    <thetext>This bug will be handled in https://bugs.webkit.org/show_bug.cgi?id=186582 .</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342080</attachid>
            <date>2018-06-06 13:52:58 -0700</date>
            <delta_ts>2018-06-06 13:52:58 -0700</delta_ts>
            <desc>WIP - first trial</desc>
            <filename>186361.diff</filename>
            <type>text/plain</type>
            <size>3933</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oIGIvU291cmNlL1dURi93dGYv
V29ya1F1ZXVlLmgKaW5kZXggODVlY2E2MmMwY2EuLjM4ZGI5NmJmNzQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUu
aApAQCAtMTAwLDkgKzEwMCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCB0cnlSZWdpc3RlckFzV29y
a1RocmVhZCgpOwogICAgIHZvaWQgdW5yZWdpc3RlckFzV29ya1RocmVhZCgpOwogICAgIHZvaWQg
cGVyZm9ybVdvcmtPblJlZ2lzdGVyZWRXb3JrVGhyZWFkKCk7Ci0KLSAgICBzdGF0aWMgdm9pZCB1
bnJlZ2lzdGVyV2FpdEFuZERlc3Ryb3lJdGVtU29vbihSZWY8V29ya0l0ZW1Db250ZXh0PiYmKTsK
LSAgICBzdGF0aWMgRFdPUkQgV0lOQVBJIHVucmVnaXN0ZXJXYWl0QW5kRGVzdHJveUl0ZW1DYWxs
YmFjayh2b2lkKiBjb250ZXh0KTsKICNlbmRpZgogCiAjaWYgVVNFKENPQ09BX0VWRU5UX0xPT1Ap
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93aW4vV29ya0l0ZW1Db250ZXh0LmggYi9Tb3Vy
Y2UvV1RGL3d0Zi93aW4vV29ya0l0ZW1Db250ZXh0LmgKaW5kZXggMGFhMTVjNzUyNjkuLjkzNzIw
OGM2YWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vV29ya0l0ZW1Db250ZXh0LmgK
KysrIGIvU291cmNlL1dURi93dGYvd2luL1dvcmtJdGVtQ29udGV4dC5oCkBAIC00NSw3ICs0NSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Xb3JrSXRlbUNvbnRleHQoKTsKIAogICAgIFdpbjMy
SGFuZGxlJiBoYW5kbGUoKSB7IHJldHVybiBtX2hhbmRsZTsgfQotICAgIFdpbjMySGFuZGxlJiB3
YWl0SGFuZGxlKCkgeyByZXR1cm4gbV93YWl0SGFuZGxlOyB9CisgICAgSEFORExFJiB3YWl0SGFu
ZGxlKCkgeyByZXR1cm4gbV93YWl0SGFuZGxlOyB9CiAgICAgRnVuY3Rpb248dm9pZCgpPiYgZnVu
Y3Rpb24oKSB7IHJldHVybiBtX2Z1bmN0aW9uOyB9CiAgICAgV29ya1F1ZXVlKiBxdWV1ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcXVldWUuZ2V0KCk7IH0KIApAQCAtNTMsNyArNTMsNyBAQCBwcml2YXRl
OgogICAgIFdvcmtJdGVtQ29udGV4dChIQU5ETEUsIEhBTkRMRSwgRnVuY3Rpb248dm9pZCgpPiYm
LCBXb3JrUXVldWUqKTsKIAogICAgIFdpbjMySGFuZGxlIG1faGFuZGxlOwotICAgIFdpbjMySGFu
ZGxlIG1fd2FpdEhhbmRsZTsKKyAgICBIQU5ETEUgbV93YWl0SGFuZGxlOwogICAgIEZ1bmN0aW9u
PHZvaWQoKT4gbV9mdW5jdGlvbjsKICAgICBSZWZQdHI8V29ya1F1ZXVlPiBtX3F1ZXVlOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwIGIvU291cmNl
L1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHAKaW5kZXggNDFiZmRlMDk2ZDcuLjM0ZTg0Y2Ji
ZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vV29ya1F1ZXVlV2luLmNwcAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi93aW4vV29ya1F1ZXVlV2luLmNwcApAQCAtNTEsNyArNTEsNyBAQCB2
b2lkIFdvcmtRdWV1ZTo6cmVnaXN0ZXJIYW5kbGUoSEFORExFIGhhbmRsZSwgRnVuY3Rpb248dm9p
ZCgpPiYmIGZ1bmN0aW9uKQogewogICAgIFJlZjxXb3JrSXRlbUNvbnRleHQ+IGNvbnRleHQgPSBX
b3JrSXRlbUNvbnRleHQ6OmNyZWF0ZShoYW5kbGUsIG51bGxwdHIsIFdURk1vdmUoZnVuY3Rpb24p
LCB0aGlzKTsKIAotICAgIGlmICghOjpSZWdpc3RlcldhaXRGb3JTaW5nbGVPYmplY3QoJmNvbnRl
eHQtPndhaXRIYW5kbGUoKS5tX2hhbmRsZSwgaGFuZGxlLCBoYW5kbGVDYWxsYmFjaywgY29udGV4
dC5wdHIoKSwgSU5GSU5JVEUsIFdUX0VYRUNVVEVERUZBVUxUKSkKKyAgICBpZiAoITo6UmVnaXN0
ZXJXYWl0Rm9yU2luZ2xlT2JqZWN0KCZjb250ZXh0LT53YWl0SGFuZGxlKCksIGhhbmRsZSwgaGFu
ZGxlQ2FsbGJhY2ssIGNvbnRleHQucHRyKCksIElORklOSVRFLCBXVF9FWEVDVVRFREVGQVVMVCkp
CiAgICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobV90aW1lclF1ZXVlLCAiOjpSZWdpc3Rlcldh
aXRGb3JTaW5nbGVPYmplY3QgJWx1IiwgOjpHZXRMYXN0RXJyb3IoKSk7CiAKICAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1faXRlbXNNYXBMb2NrKTsKQEAgLTY0LDcgKzY0LDkgQEAgdm9pZCBX
b3JrUXVldWU6OnVucmVnaXN0ZXJBbmRDbG9zZUhhbmRsZShIQU5ETEUgaGFuZGxlKQogICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9pdGVtc01hcExvY2spOwogICAgIEFTU0VSVF9BUkcoaGFu
ZGxlLCBtX2l0ZW1zTWFwLmNvbnRhaW5zKGhhbmRsZSkpOwogCi0gICAgdW5yZWdpc3RlcldhaXRB
bmREZXN0cm95SXRlbVNvb24obV9pdGVtc01hcC50YWtlKGhhbmRsZSkudmFsdWUoKSk7CisgICAg
YXV0byB3b3JrSXRlbSA9IG1faXRlbXNNYXAudGFrZShoYW5kbGUpLnZhbHVlKCk7CisgICAgaWYg
KCE6OlVucmVnaXN0ZXJXYWl0RXgod29ya0l0ZW0tPndhaXRIYW5kbGUoKSwgSU5WQUxJRF9IQU5E
TEVfVkFMVUUpKQorICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGZhbHNlLCAiOjpVbnJlZ2lz
dGVyV2FpdEV4IGZhaWxlZCB3aXRoICclcyciLCA6OkdldExhc3RFcnJvcigpKTsKIH0KIAogRFdP
UkQgV29ya1F1ZXVlOjp3b3JrVGhyZWFkQ2FsbGJhY2sodm9pZCogY29udGV4dCkKQEAgLTIyMiwy
NiArMjI0LDQgQEAgdm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIoU2Vjb25kcyBkdXJhdGlv
biwgRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQogICAgIGNvbnRleHQubGVha1JlZigpOwog
fQogCi12b2lkIFdvcmtRdWV1ZTo6dW5yZWdpc3RlcldhaXRBbmREZXN0cm95SXRlbVNvb24oUmVm
PFdvcmtJdGVtQ29udGV4dD4mJiB3b3JrSXRlbSkKLXsKLSAgICAvLyBXZSdyZSBnb2luZyB0byBt
YWtlIGEgYmxvY2tpbmcgY2FsbCB0byA6OlVucmVnaXN0ZXJXYWl0RXggYmVmb3JlIGNsb3Npbmcg
dGhlIGhhbmRsZS4gKFRoZQotICAgIC8vIGJsb2NraW5nIHZlcnNpb24gb2YgOjpVbnJlZ2lzdGVy
V2FpdEV4IGlzIG11Y2ggc2ltcGxlciB0aGFuIHRoZSBub24tYmxvY2tpbmcgdmVyc2lvbi4pIElm
IHdlCi0gICAgLy8gZG8gdGhpcyBvbiB0aGUgY3VycmVudCB0aHJlYWQsIHdlJ2xsIGRlYWRsb2Nr
IGlmIHdlJ3JlIGN1cnJlbnRseSBpbiBhIGNhbGxiYWNrIGZ1bmN0aW9uIGZvcgotICAgIC8vIHRo
ZSB3YWl0IHdlJ3JlIHVucmVnaXN0ZXJpbmcuIFNvIGluc3RlYWQgd2UgZG8gaXQgYXN5bmNocm9u
b3VzbHkgb24gc29tZSBvdGhlciB3b3JrZXIgdGhyZWFkLgotICAgIDo6UXVldWVVc2VyV29ya0l0
ZW0odW5yZWdpc3RlcldhaXRBbmREZXN0cm95SXRlbUNhbGxiYWNrLCB3b3JrSXRlbS5wdHIoKSwg
V1RfRVhFQ1VURURFRkFVTFQpOwotfQotCi1EV09SRCBXSU5BUEkgV29ya1F1ZXVlOjp1bnJlZ2lz
dGVyV2FpdEFuZERlc3Ryb3lJdGVtQ2FsbGJhY2sodm9pZCogZGF0YSkKLXsKLSAgICBBU1NFUlRf
QVJHKGRhdGEsIGRhdGEpOwotICAgIFdvcmtJdGVtQ29udGV4dCogY29udGV4dCA9IHN0YXRpY19j
YXN0PFdvcmtJdGVtQ29udGV4dCo+KGRhdGEpOwotCi0gICAgLy8gTm93IHRoYXQgd2Uga25vdyB3
ZSdyZSBub3QgaW4gYSBjYWxsYmFjayBmdW5jdGlvbiBmb3IgdGhlIHdhaXQgd2UncmUgdW5yZWdp
c3RlcmluZywgd2UgY2FuCi0gICAgLy8gbWFrZSBhIGJsb2NraW5nIGNhbGwgdG8gOjpVbnJlZ2lz
dGVyV2FpdEV4LgotICAgIGlmICghOjpVbnJlZ2lzdGVyV2FpdEV4KGNvbnRleHQtPndhaXRIYW5k
bGUoKS5nZXQoKSwgSU5WQUxJRF9IQU5ETEVfVkFMVUUpKQotICAgICAgICBBU1NFUlRfV0lUSF9N
RVNTQUdFKGZhbHNlLCAiOjpVbnJlZ2lzdGVyV2FpdEV4IGZhaWxlZCB3aXRoICclcyciLCA6Okdl
dExhc3RFcnJvcigpKTsKLQotICAgIHJldHVybiAwOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXVEYK
</data>

          </attachment>
      

    </bug>

</bugzilla>