<?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>22531</bug_id>
          
          <creation_ts>2008-11-27 03:50:01 -0800</creation_ts>
          <short_desc>Stack overflow on PowerPC on fast/workers/use-machine-stack.html</short_desc>
          <delta_ts>2009-03-19 21:38:41 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>100530</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-27 03:50:01 -0800</bug_when>
    <thetext>Apparently, non-CTI interpreter uses a lot of stack for native calls, exhausting the whole 512K stack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100531</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-27 04:04:46 -0800</bug_when>
    <thetext>Also, I&apos;m building with gcc 4.0.1 on Tiger - maybe gcc 4.2 learned to reuse stack space used by scoped variables? There&apos;s lots of src and dst variables in privateExecute().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100535</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-27 06:10:52 -0800</bug_when>
    <thetext>&quot;A lot&quot; means ~7K per recursive call on this test. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100594</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-28 03:45:06 -0800</bug_when>
    <thetext>&lt;rdar://problem/6406045&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100595</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-28 03:47:11 -0800</bug_when>
    <thetext>This is not specific to worker threads - the same crash would happen for a thread created via JavaScriptCore API (even worse, in that case we don&apos;t control stack size of the thread).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100846</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-12-01 12:05:35 -0800</bug_when>
    <thetext>Disabled the test in r38862.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106287</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-01-19 14:28:31 -0800</bug_when>
    <thetext>7KB per native call? Are you serious? That seems absurd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106309</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-01-19 23:05:42 -0800</bug_when>
    <thetext>I measured 7K on a debug build - release may be slightly better, but not much better:
 JSC::Interpreter::privateExecute(JSC::Interpreter::ExecutionFlag, JSC::RegisterFile*, JSC::ExecState*, JSC::JSValuePtr*
):
 +00000 000cf090 7C0802A6             mflr              r0
 +00004 000cf094 DBE1FFF8             stfd              f31,0xfff8(SP)
 +00008 000cf098 2F850001             cmpwi             cr7,r5,0x1
 +0000c 000cf09c BDA1FFAC             stmw              r13,0xffac(SP)
 +00010 000cf0a0 429F0005             bcl               20,31,$+4
 +00014 000cf0a4 90010008             stw               r0,0x8(SP)
 +00018 000cf0a8 9421ECC0             stwu              SP,0xecc0(SP)

0xecc0 is -4928, so privateExecute alone takes about 5K, and there are other methods involved in each call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114439</commentid>
    <comment_count>8</comment_count>
      <attachid>28779</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2009-03-19 21:25:33 -0700</bug_when>
    <thetext>Created attachment 28779
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114440</commentid>
    <comment_count>9</comment_count>
      <attachid>28779</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2009-03-19 21:27:46 -0700</bug_when>
    <thetext>Comment on attachment 28779
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114441</commentid>
    <comment_count>10</comment_count>
      <attachid>28779</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-03-19 21:27:51 -0700</bug_when>
    <thetext>Comment on attachment 28779
patch

r=me, though i&apos;d like you to compare degree of reentry between ffx and us..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114442</commentid>
    <comment_count>11</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2009-03-19 21:32:02 -0700</bug_when>
    <thetext>Committed revision 41852.

I&apos;m not sure how important it is for JavaScript to work well on threads where the client has artificially shrunk the stack size from the default. If that turns out to be an important use case, I guess we&apos;ll want an API for specifying how much stack JS gets to use, or a mechanism for asking the OS what the stack boundary is.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114443</commentid>
    <comment_count>12</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2009-03-19 21:38:41 -0700</bug_when>
    <thetext>&gt; r=me, though i&apos;d like you to compare degree of reentry between ffx and us..

Firefox allows 400-500 -- far more than both our old 128 and our new 64.

If we discover that this is a compatibility problem, we should be able to reduce the stack used by Interpreter::execute and dial up the recursion limit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28779</attachid>
            <date>2009-03-19 21:25:33 -0700</date>
            <delta_ts>2009-03-19 21:27:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5162</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDQxODUxKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMDktMDMtMTkgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBGaXhlZCA8cmRhcjovL3Byb2JsZW0vNjQwNjA0NT4gUkVHUkVT
U0lPTjogU3RhY2sgb3ZlcmZsb3cgb24gUG93ZXJQQyBvbgorICAgICAgICBmYXN0L3dvcmtlcnMv
dXNlLW1hY2hpbmUtc3RhY2suaHRtbCAoMjI1MzEpCisKKyAgICAgICAgRGlhbGVkIGRvd24gdGhl
IHJlLWVudHJ5IGFsbG93YW5jZSB0byA2NCAoZnJvbSAxMjgpLgorICAgICAgICAKKyAgICAgICAg
T24gYSA1MTJLIHN0YWNrLCB0aGlzIGxlYXZlcyBhYm91dCA2NEsgZm9yIG90aGVyIGNvZGUgb24g
dGhlIHN0YWNrIHdoaWxlCisgICAgICAgIEphdmFTY3JpcHQgaXMgcnVubmluZy4gTm90IHBlcmZl
Y3QsIGJ1dCBpdCBzb2x2ZXMgb3VyIGNyYXNoIG9uIFBQQy4KKworICAgICAgICBEaWZmZXJlbnQg
cGxhdGZvcm1zIG1heSB3YW50IHRvIGRpYWwgdGhpcyBkb3duIGV2ZW4gbW9yZS4KKworICAgICAg
ICBBbHNvLCBzdWJzdGFudGlhbGx5IHNocnVuayBCeXRlY29kZUdlbmVyYXRvci4gU2luY2Ugd2Ug
YWxsb2NhdGUgb25lIG9uCisgICAgICAgIHRoZSBzdGFjayBpbiBvcmRlciB0byB0aHJvdyBhIHN0
YWNrIG92ZXJmbG93IGV4Y2VwdGlvbiAtLSB3ZWxsLCBsZXQncworICAgICAgICBqdXN0IHNheSB0
aGUgb2xkIGNvZGUgaGFkIGFuIGFwcHJlY2lhdGlvbiBmb3IgaXJvbnkuCisKKyAgICAgICAgU3Vu
U3BpZGVyIHJlcG9ydHMgbm8gY2hhbmdlLgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmg6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaDoKKyAg
ICAgICAgKEpTQzo6KToKKwogMjAwOS0wMy0xOSAgQ2FtZXJvbiBad2FyaWNoICA8Y3d6d2FyaWNo
QHV3YXRlcmxvby5jYT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KSW5kZXg6
IEphdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEphdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCShy
ZXZpc2lvbiA0MTg0OCkKKysrIEphdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC00MzgsMTEgKzQzOCwxMSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgUmVnaXN0ZXJJRCBtX3RoaXNSZWdpc3RlcjsKICAgICAgICAgUmVnaXN0
ZXJJRCBtX2FyZ3VtZW50c1JlZ2lzdGVyOwogICAgICAgICBpbnQgbV9hY3RpdmF0aW9uUmVnaXN0
ZXJJbmRleDsKLSAgICAgICAgU2VnbWVudGVkVmVjdG9yPFJlZ2lzdGVySUQsIDUxMj4gbV9jYWxs
ZWVSZWdpc3RlcnM7Ci0gICAgICAgIFNlZ21lbnRlZFZlY3RvcjxSZWdpc3RlcklELCA1MTI+IG1f
cGFyYW1ldGVyczsKLSAgICAgICAgU2VnbWVudGVkVmVjdG9yPFJlZ2lzdGVySUQsIDUxMj4gbV9n
bG9iYWxzOwotICAgICAgICBTZWdtZW50ZWRWZWN0b3I8TGFiZWxTY29wZSwgMjU2PiBtX2xhYmVs
U2NvcGVzOwotICAgICAgICBTZWdtZW50ZWRWZWN0b3I8TGFiZWwsIDI1Nj4gbV9sYWJlbHM7Cisg
ICAgICAgIFNlZ21lbnRlZFZlY3RvcjxSZWdpc3RlcklELCAzMj4gbV9jYWxsZWVSZWdpc3RlcnM7
CisgICAgICAgIFNlZ21lbnRlZFZlY3RvcjxSZWdpc3RlcklELCAzMj4gbV9wYXJhbWV0ZXJzOwor
ICAgICAgICBTZWdtZW50ZWRWZWN0b3I8UmVnaXN0ZXJJRCwgMzI+IG1fZ2xvYmFsczsKKyAgICAg
ICAgU2VnbWVudGVkVmVjdG9yPExhYmVsU2NvcGUsIDg+IG1fbGFiZWxTY29wZXM7CisgICAgICAg
IFNlZ21lbnRlZFZlY3RvcjxMYWJlbCwgMzI+IG1fbGFiZWxzOwogICAgICAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gbV9sYXN0Q29uc3RhbnQ7CiAgICAgICAgIGludCBtX2ZpbmFsbHlEZXB0aDsKICAg
ICAgICAgaW50IG1fZHluYW1pY1Njb3BlRGVwdGg7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9JbnRlcnByZXRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0ludGVycHJldGVyLmgJKHJldmlzaW9uIDQxODQ4KQorKysgSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNyArNjIsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgV2lsbEV4ZWN1dGVTdGF0ZW1lbnQKICAgICB9Owog
Ci0gICAgZW51bSB7IE1heFJlZW50cnlEZXB0aCA9IDEyOCB9OworICAgIGVudW0geyBNYXhSZWVu
dHJ5RGVwdGggPSA2NCB9OwogCiAgICAgY2xhc3MgSW50ZXJwcmV0ZXIgewogICAgICAgICBmcmll
bmQgY2xhc3MgSklUOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDE4NTEpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAwOS0wMy0xOSAgR2Vv
ZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgUmUtZW5hYmxlZCB0aGlzIHRlc3QsIHNp
bmNlIGl0IG5vIGxvbmdlciBjcmFzaGVzIHdoZW4gSmF2YVNjcmlwdENvcmUgaXMKKyAgICAgICAg
Y29tcGlsZWQgaW4gbm9uLUpJVCBtb2RlLgorCisgICAgICAgICogZmFzdC93b3JrZXJzL3VzZS1t
YWNoaW5lLXN0YWNrLmh0bWw6IENvcGllZCBmcm9tIGZhc3Qvd29ya2Vycy91c2UtbWFjaGluZS1z
dGFjay5odG1sLWRpc2FibGVkLgorICAgICAgICAqIGZhc3Qvd29ya2Vycy91c2UtbWFjaGluZS1z
dGFjay5odG1sLWRpc2FibGVkOiBSZW1vdmVkLgorCiAyMDA5LTAzLTE5ICBDYW1lcm9uIFp3YXJp
Y2ggIDxjd3p3YXJpY2hAdXdhdGVybG9vLmNhPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZl
ciBIdW50LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3VzZS1tYWNoaW5lLXN0YWNr
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3VzZS1tYWNoaW5l
LXN0YWNrLmh0bWwJKHJldmlzaW9uIDQxODQ4KQkoZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3dvcmtl
cnMvdXNlLW1hY2hpbmUtc3RhY2suaHRtbC1kaXNhYmxlZDo0MTg0OCkKKysrIExheW91dFRlc3Rz
L2Zhc3Qvd29ya2Vycy91c2UtbWFjaGluZS1zdGFjay5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMjMgQEAKKzxib2R5PgorPHA+VGVzdCB3b3JrZXIgdGhyZWFkIHN0YWNrIHVzYWdlLiBT
aG91bGQgbm90IGNyYXNoLjwvcD4KKzxkaXYgaWQ9cmVzdWx0PjwvZGl2PgorPHNjcmlwdD4KK2Z1
bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKS5pbm5lckhUTUwgKz0gbWVzc2FnZSArICI8YnI+IjsKK30KKworaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciB3
b3JrZXIgPSBuZXcgV29ya2VyKCdyZXNvdXJjZXMvdXNlLW1hY2hpbmUtc3RhY2suanMnKTsKK3dv
cmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpIHsKKyAgICBsb2coIlBBU1MgKCIgKyBldnQu
ZGF0YSArICIpIik7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvdXNlLW1hY2hpbmUt
c3RhY2suaHRtbC1kaXNhYmxlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3dvcmtl
cnMvdXNlLW1hY2hpbmUtc3RhY2suaHRtbC1kaXNhYmxlZAkocmV2aXNpb24gNDE4NDgpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvdXNlLW1hY2hpbmUtc3RhY2suaHRtbC1kaXNhYmxlZAko
d29ya2luZyBjb3B5KQpAQCAtMSwyMyArMCwwIEBACi08Ym9keT4KLTxwPlRlc3Qgd29ya2VyIHRo
cmVhZCBzdGFjayB1c2FnZS4gU2hvdWxkIG5vdCBjcmFzaC48L3A+Ci08ZGl2IGlkPXJlc3VsdD48
L2Rpdj4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBsb2cobWVzc2FnZSkKLXsKLSAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1lc3NhZ2UgKyAiPGJyPiI7Ci19
Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOwotfQotCi12YXIgd29ya2VyID0gbmV3IFdvcmtlcigncmVzb3VyY2VzL3VzZS1tYWNo
aW5lLXN0YWNrLmpzJyk7Ci13b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oZXZ0KSB7Ci0gICAg
bG9nKCJQQVNTICgiICsgZXZ0LmRhdGEgKyAiKSIpOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsK
LX0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgo=
</data>
<flag name="review"
          id="14198"
          type_id="1"
          status="+"
          setter="zwarich"
    />
          </attachment>
      

    </bug>

</bugzilla>