<?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>172884</bug_id>
          
          <creation_ts>2017-06-02 17:50:58 -0700</creation_ts>
          <short_desc>UIScriptController: Synchronously calling the callback of an async task causes assertions and lots of trouble</short_desc>
          <delta_ts>2017-06-02 17:51:10 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Tim Horton">thorton</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>lforschler</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1315314</commentid>
    <comment_count>0</comment_count>
      <attachid>311891</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-06-02 17:50:58 -0700</bug_when>
    <thetext>Created attachment 311891
test/repro

I wrote a test in r217587 that is broken because the async task&apos;s completion block is called synchronously, and UIScriptController is just not designed to deal with that.

I&apos;ve attached a patch that adds a test that reproduces this, but don&apos;t really have a great plan to fix (I&apos;m just going to paper over it in my test for now).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311891</attachid>
            <date>2017-06-02 17:50:58 -0700</date>
            <delta_ts>2017-06-02 17:50:58 -0700</delta_ts>
            <desc>test/repro</desc>
            <filename>uisc-sync-async-reply.diff</filename>
            <type>text/plain</type>
            <size>6810</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91aXNjcmlwdGNvbnRyb2xsZXIv
dWktc2lkZS1zY3JpcHQtd2l0aC1zeW5jaHJvbm91cy10YXNrLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2hhcm5lc3MvdWlzY3JpcHRjb250cm9sbGVyL3VpLXNpZGUtc2NyaXB0LXdpdGgtc3luY2hy
b25vdXMtdGFzay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5k
ZjRkMWFhZTA4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91
aXNjcmlwdGNvbnRyb2xsZXIvdWktc2lkZS1zY3JpcHQtd2l0aC1zeW5jaHJvbm91cy10YXNrLmh0
bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHNjcmlwdCBpZD0idWktc2NyaXB0IiB0eXBlPSJ0ZXh0L3BsYWluIj4KKyAgICAgICAgKGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIGNvbXBsZXRpb25zID0gJ1J1bm5pbmcgdGhlIFVJ
LXNpZGUgc2NyaXB0XG4nOworICAgICAgICAgICAgCisgICAgICAgICAgICB1aUNvbnRyb2xsZXIu
ZG9Bc3luY1Rhc2tTeW5jaHJvbm91c2x5Rm9yVGVzdGluZyhmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICBjb21wbGV0aW9ucyArPSAnQ29tcGxldGVkIHN5bmMgdGFzayAxLjEuXG4nOworCisg
ICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmRvQXN5bmNUYXNrU3luY2hyb25vdXNseUZvclRl
c3RpbmcoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zICs9ICdD
b21wbGV0ZWQgc3luYyB0YXNrIDEuMi5cbic7CisKKyAgICAgICAgICAgICAgICAgICAgdWlDb250
cm9sbGVyLmRvQXN5bmNUYXNrU3luY2hyb25vdXNseUZvclRlc3RpbmcoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9ucyArPSAnQ29tcGxldGVkIHN5bmMgdGFz
ayAxLjMuXG4nOworCisgICAgICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3Jp
cHRDb21wbGV0ZShjb21wbGV0aW9ucyk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pKCk7CisgICAgPC9zY3Jp
cHQ+CisKKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW5UZXN0
KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIucnVuVUlTY3JpcHQpIHsK
KyAgICAgICAgICAgICAgICB2YXIgdWlTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dWktc2NyaXB0JykudGV4dDsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0
KHVpU2NyaXB0LCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLnRleHRDb250ZW50ID0gcmVzdWx0OworICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+CisKKzxwcmUgaWQ9InJlc3VsdCI+VGhpcyB0ZXN0IGhhcyB0byBydW4gd2l0aCBVSVNj
cmlwdENvbnRyb2xsZXIgYXZhaWxhYmxlLjwvcHJlPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1t
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQppbmRl
eCA5MTNlYzFlMTUwMS4uNGRhNTU5MzQ3OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQpAQCAtNTMsNiArNTMsMTIgQEAgdm9pZCBV
SVNjcmlwdENvbnRyb2xsZXI6OmRvQXN5bmNUYXNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCiAgICAg
fSk7CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkb0FzeW5jVGFza1N5bmNocm9ub3Vz
bHlGb3JUZXN0aW5nKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgdW5zaWduZWQgY2FsbGJh
Y2tJRCA9IG1fY29udGV4dC0+cHJlcGFyZUZvckFzeW5jVGFzayhjYWxsYmFjaywgQ2FsbGJhY2tU
eXBlTm9uUGVyc2lzdGVudCk7CisgICAgbV9jb250ZXh0LT5hc3luY1Rhc2tDb21wbGV0ZShjYWxs
YmFja0lEKTsKK30KKwogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmRvQWZ0ZXJQcmVzZW50YXRp
b25VcGRhdGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKIHsKICAgICByZXR1cm4gZG9Bc3luY1Rhc2so
Y2FsbGJhY2spOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0
Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRy
b2xsZXJNYWMubW0KaW5kZXggMjNkNDBlZDdmMDQuLjQyMTM5Y2VjMDY3IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTQ5LDYg
KzQ5LDEyIEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkb0FzeW5jVGFzayhKU1ZhbHVlUmVm
IGNhbGxiYWNrKQogICAgIH0pOwogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6ZG9Bc3lu
Y1Rhc2tTeW5jaHJvbm91c2x5Rm9yVGVzdGluZyhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAg
IHVuc2lnbmVkIGNhbGxiYWNrSUQgPSBtX2NvbnRleHQtPnByZXBhcmVGb3JBc3luY1Rhc2soY2Fs
bGJhY2ssIENhbGxiYWNrVHlwZU5vblBlcnNpc3RlbnQpOworICAgIG1fY29udGV4dC0+YXN5bmNU
YXNrQ29tcGxldGUoY2FsbGJhY2tJRCk7Cit9CisKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpk
b0FmdGVyUHJlc2VudGF0aW9uVXBkYXRlKEpTVmFsdWVSZWYgY2FsbGJhY2spCiB7CiAgICAgcmV0
dXJuIGRvQXN5bmNUYXNrKGNhbGxiYWNrKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwgYi9U
b29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENv
bnRyb2xsZXIuaWRsCmluZGV4IDMyYTk1YzA2ZmU5Li5mYTExOTc5YjBkZiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRD
b250cm9sbGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4
dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC0zMyw2ICszMyw3IEBAIGVudW0g
RGV2aWNlT3JpZW50YXRpb24gewogaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxlciB7CiAKICAg
ICB2b2lkIGRvQXN5bmNUYXNrKG9iamVjdCBjYWxsYmFjayk7IC8vIFVzZWQgdG8gdGVzdCB0aGUg
aGFybmVzcy4KKyAgICB2b2lkIGRvQXN5bmNUYXNrU3luY2hyb25vdXNseUZvclRlc3Rpbmcob2Jq
ZWN0IGNhbGxiYWNrKTsgLy8gVXNlZCB0byB0ZXN0IHRoZSBoYXJuZXNzLgogICAgIHZvaWQgdWlT
Y3JpcHRDb21wbGV0ZShET01TdHJpbmcgcmVzdWx0KTsKIAogICAgIHZvaWQgZG9BZnRlclByZXNl
bnRhdGlvblVwZGF0ZShvYmplY3QgY2FsbGJhY2spOyAvLyBDYWxsIHRoZSBjYWxsYmFjayBhZnRl
ciBzZW5kaW5nIGEgbWVzc2FnZSB0byB0aGUgV2ViUHJvY2VzcyBhbmQgcmVjZWl2aW5nIGEgc3Vi
c2VxdWVudCB1cGRhdGUuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJl
ZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA3YjA4OTU2ZmQ2
Mi4uZTExOWFmMDE1N2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtODksNiArODks
MTAgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmRvQXN5bmNUYXNrKEpTVmFsdWVSZWYpCiB7
CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkb0FzeW5jVGFza1N5bmNocm9ub3VzbHlG
b3JUZXN0aW5nKEpTVmFsdWVSZWYpCit7Cit9CisKIHZvaWQgc2ltdWxhdGVBY2Nlc3NpYmlsaXR5
U2V0dGluZ3NDaGFuZ2VOb3RpZmljYXRpb24oSlNWYWx1ZVJlZikKIHsKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxl
ci5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250
cm9sbGVyLmgKaW5kZXggZDk5ODNlMjNiMjQuLmU3ODRlMDNhMGU3IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaAor
KysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRy
b2xsZXIuaApAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYWtlV2luZG93T2Jq
ZWN0KEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYgd2luZG93T2JqZWN0LCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pOwogICAgIAogICAgIHZvaWQgZG9Bc3luY1Rhc2soSlNWYWx1ZVJlZiBjYWxsYmFj
ayk7CisgICAgdm9pZCBkb0FzeW5jVGFza1N5bmNocm9ub3VzbHlGb3JUZXN0aW5nKEpTVmFsdWVS
ZWYgY2FsbGJhY2spOwogICAgIHZvaWQgZG9BZnRlclByZXNlbnRhdGlvblVwZGF0ZShKU1ZhbHVl
UmVmIGNhbGxiYWNrKTsKICAgICB2b2lkIGRvQWZ0ZXJOZXh0U3RhYmxlUHJlc2VudGF0aW9uVXBk
YXRlKEpTVmFsdWVSZWYgY2FsbGJhY2spOwogICAgIHZvaWQgZG9BZnRlclZpc2libGVDb250ZW50
UmVjdFVwZGF0ZShKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbSBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQppbmRleCBkYjFmZmEwMDNhNy4u
YTQwMzQ1MjUwMjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2Ny
aXB0Q29udHJvbGxlcklPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNj
cmlwdENvbnRyb2xsZXJJT1MubW0KQEAgLTcxLDYgKzcxLDEyIEBAIHZvaWQgVUlTY3JpcHRDb250
cm9sbGVyOjpkb0FzeW5jVGFzayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQogICAgIH0pOwogfQogCit2
b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6ZG9Bc3luY1Rhc2tTeW5jaHJvbm91c2x5Rm9yVGVzdGlu
ZyhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIHVuc2lnbmVkIGNhbGxiYWNrSUQgPSBtX2Nv
bnRleHQtPnByZXBhcmVGb3JBc3luY1Rhc2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZU5vblBlcnNp
c3RlbnQpOworICAgIG1fY29udGV4dC0+YXN5bmNUYXNrQ29tcGxldGUoY2FsbGJhY2tJRCk7Cit9
CisKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkb0FmdGVyUHJlc2VudGF0aW9uVXBkYXRlKEpT
VmFsdWVSZWYgY2FsbGJhY2spCiB7CiAgICAgVGVzdFJ1bm5lcldLV2ViVmlldyAqd2ViVmlldyA9
IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXco
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJv
bGxlck1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxl
ck1hYy5tbQppbmRleCA0MTM1NGMwMDRmMi4uZjA5N2UzNmM4MjcgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTYwLDYg
KzYwLDEyIEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkb0FzeW5jVGFzayhKU1ZhbHVlUmVm
IGNhbGxiYWNrKQogICAgIH0pOwogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6ZG9Bc3lu
Y1Rhc2tTeW5jaHJvbm91c2x5Rm9yVGVzdGluZyhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAg
IHVuc2lnbmVkIGNhbGxiYWNrSUQgPSBtX2NvbnRleHQtPnByZXBhcmVGb3JBc3luY1Rhc2soY2Fs
bGJhY2ssIENhbGxiYWNrVHlwZU5vblBlcnNpc3RlbnQpOworICAgIG1fY29udGV4dC0+YXN5bmNU
YXNrQ29tcGxldGUoY2FsbGJhY2tJRCk7Cit9CisKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpk
b0FmdGVyUHJlc2VudGF0aW9uVXBkYXRlKEpTVmFsdWVSZWYgY2FsbGJhY2spCiB7CiAgICAgcmV0
dXJuIGRvQXN5bmNUYXNrKGNhbGxiYWNrKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>