Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
FF DevMode plugin + Memory leaks (+ "Address already in use")
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  9 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Chris Lercher  
View profile   Translate to Translated (View Original)
 More options Aug 27 2012, 1:07 pm
From: Chris Lercher <cl_for_mail...@gmx.net>
Date: Mon, 27 Aug 2012 10:07:08 -0700 (PDT)
Local: Mon, Aug 27 2012 1:07 pm
Subject: FF DevMode plugin + Memory leaks (+ "Address already in use")

When I analyze a DevMode process's memory usage (e.g. using jconsole), it
shows that Heap and Non-Heap (PermGen) Memory usage increases, whenever the
page is reloaded.

This happens both when I run DevMode with Firefox 14, as well as Chrome 21.
The difference is however, that
- with Chrome, Heap and PermGen usage restores to a very low value after
calling "Perform GC"
- whereas in Firefox the PermGen stays at the high value, and the Heap just
decreases slightly. After a number of reloads, this leads to an out of
memory (Heap or PermGen, depending on which reaches the limit first). More
often than not, the out of memory is not printed (which is usual for out of
memory errors).

*How to reproduce the error?*

Create a simple GWT project (e.g. the one that's auto-generated by
Eclipse), use Firefox, press the reload-button repeatedly
(tested on OS X 10.6, but I've encountered similar memory problems on Linux
amd64, too)

*Solution?*

Without knowing anything about the details of the FF plugin, it looks as if
the Chrome plugin discards the ClassLoader entirely (so the PermGen space
can be freed up <http://stackoverflow.com/a/148707/291741>), whereas FF
probably keeps a reference to the ClassLoader somewhere (?)

*Problems when restarting DevMode*

The problem may also explain, why many people are seeing an

   [ERROR] Unable to bind socket on port 9997 -- is another session active?
   java.net.BindException: Address already in use

after restarting DevMode (see e.g.
https://groups.google.com/d/topic/google-web-toolkit/btPIOoriq_o/disc...
 , http://code.google.com/p/google-web-toolkit/issues/detail?id=4312 ,
http://code.google.com/p/google-web-toolkit/issues/detail?id=4514 , ...).
It would also explain, why it's often dismissed as "cannot reproduce"
(because it cannot be reproduced with Chrome). But when stopping a DevMode
server that is (nearly) out of memory, it may hang. And you usually won't
see an error message (the reason why I finally found this issue, is that I
did get it a few times now). Plus, in Eclipse it looks as if DevMode had
already terminated (the red stop button turns gray).

*Question:*

Is it a good idea to create another new issue for this? I'd like to ask
here first, if anybody knows what the Status is? @AlanLeung?


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Brian Slesinsky  
View profile  
 More options Aug 27 2012, 8:07 pm
From: Brian Slesinsky <skybr...@google.com>
Date: Mon, 27 Aug 2012 17:07:02 -0700 (PDT)
Local: Mon, Aug 27 2012 8:07 pm
Subject: Re: FF DevMode plugin + Memory leaks (+ "Address already in use")

That's an interesting report. We always want to garbage collect the
ClassLoader when the session is over and if that doesn't happen, it's a
bug. I don't know why Firefox would behave differently; the JVM side should
work the same way for Firefox versus Chrome. The only thing I can think of
is some difference in distributed garbage collection, but that shouldn't
matter once the session ends.

Alan's not on the team anymore. I'd like to fix this, but I'm busy with
other things and I don't have a good idea where to begin. If someone's
handy with a memory profiler, figuring out what's preventing the
classloader from being gc-ed in this case would be very useful.

- Brian


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Chris Lercher  
View profile  
 More options Aug 28 2012, 5:05 am
From: Chris Lercher <cl_for_mail...@gmx.net>
Date: Tue, 28 Aug 2012 02:05:38 -0700 (PDT)
Local: Tues, Aug 28 2012 5:05 am
Subject: Re: FF DevMode plugin + Memory leaks (+ "Address already in use")

I analyzed this a bit more (this time on Linux), and I noticed, that the
number of Thread also grows: 1 thread per reload. Again, this happens only
with Firefox, not with Chrome. So probably the ClassLoader references will
be discarded only when the Thread terminates...

One more thing that might be interesting: When closing the entire FF
instance (just closing the tab is not enough), then the threads are
discarded, and Heap/PermGen space can be garbage collected.

By the way, closing the FF instance leads to the following Exception
printed by the DevMode server:

10:53:21.549 [ERROR] [mymodule] Remote connection lost

com.google.gwt.dev.shell.BrowserChannel$RemoteDeathError: Remote connection
lost
    at
com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChanne lServer.java:308)
    at
com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChan nelServer.java:547)
    at
com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java :364)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.io.EOFException: null
    at java.io.DataInputStream.readByte(DataInputStream.java:250)
    at
com.google.gwt.dev.shell.BrowserChannel$Message.readMessageType(BrowserChan nel.java:1100)
    at
com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChanne lServer.java:284)
    at
com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChan nelServer.java:547)
    at
com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java :364)
    at java.lang.Thread.run(Thread.java:662)


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Thomas Broyer  
View profile  
 More options Aug 28 2012, 5:15 am
From: Thomas Broyer <t.bro...@gmail.com>
Date: Tue, 28 Aug 2012 02:15:09 -0700 (PDT)
Local: Tues, Aug 28 2012 5:15 am
Subject: Re: FF DevMode plugin + Memory leaks (+ "Address already in use")

In other words: it looks like the Firefox plugin doesn't send a QuitMessage
to the DevMode, and worse, is kept alive in the background!


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Brian Slesinsky  
View profile  
 More options Aug 28 2012, 10:57 am
From: Brian Slesinsky <skybr...@google.com>
Date: Tue, 28 Aug 2012 07:56:42 -0700
Local: Tues, Aug 28 2012 10:56 am
Subject: Re: FF DevMode plugin + Memory leaks (+ "Address already in use")
Thanks, I think I can do something about this.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Brian Slesinsky  
View profile  
 More options Aug 28 2012, 6:12 pm
From: Brian Slesinsky <skybr...@google.com>
Date: Tue, 28 Aug 2012 15:12:03 -0700 (PDT)
Local: Tues, Aug 28 2012 6:12 pm
Subject: Re: FF DevMode plugin + Memory leaks (+ "Address already in use")

Does the connection leak happen with all plugins (other than GWT) disabled?


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Chris Lercher  
View profile  
 More options Aug 28 2012, 6:31 pm
From: Chris Lercher <cl_for_mail...@gmx.net>
Date: Tue, 28 Aug 2012 15:31:09 -0700 (PDT)
Local: Tues, Aug 28 2012 6:31 pm
Subject: Re: FF DevMode plugin + Memory leaks (+ "Address already in use")

Yes. I disabled all Add-Ons: All Extensions (except for the GWT Extension)
and all Plugins, and restarted Firefox.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Brian Slesinsky  
View profile  
 More options Aug 28 2012, 10:13 pm
From: Brian Slesinsky <skybr...@google.com>
Date: Tue, 28 Aug 2012 19:13:27 -0700 (PDT)
Local: Tues, Aug 28 2012 10:13 pm
Subject: Re: FF DevMode plugin + Memory leaks (+ "Address already in use")

Reproduced the thread leak in the Firefox 15 release that I'm working on.
(On a Mac; using jps to list the threads.)


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Brian Slesinsky  
View profile  
 More options Sep 4 2012, 3:29 pm
From: Brian Slesinsky <skybr...@google.com>
Date: Tue, 4 Sep 2012 12:29:55 -0700 (PDT)
Local: Tues, Sep 4 2012 3:29 pm
Subject: Re: FF DevMode plugin + Memory leaks (+ "Address already in use")

Tracking bug:
http://code.google.com/p/google-web-toolkit/issues/detail?id=7648


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »