mozilla

Compare Revisions

Zombie compartments

Change Revisions

Revision 38266:

Revision 38266 by nnethercote on

Revision 308995:

Revision 308995 by nnethercote on

Title:
Zombie compartments
Zombie compartments
Slug:
Zombie_compartments
Zombie_compartments
Tags:
Extensions, Add-ons, "Developing Mozilla", memory
"Extensions", "Developing Mozilla", "Add-ons", "memory"
Content:

Revision 38266
Revision 308995
n62    <h3 id="When_are_compartments_created?">n62    <h3 id="When_are_compartments_created.3F">
n93        <code>compartment(<a class=" external" href="http://techcn93        <code>compartment(<a class="external" href="http://techcr
>runch.com/" rel="freelink">http://techcrunch.com/</a>)</code>>unch.com/" rel="freelink">http://techcrunch.com/</a>)</code>
n96        <code>compartment(<a class=" external" href="http://www.fn96        <code>compartment(<a class="external" href="http://www.fa
>acebook.com/plugins/like.php?..." rel="freelink">http://www.faceb>cebook.com/plugins/like.php?..." rel="freelink">http://www.facebo
>ook.com/plugins/like.php?...</a>)</code>>ok.com/plugins/like.php?...</a>)</code>
n99        <code>compartment(<a class=" link-https" href="https://pln99        <code>compartment(<a class="link-https" href="https://plu
>usone.google.com/_/+1/fastbutton?..." rel="freelink">https://plus>sone.google.com/_/+1/fastbutton?..." rel="freelink">https://pluso
>one.google.com/_/+1/fastbutton?...</a>)</code>>ne.google.com/_/+1/fastbutton?...</a>)</code>
n102        <code>compartment(<a class=" external" href="http://platfn102        <code>compartment(<a class="external" href="http://platfo
>orm.twitter.com/widgets/tweet_button.html?..." rel="freelink">htt>rm.twitter.com/widgets/tweet_button.html?..." rel="freelink">http
>p://platform.twitter.com/widgets/...utton.html?...</a>)</code>>://platform.twitter.com/widgets/...utton.html?...</a>)</code>
n105        <code>compartment(<a class=" external" href="http://cdn.an105        <code>compartment(<a class="external" href="http://cdn.at
>t.atwola.com/_media/uac/tcode3.html" rel="freelink">http://cdn.at>.atwola.com/_media/uac/tcode3.html" rel="freelink">http://cdn.at.
>.atwola.com/_media/uac/tcode3.html</a>)</code>>atwola.com/_media/uac/tcode3.html</a>)</code>
n108        <code>compartment(<a class=" link-https" href="https://s-n108        <code>compartment(<a class="link-https" href="https://s-s
>static.ak.fbcdn.net/connect/xd_proxy.php?..." rel="freelink">http>tatic.ak.fbcdn.net/connect/xd_proxy.php?..." rel="freelink">https
>s://s-static.ak.fbcdn.net/connec..._proxy.php?...</a>)</code>>://s-static.ak.fbcdn.net/connec..._proxy.php?...</a>)</code>
n111        <code>compartment(<a class=" external" href="http://ads.tn111        <code>compartment(<a class="external" href="http://ads.tw
>w.adsonar.com/adserving/getAds.jsp?..." rel="freelink">http://ads>.adsonar.com/adserving/getAds.jsp?..." rel="freelink">http://ads.
>.tw.adsonar.com/adserving/getAds.jsp?...</a>)</code>>tw.adsonar.com/adserving/getAds.jsp?...</a>)</code>
n118      Another thing to beware is each compartment is created for n118      Another thing to beware is each compartment is created for 
>an origin (e.g. <a class=" external" href="http://www.facebook.co>an origin (e.g. <a class="external" href="http://www.facebook.com
>m/" rel="freelink">http://www.facebook.com/</a>), but the name of>/" rel="freelink">http://www.facebook.com/</a>), but the name of 
> the compartment includes all the trailing gunk (e.g. "plugins/li>the compartment includes all the trailing gunk (e.g. "plugins/lik
>ke.php?...").&nbsp; This trailing gunk can be misleading and you >e.php?...").&nbsp; This trailing gunk can be misleading and you s
>shouldn't pay too much attention to it.&nbsp; For example, if I o>houldn't pay too much attention to it.&nbsp; For example, if I op
>pen <a class=" link-https" href="https://bugzilla.mozilla.org/sho>en <a class="link-https" href="https://bugzilla.mozilla.org/show_
>w_bug.cgi?id=668871" rel="freelink">https://bugzilla.mozilla.org/>bug.cgi?id=668871" rel="freelink">https://bugzilla.mozilla.org/sh
>show_bug.cgi?id=668871</a> in one tab, then <code>compartment(<a >ow_bug.cgi?id=668871</a> in one tab, then <code>compartment(<a cl
>class=" link-https" href="https://bugzilla.mozilla.org/show_bug.c>ass="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?
>gi?id=668871" rel="freelink">https://bugzilla.mozilla.org/show_bu>id=668871" rel="freelink">https://bugzilla.mozilla.org/show_bug.c
>g.cgi?id=668871</a>)</code> will show up in about:memory?verbose.>gi?id=668871</a>)</code> will show up in about:memory?verbose.&nb
>&nbsp; If I then open <a class=" link-https" href="https://bugzil>sp; If I then open <a class="link-https" href="https://bugzilla.m
>la.mozilla.org/show_bug.cgi?id=700547" rel="freelink">https://bug>ozilla.org/show_bug.cgi?id=700547" rel="freelink">https://bugzill
>zilla.mozilla.org/show_bug.cgi?id=700547</a> and close the first >a.mozilla.org/show_bug.cgi?id=700547</a> and close the first tab,
>tab, the same compartment will continue to be used.&nbsp; So I'll> the same compartment will continue to be used.&nbsp; So I'll end
> end up with a compartment whose name doesn't match the only page> up with a compartment whose name doesn't match the only page ope
> open from that origin.&nbsp; This can be confusing at first, so >n from that origin.&nbsp; This can be confusing at first, so be r
>be ready for it.>eady for it.
n120    <h3 id="When_are_compartments_destroyed?">n120    <h3 id="When_are_compartments_destroyed.3F">
n138    <p>n
139      In Firefox 13 and later:
140    </p>
n152      <li>If the compartment is still present in about:compartmenn149      <li>If the compartment is still present in about:compartmen
>ts, that's very suspicious.&nbsp; You could try waiting 20 minute>ts, that's very suspicious.&nbsp; You could try waiting 20 minute
>s or so, then reload about:compartments again.&nbsp; Some zombie >s or so, then reload about:compartments again.&nbsp; Some zombie 
>compartments stick around for a limited time before disappearing,>compartments stick around for a limited time before disappearing,
> others are immortal, and it's useful to know which is which.> others are immortal, and it's useful to know which is which.&nbs
 >p; If you see any "Ghost Windows" (at the bottom of about:compart
 >ments) that is also suspicious, as they are similar to zombie com
 >partments.
n154      <li>Some Zombie Compartments are caused by add-ons.&nbsp; In151      <li>Some zombie compartments are caused by add-ons.&nbsp; I
>f you have add-ons enabled, please try to reproduce in <a class=">f you have add-ons enabled, please try to reproduce in <a class="
>external" href="http://support.mozilla.com/en-US/kb/Safe%20Mode">>external" href="http://support.mozilla.com/en-US/kb/Safe%20Mode">
>safe mode</a>, which disables them.&nbsp; If you can identify, by>safe mode</a>, which disables them.&nbsp; If you can identify, by
> disabling them one at a time, a single add-on that is responsibl> disabling them one at a time, a single add-on that is responsibl
>e, that is extremely helpful.>e, that is extremely helpful.
n157      </li>n
158    </ul>
159    <p>
160      In Firefox 12 and earlier:
161    </p>
162    <ul>
163      <li>Restart the browser.
164      </li>
165      <li>Open the page that you think might cause a zombie compa
>rtment. 
166      </li>
167      <li>Open about:memory?verbose in another tab to confirm tha
>t the relevant compartment is present. 
168      </li>
169      <li>Close the first page.
170      </li>
171      <li>Return to about:memory?verbose and hit the "minimize me
>mory usage" button near the bottom.&nbsp; This forces garbage col 
>lection and cycle collection to happen, which will destroy compar 
>tments if possible.&nbsp; It might be worth hitting the button mu 
>ltiple times just to be sure.&nbsp; about:memory?verbose will upd 
>ate each time you press the button. 
172      </li>
173      <li>If the compartment is still present in about:memory?ver
>bose, that's very suspicious.&nbsp; You could try waiting 20 minu 
>tes or so, then hit "minimize memory usage" again.&nbsp; Some zom 
>bie compartments stick around for a limited time before disappear 
>ing, others are immortal, and it's useful to know which is which. 
174      </li>
175      <li>Some Zombie Compartments are caused by add-ons.&nbsp; I
>f you have add-ons enabled, please try to reproduce in <a class=" 
>external" href="http://support.mozilla.com/en-US/kb/Safe%20Mode"> 
>safe mode</a>, which disables them.&nbsp; If you can identify, by 
> disabling them one at a time, a single add-on that is responsibl 
>e, that is extremely helpful. 
176      </li>
177      <li>If you're confident you've found a zombie compartment, 
>please file a bug that includes all the information you've gather 
>ed, add “[MemShrink]” to its whiteboard, and mark it as blocking  
><a class="link-https" href="https://bugzilla.mozilla.org/show_bug 
>.cgi?id=668871">bug 668871</a>.&nbsp; Attaching the full contents 
> of about:compartments is very helpful (and you can just cut and  
>paste the page contents, there's no need to take a screenshot).&n 
>bsp; See <a class="link-https" href="https://bugzilla.mozilla.org 
>/show_bug.cgi?id=669545">bug 669545</a> for an example.&nbsp; If  
>the zombie compartment is caused by an add-on, please mark the bu 
>g as also blocking <a class="link-https" href="https://bugzilla.m 
>ozilla.org/show_bug.cgi?id=700547" title="https://bugzilla.mozill 
>a.org/show_bug.cgi?id=700547">bug 700547</a>. 
n188    </p>n
189    <p>
190      In Firefox 13 and later:
t203      <li>If only system compartments are present, congratulationt176      <li>If only system compartments are present, and there are 
>s!&nbsp; That's a good sign that the add-on doesn't cause zombie >no ghost windows, congratulations!&nbsp; That's a good sign that 
>compartments.&nbsp; Otherwise, please file a bug (using the "Tech>the add-on doesn't cause zombie compartments.&nbsp; Otherwise, pl
> Evangelism" product and the "Add-ons" component), add "[MemShrin>ease file a bug (using the "Tech Evangelism" product and the "Add
>k]" to its whiteboard, and mark it as blocking <a class="link-htt>-ons" component), add "[MemShrink]" to its whiteboard, and mark i
>ps" href="https://bugzilla.mozilla.org/show_bug.cgi?id=668871">bu>t as blocking <a class="link-https" href="https://bugzilla.mozill
>g 668871</a> and <a class="link-https" href="https://bugzilla.moz>a.org/show_bug.cgi?id=668871">bug 668871</a> and <a class="link-h
>illa.org/show_bug.cgi?id=700547" title="https://bugzilla.mozilla.>ttps" href="https://bugzilla.mozilla.org/show_bug.cgi?id=700547" 
>org/show_bug.cgi?id=700547">bug 700547</a>.>title="https://bugzilla.mozilla.org/show_bug.cgi?id=700547">bug 7
 >00547</a>.
204      </li>
205    </ul>
206    <p>
207      In Firefox 12 and earlier:
208    </p>
209    <ul>
210      <li>Create a new profile.&nbsp; Install and enable the add-
>on. 
211      </li>
212      <li>Restart the browser.
213      </li>
214      <li>Browse one or more pages and do something that exercise
>s the add-on.&nbsp; For example, for an add-on that remembers pas 
>swords, visit a site that requires a password;&nbsp; for an add-o 
>n that performs an operation involving a specific page element su 
>ch as an image or a chunk of text, perform that operation.&nbsp;  
>The more you exercise the add-on, the more thorough the testing w 
>ill be, but in practice a lot of problems show up quickly. 
215      </li>
216      <li>Open about:memory?verbose and close all other pages.
217      </li>
218      <li>Return to about:memory?verbose and hit the "minimize me
>mory usage" button near the bottom, multiple times if necessary. 
219      </li>
220      <li>If only internal Firefox compartments (see above for ex
>amples) are present, congratulations!&nbsp; That's a good sign th 
>at the add-on doesn't cause zombie compartments.&nbsp; Otherwise, 
> please file a bug (using the "Tech Evangelism" product and the " 
>Add-ons" component), add "[MemShrink]" to its whiteboard, and mar 
>k it as blocking <a class="link-https" href="https://bugzilla.moz 
>illa.org/show_bug.cgi?id=668871">bug 668871</a> and <a class="lin 
>k-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=70054 
>7" title="https://bugzilla.mozilla.org/show_bug.cgi?id=700547">bu 
>g 700547</a>. 

Back to History