octo-technology / sonar-objective-c

Sonar Plugin for Objective C
517 stars 208 forks source link

"Hang" in ObjCSourceImporter #56

Open drewcrawford opened 10 years ago

drewcrawford commented 10 years ago

I've got an issue where execution stays in ObjCSourceImporter for a long period of time. It's been measured at >3 hours. The repository in question is large (300+ files), so some processing time is to be expected, but I am having difficulty ascertaining if the analysis will ever complete in finite time.

Here is some output:

[12:33:05][Step 3/3] Running SonarQube using SonarQube Runner
[12:33:05][Step 3/3] + returnValue=0
[12:33:05][Step 3/3] + set +x
[12:33:05][Step 3/3] + sonar-runner -X
[12:33:06][Step 3/3] SonarQube Runner 2.3
[12:33:06][Step 3/3] Java 1.6.0_65 Apple Inc. (64-bit)
[12:33:06][Step 3/3] Mac OS X 10.9.1 x86_64
[12:33:06][Step 3/3] INFO: Error stacktraces are turned on.
[12:33:06][Step 3/3] INFO: Runner configuration file: /usr/local/Cellar/sonar-runner/2.3/libexec/conf/sonar-runner.properties
[12:33:06][Step 3/3] INFO: Project configuration file: /Users/glados/buildAgent/work/9fd180d59e84a63d/sonar-project.properties
[12:33:06][Step 3/3] INFO: Default locale: "en_US", source code encoding: "UTF-8"
[12:33:06][Step 3/3] INFO: Work directory: /Users/glados/buildAgent/work/9fd180d59e84a63d/.sonar
[12:33:06][Step 3/3] INFO: SonarQube Server 4.1.1
[12:33:07][Step 3/3] 06:33:07.910 INFO  - Load batch settings
[12:33:07][Step 3/3] 06:33:07.924 DEBUG - Download: http://sonarqube.drewcrawfordapps.com:9000/batch_bootstrap/properties?dryRun=false (no proxy)
[12:33:08][Step 3/3] 06:33:08.391 INFO  - User cache: /Users/glados/.sonar/cache
[12:33:08][Step 3/3] 06:33:08.403 INFO  - Install plugins
[12:33:08][Step 3/3] 06:33:08.404 DEBUG - Download index of plugins
[12:33:08][Step 3/3] 06:33:08.404 DEBUG - Download: http://sonarqube.drewcrawfordapps.com:9000/deploy/plugins/index.txt (no proxy)
[12:33:08][Step 3/3] 06:33:08.594 INFO  - Install JDBC driver
[12:33:08][Step 3/3] 06:33:08.594 DEBUG - Download index of jdbc-driver
[12:33:08][Step 3/3] 06:33:08.594 DEBUG - Download: http://sonarqube.drewcrawfordapps.com:9000/deploy/jdbc-driver.txt (no proxy)
[12:33:08][Step 3/3] 06:33:08.673 INFO  - Create JDBC datasource for jdbc:postgresql://sonarqube.drewcrawfordapps.com:9001/docker
[12:33:09][Step 3/3] 06:33:09.798 DEBUG - Testing JDBC connection
[12:33:10][Step 3/3] 06:33:10.838 DEBUG - Download: http://sonarqube.drewcrawfordapps.com:9000/api/server (no proxy)
[12:33:11][Step 3/3] 06:33:11.143 INFO  - Initializing Hibernate
[12:33:11][Step 3/3] 06:33:11.146 DEBUG - hibernate.generate_statistics: false
[12:33:11][Step 3/3] 06:33:11.146 DEBUG - hibernate.dialect: org.sonar.core.persistence.dialect.PostgreSql$PostgreSQLWithDecimalDialect
[12:33:11][Step 3/3] 06:33:11.146 DEBUG - hibernate.connection.provider_class: org.sonar.jpa.session.CustomHibernateConnectionProvider
[12:33:11][Step 3/3] 06:33:11.146 DEBUG - hibernate.hbm2ddl.auto: validate
[12:33:15][Step 3/3] 06:33:15.062 DEBUG - Loaded 1660 properties from l10n bundles
[12:33:16][Step 3/3] 06:33:16.851 INFO  - Load project settings
[12:33:16][Step 3/3] 06:33:16.851 DEBUG - Download: http://sonarqube.drewcrawfordapps.com:9000/batch_bootstrap/properties?project=WaveDeck&dryRun=false (no proxy)
[12:33:17][Step 3/3] 06:33:17.023 INFO  - Apply project exclusions
[12:33:17][Step 3/3] 06:33:17.795 DEBUG - Acquire semaphore on project : org.sonar.api.resources.Project@3fb01949[id=279,key=WaveDeck,qualifier=TRK], with key batch-WaveDeck
[12:33:17][Step 3/3] 06:33:17.988 INFO  - -------------  Scan WaveDeck
[12:33:17][Step 3/3] 06:33:17.992 INFO  - Load module settings
[12:33:17][Step 3/3] 06:33:17.995 DEBUG - Download: http://sonarqube.drewcrawfordapps.com:9000/batch_bootstrap/properties?project=WaveDeck&dryRun=false (no proxy)
[12:33:18][Step 3/3] 06:33:18.275 INFO  - Excluded sources: 
[12:33:18][Step 3/3] 06:33:18.275 INFO  -   ext/zeromq/**/*
[12:33:18][Step 3/3] 06:33:18.275 INFO  - Excluded tests: 
[12:33:18][Step 3/3] 06:33:18.275 INFO  -   **/package-info.java
[12:33:19][Step 3/3] 06:33:19.234 INFO  - Index files
[12:33:20][Step 3/3] 06:33:20.473 INFO  - 1179 files indexed
[12:33:20][Step 3/3] 06:33:20.478 DEBUG - Available languages:
[12:33:20][Step 3/3] 06:33:20.478 DEBUG -   * Objective-C => "objc"
[12:33:27][Step 3/3] 06:33:27.849 INFO  - Quality profile : [name=OCLint,language=objc]
[12:33:27][Step 3/3] 06:33:27.854 INFO  - Loading technical debt model...
[12:33:27][Step 3/3] 06:33:27.983 DEBUG - Updating semaphore batch-WaveDeck
[12:33:28][Step 3/3] 06:33:28.131 INFO  - Loading technical debt model done: 277 ms
[12:33:28][Step 3/3] 06:33:28.147 DEBUG - ooo Using Connection [jdbc:postgresql://sonarqube.drewcrawfordapps.com:9001/docker, UserName=docker, PostgreSQL Native Driver]
[12:33:28][Step 3/3] 06:33:28.153 DEBUG - ==>  Preparing: select * from projects where id=? 
[12:33:28][Step 3/3] 06:33:28.181 DEBUG - ==> Parameters: 279(Long)
[12:33:28][Step 3/3] 06:33:28.326 DEBUG - ooo Using Connection [jdbc:postgresql://sonarqube.drewcrawfordapps.com:9001/docker, UserName=docker, PostgreSQL Native Driver]
[12:33:28][Step 3/3] 06:33:28.326 DEBUG - ==>  Preparing: update projects set name=?, long_name=?, description=?, scope=?, qualifier=?, kee=?, language=?, root_id=?, copy_resource_id=?, person_id=?, enabled=? where id=? 
[12:33:28][Step 3/3] 06:33:28.327 DEBUG - ==> Parameters: WaveDeck(String), WaveDeck(String), Fake description(String), PRJ(String), TRK(String), WaveDeck(String), objc(String), null, null, null, true(Boolean), 279(Long)
[12:33:28][Step 3/3] 06:33:28.450 INFO  - Configure Maven plugins
[12:33:28][Step 3/3] 06:33:28.823 INFO  - Compare to previous analysis (2014-02-20)
[12:33:28][Step 3/3] 06:33:28.891 INFO  - Compare over 30 days (2014-01-22, analysis of 2014-02-20 06:54:31.952)
[12:33:28][Step 3/3] 06:33:28.975 DEBUG - Initializers : 
[12:33:28][Step 3/3] 06:33:28.975 INFO  - Base dir: /Users/glados/buildAgent/work/9fd180d59e84a63d
[12:33:28][Step 3/3] 06:33:28.976 INFO  - Working dir: /Users/glados/buildAgent/work/9fd180d59e84a63d/.sonar
[12:33:28][Step 3/3] 06:33:28.976 INFO  - Source dirs: /Users/glados/buildAgent/work/9fd180d59e84a63d
[12:33:28][Step 3/3] 06:33:28.976 INFO  - Source encoding: UTF-8, default locale: en_US
[12:33:28][Step 3/3] 06:33:28.982 DEBUG - Sensors : ObjectiveCSourceImporter -> ObjectiveCSquidSensor -> Objective-C SurefireSensor -> org.sonar.plugins.objectivec.coverage.CoberturaSensor@2cc7d960 -> org.sonar.plugins.objectivec.violations.OCLintSensor@74904497 -> CpdSensor -> InitialOpenIssuesSensor -> ProfileSensor -> ProfileEventsSensor -> ProjectLinksSensor -> VersionEventsSensor -> FileHashSensor
[12:33:28][Step 3/3] 06:33:28.982 INFO  - Sensor ObjectiveCSourceImporter...
[12:33:38][Step 3/3] 06:33:38.109 DEBUG - Updating semaphore batch-WaveDeck
[12:33:48][Step 3/3] 06:33:48.230 DEBUG - Updating semaphore batch-WaveDeck
[12:33:58][Step 3/3] 06:33:58.349 DEBUG - Updating semaphore batch-WaveDeck
[12:34:08][Step 3/3] 06:34:08.478 DEBUG - Updating semaphore batch-WaveDeck
[12:34:18][Step 3/3] 06:34:18.598 DEBUG - Updating semaphore batch-WaveDeck

At this point it continues to print "Updating semaphore..." at regular intervals until terminated.

I'm going to let it run overnight to see if anything actually happens, but I suspect it is simply hung.

I've enabled all the debug options I am aware of, so I'm not sure where to go next on this one.

drewcrawford commented 10 years ago

It eventually died due to I guess the postgres connection failing after running for several hours.

The full execution log is over here