2012-04-11 15 views
5

Tôi mới đến sonar. tôi đang chạy sonar từ Jenkins với sonar pulgin.sonar findbugs heap size

Khi tôi đang chạy từ Jenkins tôi đang nhận được ra khỏi memory exception tại FindBugs

dưới đây là lỗi:

Out of memory 
Total memory: 1037M 
free memory: 30M 
Analyzed: D:\Victor\autocreated\webapp\WEB-INF\classes 
    Aux: C:\DOCUME~1\NADBHA~1\LOCALS~1\Temp\findbugs4165854405681394173.jar 
    Aux: C:\DOCUME~1\NADBHA~1\LOCALS~1\Temp\findbugs4688505485649811865.jar 
Total time: 2:04:49.155s 
Final Memory: 358M/989M 
Exception in thread "main" org.sonar.batch.bootstrapper.BootstrapException: org.sonar.api.utils.SonarException: Can not execute Findbugs 
    at org.sonar.runner.Runner.delegateExecution(Runner.java:189) 
    at org.sonar.runner.Runner.execute(Runner.java:78) 
    at org.sonar.runner.Main.main(Main.java:61) 
Caused by: org.sonar.api.utils.SonarException: Can not execute Findbugs 
    at org.sonar.plugins.findbugs.FindbugsExecutor.execute(FindbugsExecutor.java:120) 
    at org.sonar.plugins.findbugs.FindbugsSensor.analyse(FindbugsSensor.java:58) 
    at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:64) 
    at org.sonar.batch.phases.Phases.execute(Phases.java:93) 
    at org.sonar.batch.bootstrap.ProjectModule.doStart(ProjectModule.java:143) 
    at org.sonar.batch.bootstrap.Module.start(Module.java:83) 
    at org.sonar.batch.bootstrap.BatchModule.analyze(BatchModule.java:111) 
    at org.sonar.batch.bootstrap.BatchModule.doStart(BatchModule.java:101) 
    at org.sonar.batch.bootstrap.Module.start(Module.java:83) 
    at org.sonar.batch.bootstrap.BootstrapModule.doStart(BootstrapModule.java:102) 
    at org.sonar.batch.bootstrap.Module.start(Module.java:83) 
    at org.sonar.batch.Batch.execute(Batch.java:100) 
    at org.sonar.runner.Launcher.executeBatch(Launcher.java:65) 
    at org.sonar.runner.Launcher.execute(Launcher.java:58) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.sonar.runner.Runner.delegateExecution(Runner.java:186) 
    ... 2 more 
Caused by: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space 
    at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source) 
    at java.util.concurrent.FutureTask.get(Unknown Source) 
    at org.sonar.plugins.findbugs.FindbugsExecutor.execute(FindbugsExecutor.java:112) 
    ... 20 more 
Caused by: java.lang.OutOfMemoryError: Java heap space 

phiên bản sonar của tôi là 2.13

khi tôi đang tăng JVM tùy chọn trong trình cắm sonar của Jenkins đến 1280 được hiển thị dưới đây:

Error occurred during initialization of VM 
Could not reserve enough space for object heap 
Error: Could not create the Java Virtual Machine. 
Error: A fatal exception has occurred. Program will exit`enter code here` 
+0

máy của bạn có bao nhiêu bộ nhớ? 1280 có vẻ nhiều hơn 1037M – oers

+0

ram hệ thống của tôi là 3 gb. – vinod

+0

Bạn có thể đăng các tùy chọn JVM mà bạn đã đặt không? –

Trả lời

5

Vâng, trình quản lý tìm kiếm sonar có thể sử dụng rất nhiều RAM nếu cơ sở mã được phân tích lớn.

Bạn sẽ phải tăng không chỉ kích thước heap có sẵn cho JVM, mà còn "MaxPermSize" và "ReservedCodeCacheSize" (ít nhất là cho Java Hotspot VM). Các tùy chọn JVM phải được thiết lập trên JVM thực sự đang thực thi trình quản lý sonar FindBugs. Vì vậy, có lẽ không phải là máy ảo Jenkins, mà là cái mà Jenkins bắt đầu cho công việc.

Dưới đây là một ví dụ cho một hệ thống 64bit:

-Xmx3062m -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=128m 

Trên một hệ thống 32bit, mà tôi giả sử bạn đang sử dụng, bạn sẽ đi cho các giá trị thấp hơn, chẳng hạn như:

-Xmx1536m -XX:MaxPermSize=384m -XX:ReservedCodeCacheSize=128m 

Cũng , nếu Jenkins không chấp nhận các tùy chọn JVM, bạn có thể thử chạy sonar bằng cách sử dụng nhiệm vụ kiến ​​sonar từ Jenkins. (Đó là những gì tôi đang làm và tôi có thể đặt nhiều bộ nhớ tùy thích.)

+0

đã thử tất cả các cài đặt thos qua MAVEN_OPTS từ Jenkins, nhưng tiếc là không thành công :( – gvasquez