我们正在使用sonarqube 5.1.1,并且通常"应用项目排除"步骤非常非常慢.有时在1-2.5小时的范围内.
我们有"全局源文件排除"以排除2种模式:
**/swagger-ui/**
**/*.min.js
我不确定最近有什么变化,因为我们的声纳构建是每晚运行的.
更新:我按要求进行了线程转储,看起来它正在等待数据库连接.全线程转储Java HotSpot(TM)服务器VM(24.79-b02混合模式):
"pool-2-thread-1" prio=10 tid=0x9e43cc00 nid=0x6e88 waiting on condition [0xa0151000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0xbfc6bd60> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:807)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
"CLEANUP_MANAGER" prio=10 tid=0x9e209000 nid=0x46b1 in Object.wait() [0x9ed8d000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xb9217dd8> (a com.persistit.CleanupManager)
at com.persistit.IOTaskRunnable.run(IOTaskRunnable.java:173)
- locked <0xb9217dd8> (a com.persistit.CleanupManager)
at java.lang.Thread.run(Thread.java:745)
"CHECKPOINT_WRITER" prio=10 tid=0x9f827000 nid=0x46af …Run Code Online (Sandbox Code Playgroud) 将Java插件从3.5升级到3.6时,构建卡在文件中,并且永不超时。该问题在3.7中也存在。
它看起来与我最近遇到的另一个问题相似,但似乎从未真正超时或崩溃。构建永远不会停止。 在旧的Apache Axis 1.2.1生成的代码上进行AST扫描时,Sonarqube跳动
有没有一种简单的方法来确定哪个规则可能导致登录问题或仅添加超时?
更新: 这是一些代码来重现此问题
public class SonarIssue {
public SonarIssue() {
super();
}
private List getOfficials(int quarterId, int categoryCode, boolean current) throws RuntimeException {
PreparedStatement preparedStatement = null;
Connection connection = null;
ResultSet resultSet = null;
boolean newTransaction = false;
ArrayList list = new ArrayList();
try {
String sql = "SELECT DISTINCT " + " o.client_ofcl_fst_nm, " + " o.client_ofcl_lst_nm, "
+ " o.client_ofcl_ttl_nm_e, " + " o.client_ofcl_ttl_nm_f, " + " o.client_ofcl_seq_no, "
+ " o.client_ofcl_sctr_nm_e, …Run Code Online (Sandbox Code Playgroud)