Errors when I re-provisioned EC2 instance with sonar 9.9

Must-share information (formatted with Markdown):

  • which versions are you using (SonarQube, Scanner, Plugin, and any relevant extension) - 9.9
  • how is SonarQube deployed: zip, Docker, Helm - Docker
  • what are you trying to achieve - I just tried to recycle my Ec2 instance
  • what have you tried so far to achieve this - Docker starts with access denier error
java.lang.IllegalStateException: Unable to access 'path.data' (/opt/sonarqube/data/es7)
Likely root cause: java.nio.file.AccessDeniedException: /opt/sonarqube/data/es7
        at java.base/sun.nio.fs.UnixException.translateToIOException(Unknown Source)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
        at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(Unknown Source)
        at java.base/java.nio.file.Files.createDirectory(Unknown Source)
        at java.base/java.nio.file.Files.createAndCheckIsDirectory(Unknown Source)
        at java.base/java.nio.file.Files.createDirectories(Unknown Source)
        at org.elasticsearch.bootstrap.Security.ensureDirectoryExists(Security.java:318)
        at org.elasticsearch.bootstrap.FilePermissionUtils.addDirectoryPath(FilePermissionUtils.java:64)
        at org.elasticsearch.bootstrap.Security.addFilePermissions(Security.java:226)
        at org.elasticsearch.bootstrap.Security.createPermissions(Security.java:168)
        at org.elasticsearch.bootstrap.Security.configure(Security.java:115)
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:229)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:434)
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:169)
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:160)
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112)
        at org.elasticsearch.cli.Command.main(Command.java:77)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:125)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80)
For complete error details, refer to the log at /opt/sonarqube/logs/sonarqube.log
2023.06.19 03:28:43 WARN  app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [ElasticSearch]: 1
2023.06.19 03:28:43 INFO  app[][o.s.a.SchedulerImpl] Process[ElasticSearch] is stopped
2023.06.19 03:28:43 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
2023.06.19 03:28:45 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube/temp
2023.06.19 03:28:45 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on [HTTP: 127.0.0.1:9001, TCP: 127.0.0.1:38135]
2023.06.19 03:28:45 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[ELASTICSEARCH] from [/opt/sonarqube/elasticsearch]: /opt/sonarqube/elasticsearch/bin/elasticsearch
2023.06.19 03:28:45 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2023.06.19 03:28:48 ERROR es[][o.e.b.ElasticsearchUncaughtExceptionHandler] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.IllegalStateException: Unable to access 'path.data' (/opt/sonarqube/data/es7)
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:173) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:160) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112) ~[elasticsearch-cli-7.17.8.jar:7.17.8]
        at org.elasticsearch.cli.Command.main(Command.java:77) ~[elasticsearch-cli-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:125) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80) ~[elasticsearch-7.17.8.jar:7.17.8]
Caused by: java.lang.IllegalStateException: Unable to access 'path.data' (/opt/sonarqube/data/es7)
        at org.elasticsearch.bootstrap.FilePermissionUtils.addDirectoryPath(FilePermissionUtils.java:66) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Security.addFilePermissions(Security.java:226) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Security.createPermissions(Security.java:168) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Security.configure(Security.java:115) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:229) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:434) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:169) ~[elasticsearch-7.17.8.jar:7.17.8]
        ... 6 more
Caused by: java.nio.file.AccessDeniedException: /opt/sonarqube/data/es7
        at sun.nio.fs.UnixException.translateToIOException(Unknown Source) ~[?:?]
        at sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source) ~[?:?]
        at sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source) ~[?:?]
        at sun.nio.fs.UnixFileSystemProvider.createDirectory(Unknown Source) ~[?:?]
        at java.nio.file.Files.createDirectory(Unknown Source) ~[?:?]
        at java.nio.file.Files.createAndCheckIsDirectory(Unknown Source) ~[?:?]
        at java.nio.file.Files.createDirectories(Unknown Source) ~[?:?]
        at org.elasticsearch.bootstrap.Security.ensureDirectoryExists(Security.java:318) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.FilePermissionUtils.addDirectoryPath(FilePermissionUtils.java:64) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Security.addFilePermissions(Security.java:226) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Security.createPermissions(Security.java:168) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Security.configure(Security.java:115) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:229) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:434) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:169) ~[elasticsearch-7.17.8.jar:7.17.8]
        ... 6 more
uncaught exception in thread [main]
java.lang.IllegalStateException: Unable to access 'path.data' (/opt/sonarqube/data/es7)
Likely root cause: java.nio.file.AccessDeniedException: /opt/sonarqube/data/es7
        at java.base/sun.nio.fs.UnixException.translateToIOException(Unknown Source)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
        at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(Unknown Source)
        at java.base/java.nio.file.Files.createDirectory(Unknown Source)
        at java.base/java.nio.file.Files.createAndCheckIsDirectory(Unknown Source)
        at java.base/java.nio.file.Files.createDirectories(Unknown Source)
        at org.elasticsearch.bootstrap.Security.ensureDirectoryExists(Security.java:318)
        at org.elasticsearch.bootstrap.FilePermissionUtils.addDirectoryPath(FilePermissionUtils.java:64)
        at org.elasticsearch.bootstrap.Security.addFilePermissions(Security.java:226)
        at org.elasticsearch.bootstrap.Security.createPermissions(Security.java:168)
        at org.elasticsearch.bootstrap.Security.configure(Security.java:115)
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:229)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:434)
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:169)
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:160)
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112)
        at org.elasticsearch.cli.Command.main(Command.java:77)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:125)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80)
For complete error details, refer to the log at /opt/sonarqube/logs/sonarqube.log
2023.06.19 03:28:48 WARN  app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [ElasticSearch]: 1
2023.06.19 03:28:48 INFO  app[][o.s.a.SchedulerImpl] Process[ElasticSearch] is stopped
2023.06.19 03:28:48 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
2023.06.19 03:28:50 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube/temp
2023.06.19 03:28:50 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on [HTTP: 127.0.0.1:9001, TCP: 127.0.0.1:46315]
2023.06.19 03:28:50 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[ELASTICSEARCH] from [/opt/sonarqube/elasticsearch]: /opt/sonarqube/elasticsearch/bin/elasticsearch
2023.06.19 03:28:50 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2023.06.19 03:28:52 ERROR es[][o.e.b.ElasticsearchUncaughtExceptionHandler] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.IllegalStateException: Unable to access 'path.data' (/opt/sonarqube/data/es7)
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:173) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:160) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112) ~[elasticsearch-cli-7.17.8.jar:7.17.8]
        at org.elasticsearch.cli.Command.main(Command.java:77) ~[elasticsearch-cli-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:125) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80) ~[elasticsearch-7.17.8.jar:7.17.8]
Caused by: java.lang.IllegalStateException: Unable to access 'path.data' (/opt/sonarqube/data/es7)
        at org.elasticsearch.bootstrap.FilePermissionUtils.addDirectoryPath(FilePermissionUtils.java:66) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Security.addFilePermissions(Security.java:226) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Security.createPermissions(Security.java:168) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Security.configure(Security.java:115) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:229) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:434) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:169) ~[elasticsearch-7.17.8.jar:7.17.8]
        ... 6 more
Caused by: java.nio.file.AccessDeniedException: /opt/sonarqube/data/es7
        at sun.nio.fs.UnixException.translateToIOException(Unknown Source) ~[?:?]
        at sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source) ~[?:?]
        at sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source) ~[?:?]
        at sun.nio.fs.UnixFileSystemProvider.createDirectory(Unknown Source) ~[?:?]
        at java.nio.file.Files.createDirectory(Unknown Source) ~[?:?]
        at java.nio.file.Files.createAndCheckIsDirectory(Unknown Source) ~[?:?]
        at java.nio.file.Files.createDirectories(Unknown Source) ~[?:?]
        at org.elasticsearch.bootstrap.Security.ensureDirectoryExists(Security.java:318) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.FilePermissionUtils.addDirectoryPath(FilePermissionUtils.java:64) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Security.addFilePermissions(Security.java:226) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Security.createPermissions(Security.java:168) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Security.configure(Security.java:115) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:229) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:434) ~[elasticsearch-7.17.8.jar:7.17.8]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:169) ~[elasticsearch-7.17.8.jar:7.17.8]
        ... 6 more
uncaught exception in thread [main]
java.lang.IllegalStateException: Unable to access 'path.data' (/opt/sonarqube/data/es7)
Likely root cause: java.nio.file.AccessDeniedException: /opt/sonarqube/data/es7
        at java.base/sun.nio.fs.UnixException.translateToIOException(Unknown Source)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
        at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(Unknown Source)
        at java.base/java.nio.file.Files.createDirectory(Unknown Source)
        at java.base/java.nio.file.Files.createAndCheckIsDirectory(Unknown Source)
        at java.base/java.nio.file.Files.createDirectories(Unknown Source)
        at org.elasticsearch.bootstrap.Security.ensureDirectoryExists(Security.java:318)
        at org.elasticsearch.bootstrap.FilePermissionUtils.addDirectoryPath(FilePermissionUtils.java:64)
        at org.elasticsearch.bootstrap.Security.addFilePermissions(Security.java:226)
        at org.elasticsearch.bootstrap.Security.createPermissions(Security.java:168)
        at org.elasticsearch.bootstrap.Security.configure(Security.java:115)
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:229)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:434)
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:169)
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:160)
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112)
        at org.elasticsearch.cli.Command.main(Command.java:77)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:125)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80)
For complete error details, refer to the log at /opt/sonarqube/logs/sonarqube.log
2023.06.19 03:28:52 WARN  app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [ElasticSearch]: 1
2023.06.19 03:28:52 INFO  app[][o.s.a.SchedulerImpl] Process[ElasticSearch] is stopped
2023.06.19 03:28:52 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped

Hi,

It’s not clear to me what the question is. When you recycled your EC2 instance, did you also recreate the data volume? And if so, does SonarQube have permissions to it?

 
Ann

Hi Ann,
Thanks for your response.

This is just an Instance recycle. EBS volume will remain the same. We use docker compose to launch the service once the instance comes up.

Thanks
Arun

Hi Arun,

At root, this looks like a file system permissions issue. Does the user running SonarQube still have full permissions (77x) on the files/directory in question?

 
Ann