You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Uwe Schindler (JIRA)" <ji...@apache.org> on 2013/07/09 15:21:53 UTC

[jira] [Comment Edited] (SOLR-5022) PermGen exhausted test failures on Jenkins.

    [ https://issues.apache.org/jira/browse/SOLR-5022?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13703245#comment-13703245 ] 

Uwe Schindler edited comment on SOLR-5022 at 7/9/13 1:20 PM:
-------------------------------------------------------------

Maybe I know, why the permgen issues do not happen for all of us! The reason is:

- Something seems to eat permgen by interning strings! Those interned strings are never freed until the JVM dies.
- If you run with many CPUs, the test runner runs tests in multiple parallel JVMs, so every JVMs runs less tests.

...the Jenkins server on MacOSX runs with one JVM only (because the virtual box has only 2 virtual CPUs). So all tests have to share the permgen. Windows always passes because no hadoop used. And linux fails more seldom (2 parallel JVMs). On FreeBSD we also don't run hadoop tests.

We have to find out: Something seems to eat all permgen, not by loading classes, but by interning strings. And that’s the issue here. My idea would be: I will run forbidden-apis on all JAR files of Solr that were added and will forbid {{String#intern()}} signature. This should show us very fast, who interns strings and we can open bug reports or hot-patch those jar files.

                
      was (Author: thetaphi):
    Maybe I know, why the permgen issues do not happen for all of us! The reason is:

- Something seems to eat permeg by interning strings! Those interned strings are never freed until the JVM dies.
- If you run with many CPUs, the test runner runs tests in multiple parallel JVMs, so every JVMs runs less tests.

...the Jenkins server on MacOSX runs with one JVM only (because the virtual box has only 2 virtual CPUs). So all tests have to share the permgen. Windows always passes because no hadoop used. And linux fails more seldom (2 parallel JVMs). On FreeBSD we also don't run hadoop tests.

We have to find out: Something seems to eat all permgen, not by loading classes, but by interning strings. And that’s the issue here. My idea would be: I will run forbidden-apis on all JAR files of Solr that were added and will forbid {{String#intern()}} signature. This should show us very fast, who interns strings and we can open bug reports or hot-patch those jar files.

                  
> PermGen exhausted test failures on Jenkins.
> -------------------------------------------
>
>                 Key: SOLR-5022
>                 URL: https://issues.apache.org/jira/browse/SOLR-5022
>             Project: Solr
>          Issue Type: Test
>          Components: Tests
>            Reporter: Mark Miller
>            Priority: Blocker
>             Fix For: 5.0, 4.4
>
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org