SonarQube 7.9.1 常见问题

SonarQube 7.9.1 常见问题

java.lang.IllegalStateException: SonarQube requires Java 11+ to run

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[sonarqube@localhost linux-x86-64]$ ./sonar.sh  console
Running SonarQube...
wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
jvm 1    | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1    |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
jvm 1    |
jvm 1    | 20:46:06.753 [WrapperSimpleAppMain] WARN org.sonar.application.config.JdbcSettings - JDBC URL is recommended to have the property 'rewriteBatchedStatements=true'
jvm 1    | 20:46:06.764 [WrapperSimpleAppMain] WARN org.sonar.application.config.JdbcSettings - JDBC URL is recommended to have the property 'useConfigs=maxPerformance'
jvm 1    |
jvm 1    | WrapperSimpleApp: Encountered an error running main: java.lang.IllegalStateException: SonarQube requires Java 11+ to run
jvm 1    | java.lang.IllegalStateException: SonarQube requires Java 11+ to run
jvm 1    |      at org.sonar.application.App.checkJavaVersion(App.java:93)
jvm 1    |      at org.sonar.application.App.start(App.java:56)
jvm 1    |      at org.sonar.application.App.main(App.java:98)
jvm 1    |      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
jvm 1    |      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
jvm 1    |      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
jvm 1    |      at java.lang.reflect.Method.invoke(Method.java:498)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
jvm 1    |      at java.lang.Thread.run(Thread.java:748)
wrapper  | <-- Wrapper Stopped

解决

SonarQube只支持jdk11.
修改
/sonarqube-7.9.1/conf/wrapper.conf,添加jdk11
wrapper.java.command=/usr/local/jdk-11.0.4/bin/java

.MySQL数据库不支持

1
2
3
4
5
6
#############################################################################################################
#         End of Life of MySQL Support : SonarQube 7.9 and future versions do not support MySQL.            #
#         Please migrate to a supported database. Get more details at                                       #
#         https://community.sonarsource.com/t/end-of-life-of-mysql-support                                  #
#         and https://github.com/SonarSource/mysql-migrator                                                 #
#############################################################################################################
解决

不支持Mysql数据库。另外如果选择oracle服务器,需要Oracle11或以上版本

org.sonar.java.AnalysisException: Please provide compiled classes of your project with sonar.java.binaries property

在执行Soanr扫描过程中,出现错误。
执行命令为:

1
sonar-scanner.bat -D"sonar.projectKey=ZZBOYAXUN-buildsx" -D"sonar.sources=." -D"sonar.host.url=http://192.168.1.252:9000/sonarqube" -D"sonar.login=33c6de9e9570832b39d0cbd283567f0e5b507d29" -D"sonar.java.binaries=E:\workspace\ZZBOYAXUN\buildsx\WebRoot\WEB-INF\classes";

错误日志如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflect
ive access operations
WARNING: All illegal access operations will be denied in a future release
INFO: Sensor JavaSquidSensor [java]
INFO: Configured Java source version (sonar.java.source): none
INFO: JavaClasspath initialization
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 43.242s
INFO: Final Memory: 13M/44M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
org.sonar.java.AnalysisException: Please provide compiled classes of your projec
t with sonar.java.binaries property
        at org.sonar.java.JavaClasspath.init(JavaClasspath.java:64)
        at org.sonar.java.AbstractJavaClasspath.getElements(AbstractJavaClasspath.java:280)
        at org.sonar.java.SonarComponents.getJavaClasspath(SonarComponents.java:
209)
        at org.sonar.java.JavaSquid.<init>(JavaSquid.java:84)
        at org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:8
7)
        at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensor Wrapper.java:48)
        at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85)
        at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59)
        at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:77)
        at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59)
        at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
        at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:400)
        at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:395)
        at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:358)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
        at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:141)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
        at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:73)
        at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67)
        at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
        at com.sun.proxy.$Proxy0.execute(Unknown Source)
        at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:185)
        at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:137)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:112)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:75)
        at org.sonarsource.scanner.cli.Main.main(Main.java:61)
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging
原因分析:

新版本的Sonar必须要指定:sonar.java.binaries参数。而我指定的sonar.java.binaries参数有误。

解决:

D"sonar.java.binaries=E:\workspace\ZZBOYAXUN\buildsx\WebRoot\WEB-INF\classes";,修改为D"sonar.java.binaries=E:/workspace/ZZBOYAXUN/buildsx/WebRoot/WEB-INF/classes";

java.lang.IllegalStateException: Can not execute Checkstyle

执行命令为:

1
sonar-scanner.bat -D"sonar.projectKey=ZZBOYAXUN-buildsx" -D"sonar.sources=." -D"sonar.host.url=http://192.168.1.252:9000/sonarqube" -D"sonar.login=33c6de9e9570832b39d0cbd283567f0e5b507d29" -D"sonar.java.binaries=E:/workspace/ZZBOYAXUN/buildsx/WebRoot/WEB-INF/classes";

错误日志如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
ERROR: Error during SonarQube Scanner execution
java.lang.IllegalStateException: Can not execute Checkstyle
        at org.sonar.plugins.checkstyle.CheckstyleExecutor.executeWithClassLoader(CheckstyleExecutor.java:118)
        at org.sonar.plugins.checkstyle.CheckstyleExecutor.execute(CheckstyleExecutor.java:85)
        at org.sonar.plugins.checkstyle.CheckstyleSensor.execute(CheckstyleSensor.java:42)
        at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:48)
        at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85)
        at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59)
        at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:77)
        at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59)
        at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
        at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:400)
        at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:395)
        at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:358)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
        at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:141)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
        at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:73)
        at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67)
        at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
        at com.sun.proxy.$Proxy0.execute(Unknown Source)
        at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:185)
        at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:137)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:112)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:75)
        at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException: Exception was thrown while processing E:\workspace\ZZBOYAXUN\buildsx\src\com\zzbyx\logistic\accesscontrol\PassinfoController.java
        at com.puppycrawl.tools.checkstyle.Checker.processFiles(Checker.java:307)
        at com.puppycrawl.tools.checkstyle.Checker.process(Checker.java:220)
        at org.sonar.plugins.checkstyle.CheckstyleExecutor.executeWithClassLoader(CheckstyleExecutor.java:111)
        ... 32 more
Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException: TokenStreamRecognitionException occurred while parsing file E:\workspace\ZZBOYAXUN\buildsx\src\com\zzbyx\logistic\accesscontrol\PassinfoController.java.
        at com.puppycrawl.tools.checkstyle.JavaParser.parse(JavaParser.java:105)
        at com.puppycrawl.tools.checkstyle.TreeWalker.processFiltered(TreeWalker.java:160)
        at com.puppycrawl.tools.checkstyle.api.AbstractFileSetCheck.process(AbstractFileSetCheck.java:85)
        at com.puppycrawl.tools.checkstyle.Checker.processFile(Checker.java:332)
        at com.puppycrawl.tools.checkstyle.Checker.processFiles(Checker.java:294)
        ... 34 more
原因分析

从日志中可以得知PassinfoController.java在进行CheckStyle扫描时出现错误,通过搜索发现并没有针对最新版本的解决方案,后来想到了跳过错误,查找Sonar文档,并没有这个参数,不过发现有跳过指定文件或目录的支持。

参考Idea的Sonar插件


image.png

解决

解决:添加搜索范围,最小,先跳过有问题的目录。

1
sonar.exclusions=**/*.js,**/*{!.java},**/PassinfoController.java,**/*PassinfoController*,**/*BaseController*,**/BaseController.java

Caused by: java.nio.file.AccessDeniedException: /var/sonarqube/temp/conf/es/elasticsearch.yml

Sonar服务器被重启后,启动不了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
[sonar@bogon linux-x86-64]$ ./sonar.sh console
Running SonarQube...
wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
jvm 1    | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1    |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
jvm 1    |
jvm 1    | 2019.09.27 18:25:19 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /var/sonarqube/temp
jvm 1    | 2019.09.27 18:25:19 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
jvm 1    | 2019.09.27 18:25:19 ERROR app[][o.s.a.p.ManagedProcessHandler] Fail to launch process [es]
jvm 1    | java.lang.IllegalStateException: Cannot write Elasticsearch yml settings file
jvm 1    |     at org.sonar.application.es.EsYmlSettings.writeToYmlSettingsFile(EsYmlSettings.java:53)
jvm 1    |     at org.sonar.application.ProcessLauncherImpl.writeConfFiles(ProcessLauncherImpl.java:152)
jvm 1    |     at org.sonar.application.ProcessLauncherImpl.launch(ProcessLauncherImpl.java:84)
jvm 1    |     at org.sonar.application.SchedulerImpl.lambda$tryToStartProcess$2(SchedulerImpl.java:192)
jvm 1    |     at org.sonar.application.process.ManagedProcessHandler.start(ManagedProcessHandler.java:72)
jvm 1    |     at org.sonar.application.SchedulerImpl.tryToStartProcess(SchedulerImpl.java:190)
jvm 1    |     at org.sonar.application.SchedulerImpl.tryToStartEs(SchedulerImpl.java:142)
jvm 1    |     at org.sonar.application.SchedulerImpl.tryToStartAll(SchedulerImpl.java:134)
jvm 1    |     at org.sonar.application.SchedulerImpl.schedule(SchedulerImpl.java:108)
jvm 1    |     at org.sonar.application.App.start(App.java:68)
jvm 1    |     at org.sonar.application.App.main(App.java:98)
jvm 1    |     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
jvm 1    |     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
jvm 1    |     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
jvm 1    |     at java.base/java.lang.reflect.Method.invoke(Method.java:566)
jvm 1    |     at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
jvm 1    |     at java.base/java.lang.Thread.run(Thread.java:834)
jvm 1    | Caused by: java.nio.file.AccessDeniedException: /var/sonarqube/temp/conf/es/elasticsearch.yml
jvm 1    |     at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
jvm 1    |     at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
jvm 1    |     at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
jvm 1    |     at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:215)
jvm 1    |     at java.base/java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:478)
jvm 1    |     at java.base/java.nio.file.Files.newOutputStream(Files.java:219)
jvm 1    |     at java.base/java.nio.file.Files.write(Files.java:3422)
jvm 1    |     at org.sonar.application.es.EsYmlSettings.writeToYmlSettingsFile(EsYmlSettings.java:51)
jvm 1    |     ... 16 common frames omitted
jvm 1    | 2019.09.27 18:25:19 INFO  app[][o.s.a.SchedulerImpl] Process[es] is stopped
jvm 1    | 2019.09.27 18:25:19 INFO  app[][o.s.a.SchedulerImpl] Hard stopping SonarQube
jvm 1    | 2019.09.27 18:25:19 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
jvm 1    |
jvm 1    | WrapperSimpleApp: Encountered an error running main: java.lang.IllegalStateException: Cannot write Elasticsearch yml settings file
jvm 1    | java.lang.IllegalStateException: Cannot write Elasticsearch yml settings file
jvm 1    |     at org.sonar.application.es.EsYmlSettings.writeToYmlSettingsFile(EsYmlSettings.java:53)
jvm 1    |     at org.sonar.application.ProcessLauncherImpl.writeConfFiles(ProcessLauncherImpl.java:152)
jvm 1    |     at org.sonar.application.ProcessLauncherImpl.launch(ProcessLauncherImpl.java:84)
jvm 1    |     at org.sonar.application.SchedulerImpl.lambda$tryToStartProcess$2(SchedulerImpl.java:192)
jvm 1    |     at org.sonar.application.process.ManagedProcessHandler.start(ManagedProcessHandler.java:72)
jvm 1    |     at org.sonar.application.SchedulerImpl.tryToStartProcess(SchedulerImpl.java:190)
jvm 1    |     at org.sonar.application.SchedulerImpl.tryToStartEs(SchedulerImpl.java:142)
jvm 1    |     at org.sonar.application.SchedulerImpl.tryToStartAll(SchedulerImpl.java:134)
jvm 1    |     at org.sonar.application.SchedulerImpl.schedule(SchedulerImpl.java:108)
jvm 1    |     at org.sonar.application.App.start(App.java:68)
jvm 1    |     at org.sonar.application.App.main(App.java:98)
jvm 1    |     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
jvm 1    |     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
jvm 1    |     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
jvm 1    |     at java.base/java.lang.reflect.Method.invoke(Method.java:566)
jvm 1    |     at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
jvm 1    |     at java.base/java.lang.Thread.run(Thread.java:834)
jvm 1    | Caused by: java.nio.file.AccessDeniedException: /var/sonarqube/temp/conf/es/elasticsearch.yml
jvm 1    |     at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
jvm 1    |     at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
jvm 1    |     at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
jvm 1    |     at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:215)
jvm 1    |     at java.base/java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:478)
jvm 1    |     at java.base/java.nio.file.Files.newOutputStream(Files.java:219)
jvm 1    |     at java.base/java.nio.file.Files.write(Files.java:3422)
jvm 1    |     at org.sonar.application.es.EsYmlSettings.writeToYmlSettingsFile(EsYmlSettings.java:51)
jvm 1    |     ... 16 more
wrapper  | <-- Wrapper Stopped
[sonar@bogon linux-x86-64]$

原因分析

通过分析日志,可以查看到Caused by: java.nio.file.AccessDeniedException: /var/sonarqube/temp/conf/es/elasticsearch.yml这个文件,然后结合网上相应问题的解决方案,都是权限的问题,所以查看文件的执行权限,可以定位到问题,是因为当前用户sonar并没有这个文件的执行权限。

解决

修改文件的执行权限为sonar用户,命令: chown -R sonar:sonar /var/sonarqube/。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
[root@bogon ~]# cd /var/
[root@bogon var]# ll
总用量 24
drwxr-xr-x.  2 root root   18 5月  31 02:26 account
drwxr-xr-x.  2 root root    6 8月  12 2015 adm
drwxr-xr-x. 14 root root 4096 5月  31 02:35 cache
drwxr-xr-x.  2 root root    6 11月 21 2015 crash
drwxr-xr-x.  3 root root   32 5月  31 03:00 db
drwxr-xr-x.  3 root root   17 5月  31 02:27 empty
drwxr-xr-x   3 root root   16 5月  31 03:37 ftp
drwxr-xr-x.  2 root root    6 8月  12 2015 games
drwxr-xr-x.  2 root root    6 8月  12 2015 gopher
drwxr-xr-x.  6 root root 4096 5月  31 03:08 hasplm
drwxr-xr-x.  3 root root   17 5月   9 2018 kerberos
drwxr-xr-x. 58 root root 4096 9月  28 03:48 lib
drwxr-xr-x.  2 root root    6 8月  12 2015 local
lrwxrwxrwx.  1 root root   11 5月  31 02:13 lock -> ../run/lock
drwxr-xr-x. 18 root root 4096 9月  27 18:24 log
lrwxrwxrwx.  1 root root   10 5月  31 02:13 mail -> spool/mail
drwxr-xr-x.  2 root root    6 8月  12 2015 nis
drwxr-xr-x.  2 root root    6 8月  12 2015 opt
drwxr-xr-x.  2 root root    6 8月  12 2015 preserve
lrwxrwxrwx.  1 root root    6 5月  31 02:13 run -> ../run
drwxr-xr-x   4 root root   28 9月   5 10:56 sonarqube
drwxr-xr-x. 12 root root 4096 5月  31 02:27 spool
drwxr-xr-x   3 root root   17 5月  31 03:37 streaming
drwxr-xr-x.  4 root root   26 5月  31 02:20 target
drwxrwxrwt.  6 root root 4096 9月  27 18:23 tmp
drwxr-xr-x.  2 root root    6 8月  12 2015 yp
[root@bogon var]# chown -R sonar:sonar /var/sonarqube/
[root@bogon var]# ll
总用量 24
drwxr-xr-x.  2 root  root    18 5月  31 02:26 account
drwxr-xr-x.  2 root  root     6 8月  12 2015 adm
drwxr-xr-x. 14 root  root  4096 5月  31 02:35 cache
drwxr-xr-x.  2 root  root     6 11月 21 2015 crash
drwxr-xr-x.  3 root  root    32 5月  31 03:00 db
drwxr-xr-x.  3 root  root    17 5月  31 02:27 empty
drwxr-xr-x   3 root  root    16 5月  31 03:37 ftp
drwxr-xr-x.  2 root  root     6 8月  12 2015 games
drwxr-xr-x.  2 root  root     6 8月  12 2015 gopher
drwxr-xr-x.  6 root  root  4096 5月  31 03:08 hasplm
drwxr-xr-x.  3 root  root    17 5月   9 2018 kerberos
drwxr-xr-x. 58 root  root  4096 9月  28 03:48 lib
drwxr-xr-x.  2 root  root     6 8月  12 2015 local
lrwxrwxrwx.  1 root  root    11 5月  31 02:13 lock -> ../run/lock
drwxr-xr-x. 18 root  root  4096 9月  27 18:24 log
lrwxrwxrwx.  1 root  root    10 5月  31 02:13 mail -> spool/mail
drwxr-xr-x.  2 root  root     6 8月  12 2015 nis
drwxr-xr-x.  2 root  root     6 8月  12 2015 opt
drwxr-xr-x.  2 root  root     6 8月  12 2015 preserve
lrwxrwxrwx.  1 root  root     6 5月  31 02:13 run -> ../run
drwxr-xr-x   4 sonar sonar   28 9月   5 10:56 sonarqube
drwxr-xr-x. 12 root  root  4096 5月  31 02:27 spool
drwxr-xr-x   3 root  root    17 5月  31 03:37 streaming
drwxr-xr-x.  4 root  root    26 5月  31 02:20 target
drwxrwxrwt.  6 root  root  4096 9月  27 18:23 tmp
drwxr-xr-x.  2 root  root     6 8月  12 2015 yp
[root@bogon var]#

java.lang.IllegalArgumentException: Unable to create shared memory

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[sonar@bogon linux-x86-64]$ pwd
/usr/local/sonarqube-7.9.1/bin/linux-x86-64
[sonar@bogon linux-x86-64]$ ./sonar.sh  console
Running SonarQube...
wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
jvm 1    | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1    |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
jvm 1    |
jvm 1    | 2019.09.26 08:46:16 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /var/sonarqube/temp
jvm 1    |
jvm 1    | WrapperSimpleApp: Encountered an error running main: java.lang.IllegalArgumentException: Unable to create shared memory :
jvm 1    | java.lang.IllegalArgumentException: Unable to create shared memory :
jvm 1    |     at org.sonar.process.sharedmemoryfile.AllProcessesCommands.<init>(AllProcessesCommands.java:103)
jvm 1    |     at org.sonar.application.AppFileSystem.reset(AppFileSystem.java:63)
jvm 1    |     at org.sonar.application.App.start(App.java:62)
jvm 1    |     at org.sonar.application.App.main(App.java:98)
jvm 1    |     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
jvm 1    |     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
jvm 1    |     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
jvm 1    |     at java.base/java.lang.reflect.Method.invoke(Method.java:566)
jvm 1    |     at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
jvm 1    |     at java.base/java.lang.Thread.run(Thread.java:834)
jvm 1    | Caused by: java.io.FileNotFoundException: /var/sonarqube/temp/sharedmemory (权限不够)
jvm 1    |     at java.base/java.io.RandomAccessFile.open0(Native Method)
jvm 1    |     at java.base/java.io.RandomAccessFile.open(RandomAccessFile.java:345)
jvm 1    |     at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:259)
jvm 1    |     at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:214)
jvm 1    |     at org.sonar.process.sharedmemoryfile.AllProcessesCommands.<init>(AllProcessesCommands.java:100)
jvm 1    |     ... 9 more
wrapper  | <-- Wrapper Stopped
[sonar@bogon linux-x86-64]$

权限问题,解决:
chown -R sonar /var/sonarqube/*
chown -R sonar /usr/local/sonarqube-7.9.1/*
[root@bogon ~]#