1

ハドソンから実行中にJavaヒープスペースエラーが発生し、MAVEN_OPTS以下のように設定しました。どのボディでも、この問題の解決策を教えてくれます。

-Xmx4096m -XX:PermSize=3000m -XX:MaxPermSize=4096m
 
    [情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
    [エラー]致命的なエラー
    [情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
    [情報]Javaヒープスペース
    [情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
    [情報]トレース`ここにコードを入力`
    java.lang.OutOfMemoryError:Javaヒープスペース
        java.util.BitSet.initWords(BitSet.java:144)で
        java.util.BitSet。(BitSet.java:139)で
        com.cenqua.clover.InMemPerTestCoverageで。(InMemPerTestCoverage.java:66)
        com.cenqua.clover.CloverDatabase.mergePerTestCoverage(CloverDatabase.java:494)で
        com.cenqua.clover.CloverDatabase.merge(CloverDatabase.java:437)で
        com.cenqua.clover.CloverMerge.mainImpl(CloverMerge.java:36)で
        com.atlassian.maven.plugin.clover.CloverAggregateMojo.mergeCloverDatabases(CloverAggregateMojo.java:260)で
        com.atlassian.maven.plugin.clover.CloverAggregateMojo.execute(CloverAggregateMojo.java:79)で
        org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)で
        hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:182)で
        org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)で
        org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)で
        org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)で
        org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)で
        org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:284)で
        org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)で
        org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:65)で
        org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)で
        org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)で
        org.apache.maven.cli.MavenCli.main(MavenCli.java:362)で
        sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)で
        sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)で
        sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)で
        java.lang.reflect.Method.invoke(Method.java:597)で
        org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)で
        org.codehaus.classworlds.Launcher.launch(Launcher.java:255)で
        hudson.maven.agent.Main.launch(Main.java:185)で
        hudson.maven.MavenBuilder.call(MavenBuilder.java:165)で
        hudson.maven.MavenModuleSetBuild $ Builder.call(MavenModuleSetBuild.java:1005)で
        hudson.maven.MavenModuleSetBuild $ Builder.call(MavenModuleSetBuild.java:936)で
        hudson.remoting.UserRequest.perform(UserRequest.java:118)で
        hudson.remoting.UserRequest.perform(UserRequest.java:48)で
    [情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
    [情報]合計時間:87分35秒
    [情報]終了日:2011年7月21日木曜日12:20:13 PDT
    [情報]最終メモリ:112M / 3123M
    [情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
    チャネルが停止しました
    クローバーカバレッジレポートの公開...
4

1 に答える 1

0

私の経験では、-XX:MaxPermSizeは-Xmxと同じであってはなりません。一方、これは-Xmx内のサブセットの永続メモリです。

50%で十分かもしれないことがわかりました。とにかく、GCが適切に構成されているかどうかを確認するために、GCを監視する必要があります。

e.g.
-Xmx512M -XX:MaxPermSize=256M 

これがお役に立てば幸いです。

よろしく、

チャーリーCh。

于 2011-07-22T00:54:07.197 に答える