2017-04-21 1 views
1

J'essaie d'exécuter un conteneur docker qui contient SonarQube. Après le conteneur de construction, j'ai fait la commande ci-dessous pour exécuter le conteneur. Pour le premier moment, il semble bien (je suppose que je peux trouver up statut dans docker ps -a), mais je quitte automatiquement la sortie.Fuite de mémoire Docker avec sonarqube

Je commande tapée comme ...

docker run -d --name sonarqube 
    -p 9000:9000 -p 9092:9092 
    -e SONARQUBE_JDBC_USERNAME=sonar 
    -e SONARQUBE_JDBC_PASSWORD=sonar 
    -e SONARQUBE_JDBC_URL="jdbc:mysql://111.222.33.444:3306/sonar?characterEncoding=utf8&useUnicode=true&rewriteBatchedStatements=true" 
    sonarqube 

Et suivre est journal d'échec

2017.04.21 06:39:37 WARN web[][o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[Pip the Troll][[timer]]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: 
java.lang.Thread.sleep(Native Method) 
org.elasticsearch.threadpool.ThreadPool$EstimatedTimeThread.run(ThreadPool.java:747) 
2017.04.21 06:39:37 WARN web[][o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[Pip the Troll][scheduler][T#1]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: 
sun.misc.Unsafe.park(Native Method) 
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215) 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078) 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093) 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809) 
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067) 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
java.lang.Thread.run(Thread.java:745) 
2017.04.21 06:39:37 WARN web[][o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[Pip the Troll][transport_client_worker][T#1]{New I/O worker #1}] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: 
sun.nio.ch.EPollArrayWrapper.epollWait(Native Method) 
sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269) 
sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93) 
sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) 
sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97) 
org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:68) 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.select(AbstractNioSelector.java:434) 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:212) 
org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) 
org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) 
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
java.lang.Thread.run(Thread.java:745) 
2017.04.21 06:39:37 WARN web[][o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[Pip the Troll][transport_client_worker][T#2]{New I/O worker #2}] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: 
sun.nio.ch.EPollArrayWrapper.epollWait(Native Method) 
sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269) 
sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93) 
sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) 
sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97) 
org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:68) 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.select(AbstractNioSelector.java:434) 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:212) 
org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) 
org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) 
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
java.lang.Thread.run(Thread.java:745) 
2017.04.21 06:39:37 WARN web[][o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[Pip the Troll][transport_client_worker][T#3]{New I/O worker #3}] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: 
sun.nio.ch.EPollArrayWrapper.epollWait(Native Method) 
sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269) 
sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93) 
sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) 
sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97) 
org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:68) 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.select(AbstractNioSelector.java:434) 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:212) 
org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) 
org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) 
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
java.lang.Thread.run(Thread.java:745) 

Après tout, il semble que la cause principale de l'arrêt automatique est memory leak. Comment puis-je réparer cela?

FYI, sans JDBC informations, cela fonctionne très bien.

================= EDIT ==================

Peut-être que je devrais fournir plus d'informations réparer ça. Lorsque je tape docker run et immédiatement docker logs sonarqube, journal ressemble ...

[[email protected] ice]# docker logs sonarqube 
01:00:46.930 [main] WARN org.sonar.application.JdbcSettings - JDBC URL is recommended to have the property 'useConfigs=maxPerformance' 
2017.04.24 01:00:47 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube/temp 
2017.04.24 01:00:47 INFO app[][o.s.p.m.JavaProcessLauncher] Launch process[es]: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -Djava.awt.headless=true -Xmx1G -Xms256m -Xss256k -Djna.nosys=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Djava.io.tmpdir=/opt/sonarqube/temp -javaagent:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/management-agent.jar -cp ./lib/common/*:./lib/search/* org.sonar.search.SearchServer /opt/sonarqube/temp/sq-process7897977644818879465properties 
2017.04.24 01:00:47 INFO es[][o.s.p.ProcessEntryPoint] Starting es 
2017.04.24 01:00:47 INFO es[][o.s.s.EsSettings] Elasticsearch listening on /127.0.0.1:9001 
2017.04.24 01:00:47 INFO es[][o.elasticsearch.node] [sonarqube] version[2.4.4], pid[45], build[fcbb46d/2017-01-03T11:33:16Z] 
2017.04.24 01:00:47 INFO es[][o.elasticsearch.node] [sonarqube] initializing ... 
2017.04.24 01:00:47 INFO es[][o.e.plugins] [sonarqube] modules [], plugins [], sites [] 
2017.04.24 01:00:47 INFO es[][o.elasticsearch.env] [sonarqube] using [1] data paths, mounts [[/opt/sonarqube/data (/dev/mapper/centos-root)]], net usable_space [7gb], net total_space [49.9gb], spins? [possibly], types [xfs] 
2017.04.24 01:00:47 INFO es[][o.elasticsearch.env] [sonarqube] heap size [989.8mb], compressed ordinary object pointers [true] 
2017.04.24 01:00:49 INFO es[][o.elasticsearch.node] [sonarqube] initialized 
2017.04.24 01:00:49 INFO es[][o.elasticsearch.node] [sonarqube] starting ... 
2017.04.24 01:00:49 INFO es[][o.e.transport] [sonarqube] publish_address {127.0.0.1:9001}, bound_addresses {127.0.0.1:9001} 
2017.04.24 01:00:49 INFO es[][o.e.discovery] [sonarqube] sonarqube/GPO7RRqHR8a8tfu1KfgVtw 

Mais après quelques secondes, l'erreur se produit et la sortie. La première erreur est quelque chose en rapport avec ElasticSearch.

2017.04.24 01:00:52 INFO es[][o.elasticsearch.node] [sonarqube] started 
2017.04.24 01:00:52 INFO es[][o.e.gateway] [sonarqube] recovered [0] indices into cluster_state 
2017.04.24 01:00:52 INFO app[][o.s.p.m.Monitor] Process[es] is up 
2017.04.24 01:00:52 INFO app[][o.s.p.m.JavaProcessLauncher] Launch process[web]: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Djava.security.egd=file:/dev/./urandom -Djava.io.tmpdir=/opt/sonarqube/temp -javaagent:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/management-agent.jar -cp ./lib/common/*:./lib/server/*:/opt/sonarqube/lib/jdbc/mysql/mysql-connector-java-5.1.39.jar org.sonar.server.app.WebServer /opt/sonarqube/temp/sq-process8670082336569494309properties 
2017.04.24 01:00:53 INFO web[][o.s.p.ProcessEntryPoint] Starting web 
2017.04.24 01:00:53 INFO web[][o.a.t.u.n.NioSelectorPool] Using a shared selector for servlet write/read 
2017.04.24 01:00:54 INFO web[][o.e.plugins] [Immortus] modules [], plugins [], sites [] 
2017.04.24 01:00:54 INFO web[][o.s.s.e.EsClientProvider] Connected to local Elasticsearch: [127.0.0.1:9001] 
2017.04.24 01:00:54 INFO web[][o.s.s.p.LogServerVersion] SonarQube Server/6.3.0.19869/43ea4f4c43aa89d4c435017f86d0da254e115e6b 
2017.04.24 01:00:54 INFO web[][o.sonar.db.Database] Create JDBC data source for jdbc:mysql://125.131.88.156:3306/sonar?characterEncoding=utf8&useUnicode=true&rewriteBatchedStatements=true 
2017.04.24 01:00:55 ERROR web[][o.a.c.c.C.[.[.[/]] Exception sending context initialized event to listener instance of class org.sonar.server.platform.web.PlatformServletContextListener 
org.sonar.api.utils.MessageException: Unsupported mysql version: 5.5. Minimal supported version is 5.6. 
2017.04.24 01:00:55 ERROR web[][o.a.c.c.StandardContext] One or more listeners failed to start. Full details will be found in the appropriate container log file 
2017.04.24 01:00:55 ERROR web[][o.a.c.c.StandardContext] Context [] startup failed due to previous errors 
2017.04.24 01:00:55 WARN web[][o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[Immortus][[timer]]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: 
java.lang.Thread.sleep(Native Method) 
org.elasticsearch.threadpool.ThreadPool$EstimatedTimeThread.run(ThreadPool.java:747) 
2017.04.24 01:00:55 WARN web[][o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[Immortus][scheduler][T#1]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: 
sun.misc.Unsafe.park(Native Method) 
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215) 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078) 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093) 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809) 
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067) 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
java.lang.Thread.run(Thread.java:745) 
2017.04.24 01:00:55 WARN web[][o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[Immortus][transport_client_worker][T#1]{New I/O worker #1}] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: 
sun.nio.ch.EPollArrayWrapper.epollWait(Native Method) 
sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269) 
sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93) 
sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) 
sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97) 
org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:68) 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.select(AbstractNioSelector.java:434) 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:212) 
org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) 
org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) 
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
java.lang.Thread.run(Thread.java:745) 

Je pense que l'URL JDBC semble très bien. Je peux accéder à la base de données avec sqllite.

Merci d'avoir répondu à mes erreurs.

+0

Ces erreurs sont causées par un plantage précoce de l'application Web de SonarQube dans Tomcat intégré lors de son démarrage. Recherchez plus tôt dans les journaux pour trouver la cause de l'accident (les paramètres jdbc sont probablement faux) –

+0

Merci @ Seb-SonarSourceTeam. Je vais vérifier pour les anciens journaux. Si cela ne vous dérange pas, puis-je poser une autre question supplémentaire? L'option jdbc 'characterEncoding',' useUnicode', 'rewriteBatchStatements' est toujours nécessaire? –

+0

@ Seb-SonarSourceTeam Je joins quelques informations supplémentaires. Voudriez-vous vérifier cela pour moi? Remercier! –

Répondre

0

J'ai modifié mon système de base de données sous la forme MariaDB ver.10.1.22 à MySQL ver.5.7. Il y a quelques messages sur ce problème, mais il semble ne pas encore résolu. Pour l'instant Sonarqube ne peut pas être utilisé avec une version de MariaDB.

0

Problème de connectivité de base de données possible. Vérifiez votre adresse pour les fautes de frappe et assurez-vous que vos informations d'identification sont valides.