shdqcdsn / counterclockwise

Automatically exported from code.google.com/p/counterclockwise
0 stars 0 forks source link

Failures out of memory and lockups with 0.28.1 #658

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
I currently use Eclipse as a ClojureScript editor and build outside eclipse. I 
have a large workspace with very many projects many just so I can view the 
source in eclipse.

I have some major problems with 28.0 28.1, it is trying to update the project 
files but has many failures including out of memory, I can't stop the update 
attempt. I have had to force quit Eclipse several times and lost my workbench 
state.

I think the auto project update needs to be optional.

Original issue reported on code.google.com by longworthm on 29 Sep 2014 at 7:27

GoogleCodeExporter commented 9 years ago
Hi,

There is such an option, it should be working. In Preferences > Clojure > 
General > Automatic detection of Clojure / Leiningen projects

I have some questions, tho, because I'm annoyed that you have problems:

- you get Out of Memory exceptions ? Maybe this is because several auto-updates 
occur at the same time and the different leiningen sandboxes take too much 
memory when cumulated. If so, then I can probably work on sequencing the 
things. Thus projects would not be processed in parallel, but each project 
would take less overall time, and this would get rid of OOMs I guess.

- what do you mean by lockups? Normally (and even more with 0.28.1 released 
yesterday), every task should now be a background task, and thus not block the 
UI.

Original comment by laurent....@gmail.com on 29 Sep 2014 at 8:52

GoogleCodeExporter commented 9 years ago
I'm on OSX 10.9.5
As the update process has now completed I don't know how to repeat the problems 
to provide more comprehensive info.
I had various eclipse based error popups recommending restarts including 
problems with swt but I think all linked to out of memory based resources. I 
still get one error on startup which clears ok -see window-shot, I'm not 
interested in fixing it.

By lockup I mean eclipse fails to respond and I needed to force-quit; related 
to the out of memories I think.

I found the options after the event thanks. I still think a confirm dialog 
explaining the updating and option to skip/postpone it would be better - my 
first reaction wasn't to go looking for options when presented with a barrage 
of warning and error dialogs

Thanks - great plugin otherwise!

Original comment by longworthm on 29 Sep 2014 at 10:33

GoogleCodeExporter commented 9 years ago
I'll be interested in looking at this window shot.
Also, if you can post the contents of your workspace's .metadata/.log file, I 
could analyze what has been logged.

Original comment by laurent....@gmail.com on 29 Sep 2014 at 11:14

GoogleCodeExporter commented 9 years ago
Sorry Laurent, not sure where the screen shot went.

Original comment by longworthm on 29 Sep 2014 at 11:53

Attachments:

GoogleCodeExporter commented 9 years ago

Original comment by longworthm on 29 Sep 2014 at 11:58

Attachments:

GoogleCodeExporter commented 9 years ago
Indeed, the details of the problem are not helpful.

Is it possible for you to also post the workspace's .metadata/.log file?

Original comment by laurent....@gmail.com on 29 Sep 2014 at 12:00

GoogleCodeExporter commented 9 years ago
See my previous post.

Original comment by longworthm on 29 Sep 2014 at 12:06

GoogleCodeExporter commented 9 years ago
Apparently there's a problem with the computed classpath, which causes the JDT 
to throw an exception : "Java Model Exception: Java Model Status [Build path 
contains duplicate entry: 'test' for project 'sablono']"

The good news is that I'll be able to reproduce locally by testing with project 
sablono.

Original comment by laurent....@gmail.com on 29 Sep 2014 at 10:40

GoogleCodeExporter commented 9 years ago
According to what I see in the logs, you got lots of PermGen Out of Memory 
exceptions (not Heap Out of Memory exceptions).
These exceptions cannot occur with Java 8, only with Java < 8 where one has to 
manually set a limit on PermGen (number of classes that can be loaded).

My best bet is that Android plugin + CCW for all the projects that had to be 
started lead to this issue.

Do you have a lot of open projects? I'd be interested to know how much to see 
if this may be the problem. I guess that if you were using Eclipse integrated 
leiningen support on all the projects at the same time, you'd also get PermGen 
issues.

Original comment by laurent....@gmail.com on 29 Sep 2014 at 10:47

GoogleCodeExporter commented 9 years ago
I searched my active workspace it has 65 project.clj files.

Original comment by longworthm on 30 Sep 2014 at 7:25

GoogleCodeExporter commented 9 years ago
ok, this is indeed a big number, because Counterclockwise isolates itself from 
leiningen by creating separate classloaders which will, for each project, 
reload clojure + leiningen + its dependencies => this is a huge number of 
classes, and thus the PermGen with its default value explodes.

I'll try to reproduce it here to see where the limit is. The idea is that I 
could have a cardinality-bound pool of project classloaders, to prevent this 
issue.

Cheers,

-- Laurent

Original comment by laurent....@gmail.com on 30 Sep 2014 at 7:52

GoogleCodeExporter commented 9 years ago
After having slept on the idea, I think I will wait a little before jumping 
into complexifying the current state of affairs.

Original comment by laurent....@gmail.com on 2 Oct 2014 at 12:38