<?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>61325</bug_id>
          
          <creation_ts>2011-05-23 17:13:18 -0700</creation_ts>
          <short_desc>Safari often freezes when clicking &quot;Return free memory&quot; in Caches dialog</short_desc>
          <delta_ts>2011-05-24 09:06:35 -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>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="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>408492</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-05-23 17:13:18 -0700</bug_when>
    <thetext>From &lt;rdar://problem/8009651&gt;.

5/20/10 11:46 AM Alexey Proskuryakov:
I&apos;m seeing this after running DOM Hanoi test Steps to reproduce:

1. Run DOM Hanoi test &lt;https://safari.apple.com/groups/safariteam/wiki/bb053/attachments/febd2/DOM-Hanoi%20v0.2.html&gt;. Be sure to set recursion limit to 2, because 3 is way too slow.
2. After it&apos;s done, click &quot;Return free memory&quot; button in Caches window.
3. If that doesn&apos;t work, try forcing GC, closing the DOM Hanoi window, and going back to step 2.

Spin log attached.

6/17/10 4:42 PM Mark Rowe:
In a debug build using FastMalloc I hit this assertion:

0x0000000101bbf541 in WTF::TCMalloc_PageHeap::Carve (this=0x101eccdc0, span=0x113af1470, n=1, released=true) at FastMalloc.cpp:1701
1701	    ASSERT(span-&gt;decommitted);

I think the tracking of committed vs decommitted spans is incorrect, leading to ::scavenge being unable to find all of the free committed spans that it intends to release, which causes it to loop indefinitely with the page heap lock held.

5/23/11 10:29 AM Michael Saboff:
I think there are two problems here.  The assertion failure appears to be as a result of http://trac.webkit.org/changeset/58346.  The freeze seems to be a result of http://trac.webkit.org/changeset/58730.  Both of these changes were added as part of &lt;rdar://problem/7834433&gt;.

Investigating the assertion failure, but I believe the hang is due to the loop in TCMalloc_PageHeap::scavenge() becoming an infinite loop due to not being able to release enough free pages to get below &quot;targetPageCount&quot;.

5/23/11 4:39 PM Michael Saboff:
The assertion failure is due to missing the setting of the &quot;decommitted&quot; flag in &quot;s&quot; in ReleaseFreeList() before the call to DLL_Prepend(returned, s).  Even with that fix, the hang can still happen.  Therefore I coded a fix for the hang as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408505</commentid>
    <comment_count>1</comment_count>
      <attachid>94523</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-05-23 17:32:08 -0700</bug_when>
    <thetext>Created attachment 94523
Patch with 2 fixes and sanity check improvement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408509</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-23 17:36:28 -0700</bug_when>
    <thetext>Attachment 94523 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/wtf/FastMalloc.cpp:1360:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/JavaScriptCore/wtf/FastMalloc.cpp:1360:  min_pages is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/wtf/FastMalloc.cpp:1360:  max_pages is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/wtf/FastMalloc.cpp:2122:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/JavaScriptCore/wtf/FastMalloc.cpp:2123:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/JavaScriptCore/wtf/FastMalloc.cpp:2132:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/JavaScriptCore/wtf/FastMalloc.cpp:2132:  TCMalloc_PageHeap::CheckList is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/wtf/FastMalloc.cpp:2136:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/JavaScriptCore/wtf/FastMalloc.cpp:2136:  TCMalloc_PageHeap::CheckList is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/wtf/FastMalloc.cpp:2136:  min_pages is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/wtf/FastMalloc.cpp:2136:  max_pages is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 11 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408902</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-05-24 09:06:35 -0700</bug_when>
    <thetext>Committed r87157: &lt;http://trac.webkit.org/changeset/87157&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94523</attachid>
            <date>2011-05-23 17:32:08 -0700</date>
            <delta_ts>2011-05-24 03:16:20 -0700</delta_ts>
            <desc>Patch with 2 fixes and sanity check improvement</desc>
            <filename>61325.patch</filename>
            <type>text/plain</type>
            <size>4742</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODcxMDgpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAK
KzIwMTEtMDUtMjMgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2FmYXJpIG9mdGVuIGZy
ZWV6ZXMgd2hlbiBjbGlja2luZyAiUmV0dXJuIGZyZWUgbWVtb3J5IiBpbiBDYWNoZXMgZGlhbG9n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTMyNQor
CisgICAgICAgIFRoZXJlIGFyZSB0d28gZml4ZXMgYW5kIGltcHJvdmVtZW50IGluIGluc3RydW1l
bnRhdGlvbiBjb2RlIHVzZWQgdG8gZmluZCAKKyAgICAgICAgb25lIG9mIHRoZSBwcm9ibGVtcy4K
KyAgICAgICAgQ2hhbmdlZCBSZWxlYXNlRnJlZUxpc3QoKSB0byBzZXQgdGhlICJkZWNvbW1pdHRl
ZCIgYml0IHdoZW4gcmVsZWFzaW5nCisgICAgICAgIHBhZ2VzIHRvIHRoZSBzeXN0ZW0gYW5kIG1v
dmluZyBTcGFucyBmcm9tIHRoZSBub3JtYWwgbGlzdCB0byB0aGUgcmV0dXJuZWQgCisgICAgICAg
IGxpc3QuCisgICAgICAgIEFkZGVkIGEgIm5vdCBtYWtpbmcgZm9yd2FyZCBwcm9ncmVzcyIgY2hl
Y2sgdG8gVENNYWxsb2NfUGFnZUhlYXA6OnNjYXZlbmdlCisgICAgICAgIHRvIGVsaW1pbmF0ZSBh
biBpbmZpbml0ZSBsb29wIGlmIHdlIGNhbid0IG1lZXQgdGhlIHBhZ2VzVG9SZWxlYXNlIHRhcmdl
dC4KKyAgICAgICAgQWRkZWQgYSBjaGVjayBmb3IgdGhlIGRlY29tbWl0dGVkIGJpdCBiZWluZyBz
ZXQgcHJvcGVybHkgaW4gCisgICAgICAgIFRDTWFsbG9jX1BhZ2VIZWFwOjpDaGVja0xpc3QuCisK
KyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5jcHA6CisgICAgICAgIChXVEY6OlRDTWFsbG9jX1Bh
Z2VIZWFwOjpzY2F2ZW5nZSk6CisgICAgICAgIChXVEY6OlRDTWFsbG9jX1BhZ2VIZWFwOjpDaGVj
ayk6CisgICAgICAgIChXVEY6OlRDTWFsbG9jX1BhZ2VIZWFwOjpDaGVja0xpc3QpOgorICAgICAg
ICAoV1RGOjpSZWxlYXNlRnJlZUxpc3QpOgorCiAyMDExLTA1LTIzICBNYXR0aGV3IERlbGFuZXkg
IDxtZGVsYW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2Vy
LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9GYXN0TWFsbG9jLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Zhc3RNYWxsb2MuY3BwCShyZXZpc2lv
biA4NzEwOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRmFzdE1hbGxvYy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEzNTcsNyArMTM1Nyw3IEBAIGNsYXNzIFRDTWFsbG9jX1BhZ2VIZWFw
IHsKICAgfQogCiAgIGJvb2wgQ2hlY2soKTsKLSAgYm9vbCBDaGVja0xpc3QoU3BhbiogbGlzdCwg
TGVuZ3RoIG1pbl9wYWdlcywgTGVuZ3RoIG1heF9wYWdlcyk7CisgIGJvb2wgQ2hlY2tMaXN0KFNw
YW4qIGxpc3QsIExlbmd0aCBtaW5fcGFnZXMsIExlbmd0aCBtYXhfcGFnZXMsIGJvb2wgZGVjb21t
aXR0ZWQpOwogCiAgIC8vIFJlbGVhc2UgYWxsIHBhZ2VzIG9uIHRoZSBmcmVlIGxpc3QgZm9yIHJl
dXNlIGJ5IHRoZSBPUzoKICAgdm9pZCBSZWxlYXNlRnJlZVBhZ2VzKCk7CkBAIC0xNjM3LDcgKzE2
MzcsOSBAQCB2b2lkIFRDTWFsbG9jX1BhZ2VIZWFwOjpzY2F2ZW5nZSgpCiAgICAgc2l6ZV90IHBh
Z2VzVG9SZWxlYXNlID0gbWluX2ZyZWVfY29tbWl0dGVkX3BhZ2VzX3NpbmNlX2xhc3Rfc2NhdmVu
Z2VfICoga1NjYXZlbmdlUGVyY2VudGFnZTsKICAgICBzaXplX3QgdGFyZ2V0UGFnZUNvdW50ID0g
c3RkOjptYXg8c2l6ZV90PihrTWluaW11bUZyZWVDb21taXR0ZWRQYWdlQ291bnQsIGZyZWVfY29t
bWl0dGVkX3BhZ2VzXyAtIHBhZ2VzVG9SZWxlYXNlKTsKIAorICAgIExlbmd0aCBsYXN0RnJlZUNv
bW1pdHRlZFBhZ2VzID0gZnJlZV9jb21taXR0ZWRfcGFnZXNfOwogICAgIHdoaWxlIChmcmVlX2Nv
bW1pdHRlZF9wYWdlc18gPiB0YXJnZXRQYWdlQ291bnQpIHsKKyAgICAgICAgQVNTRVJUKENoZWNr
KCkpOwogICAgICAgICBmb3IgKGludCBpID0ga01heFBhZ2VzOyBpID4gMCAmJiBmcmVlX2NvbW1p
dHRlZF9wYWdlc18gPj0gdGFyZ2V0UGFnZUNvdW50OyBpLS0pIHsKICAgICAgICAgICAgIFNwYW5M
aXN0KiBzbGlzdCA9IChzdGF0aWNfY2FzdDxzaXplX3Q+KGkpID09IGtNYXhQYWdlcykgPyAmbGFy
Z2VfIDogJmZyZWVfW2ldOwogICAgICAgICAgICAgLy8gSWYgdGhlIHNwYW4gc2l6ZSBpcyBiaWdn
ZXIgdGhhbiBrTWluU3Bhbkxpc3RzV2l0aFNwYW5zIHBhZ2VzIHJldHVybiBhbGwgdGhlIHNwYW5z
IGluIHRoZSBsaXN0LCBlbHNlIHJldHVybiBhbGwgYnV0IDEgc3Bhbi4gIApAQCAtMTY1OCw2ICsx
NjYwLDEwIEBAIHZvaWQgVENNYWxsb2NfUGFnZUhlYXA6OnNjYXZlbmdlKCkKICAgICAgICAgICAg
ICAgICBETExfUHJlcGVuZCgmc2xpc3QtPnJldHVybmVkLCBzKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQorCisgICAgICAgIGlmIChsYXN0RnJlZUNvbW1pdHRlZFBhZ2VzID09IGZyZWVfY29t
bWl0dGVkX3BhZ2VzXykKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBsYXN0RnJlZUNvbW1p
dHRlZFBhZ2VzID0gZnJlZV9jb21taXR0ZWRfcGFnZXNfOwogICAgIH0KIAogICAgIG1pbl9mcmVl
X2NvbW1pdHRlZF9wYWdlc19zaW5jZV9sYXN0X3NjYXZlbmdlXyA9IGZyZWVfY29tbWl0dGVkX3Bh
Z2VzXzsKQEAgLTIxMTMsMjcgKzIxMTksMjggQEAgYm9vbCBUQ01hbGxvY19QYWdlSGVhcDo6R3Jv
d0hlYXAoTGVuZ3RoIAogYm9vbCBUQ01hbGxvY19QYWdlSGVhcDo6Q2hlY2soKSB7CiAgIEFTU0VS
VChmcmVlX1swXS5ub3JtYWwubmV4dCA9PSAmZnJlZV9bMF0ubm9ybWFsKTsKICAgQVNTRVJUKGZy
ZWVfWzBdLnJldHVybmVkLm5leHQgPT0gJmZyZWVfWzBdLnJldHVybmVkKTsKLSAgQ2hlY2tMaXN0
KCZsYXJnZV8ubm9ybWFsLCBrTWF4UGFnZXMsIDEwMDAwMDAwMDApOwotICBDaGVja0xpc3QoJmxh
cmdlXy5yZXR1cm5lZCwga01heFBhZ2VzLCAxMDAwMDAwMDAwKTsKKyAgQ2hlY2tMaXN0KCZsYXJn
ZV8ubm9ybWFsLCBrTWF4UGFnZXMsIDEwMDAwMDAwMDAsIGZhbHNlKTsKKyAgQ2hlY2tMaXN0KCZs
YXJnZV8ucmV0dXJuZWQsIGtNYXhQYWdlcywgMTAwMDAwMDAwMCwgdHJ1ZSk7CiAgIGZvciAoTGVu
Z3RoIHMgPSAxOyBzIDwga01heFBhZ2VzOyBzKyspIHsKLSAgICBDaGVja0xpc3QoJmZyZWVfW3Nd
Lm5vcm1hbCwgcywgcyk7Ci0gICAgQ2hlY2tMaXN0KCZmcmVlX1tzXS5yZXR1cm5lZCwgcywgcyk7
CisgICAgQ2hlY2tMaXN0KCZmcmVlX1tzXS5ub3JtYWwsIHMsIHMsIGZhbHNlKTsKKyAgICBDaGVj
a0xpc3QoJmZyZWVfW3NdLnJldHVybmVkLCBzLCBzLCB0cnVlKTsKICAgfQogICByZXR1cm4gdHJ1
ZTsKIH0KIAogI2lmIEFTU0VSVF9ESVNBQkxFRAotYm9vbCBUQ01hbGxvY19QYWdlSGVhcDo6Q2hl
Y2tMaXN0KFNwYW4qLCBMZW5ndGgsIExlbmd0aCkgeworYm9vbCBUQ01hbGxvY19QYWdlSGVhcDo6
Q2hlY2tMaXN0KFNwYW4qLCBMZW5ndGgsIExlbmd0aCwgYm9vbCkgewogICByZXR1cm4gdHJ1ZTsK
IH0KICNlbHNlCi1ib29sIFRDTWFsbG9jX1BhZ2VIZWFwOjpDaGVja0xpc3QoU3BhbiogbGlzdCwg
TGVuZ3RoIG1pbl9wYWdlcywgTGVuZ3RoIG1heF9wYWdlcykgeworYm9vbCBUQ01hbGxvY19QYWdl
SGVhcDo6Q2hlY2tMaXN0KFNwYW4qIGxpc3QsIExlbmd0aCBtaW5fcGFnZXMsIExlbmd0aCBtYXhf
cGFnZXMsIGJvb2wgZGVjb21taXR0ZWQpIHsKICAgZm9yIChTcGFuKiBzID0gbGlzdC0+bmV4dDsg
cyAhPSBsaXN0OyBzID0gcy0+bmV4dCkgewogICAgIENIRUNLX0NPTkRJVElPTihzLT5mcmVlKTsK
ICAgICBDSEVDS19DT05ESVRJT04ocy0+bGVuZ3RoID49IG1pbl9wYWdlcyk7CiAgICAgQ0hFQ0tf
Q09ORElUSU9OKHMtPmxlbmd0aCA8PSBtYXhfcGFnZXMpOwogICAgIENIRUNLX0NPTkRJVElPTihH
ZXREZXNjcmlwdG9yKHMtPnN0YXJ0KSA9PSBzKTsKICAgICBDSEVDS19DT05ESVRJT04oR2V0RGVz
Y3JpcHRvcihzLT5zdGFydCtzLT5sZW5ndGgtMSkgPT0gcyk7CisgICAgQ0hFQ0tfQ09ORElUSU9O
KHMtPmRlY29tbWl0dGVkID09IGRlY29tbWl0dGVkKTsKICAgfQogICByZXR1cm4gdHJ1ZTsKIH0K
QEAgLTIxNDUsNiArMjE1Miw3IEBAIHN0YXRpYyB2b2lkIFJlbGVhc2VGcmVlTGlzdChTcGFuKiBs
aXN0LCAKICAgd2hpbGUgKCFETExfSXNFbXB0eShsaXN0KSkgewogICAgIFNwYW4qIHMgPSBsaXN0
LT5wcmV2OwogICAgIERMTF9SZW1vdmUocyk7CisgICAgcy0+ZGVjb21taXR0ZWQgPSB0cnVlOwog
ICAgIERMTF9QcmVwZW5kKHJldHVybmVkLCBzKTsKICAgICBUQ01hbGxvY19TeXN0ZW1SZWxlYXNl
KHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHMtPnN0YXJ0IDw8IGtQYWdlU2hpZnQpLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90PihzLT5sZW5ndGggPDwga1Bh
Z2VTaGlmdCkpOwo=
</data>
<flag name="review"
          id="87833"
          type_id="1"
          status="+"
          setter="mrowe"
    />
          </attachment>
      

    </bug>

</bugzilla>