Процесс зависает со стеком java .io.FileOutputStream.writeBytes (собственный метод) в Docker контейнере - PullRequest
0 голосов
/ 02 апреля 2020

jstack, затем я увидел следующую информацию и, похоже, некоторые проблемы из log4j.

Первый стек, который вы увидите, пул потоков-5- thread-152 ждал 0x00007f33727ec000:

"pool-5-thread-152" #5674 prio=5 os_prio=0 tid=0x0000000008278800 nid=0x12eef waiting for monitor entry [0x00007f33727ec000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.apache.log4j.Category.callAppenders(Category.java:204)
    - waiting to lock <0x00000000f8065578> (a org.apache.log4j.spi.RootLogger)
    at org.apache.log4j.Category.forcedLog(Category.java:391)
    at org.apache.log4j.Category.log(Category.java:856)
    at org.apache.commons.logging.impl.Log4JLogger.error(Log4JLogger.java:229)
    at org.apache.hadoop.hbase.client.transactional.TransactionalScanner.next(TransactionalScanner.java:306)
    at org.apache.hadoop.hbase.client.AbstractClientScanner.next(AbstractClientScanner.java:70)
    at org.trafodion.sql.HTableClient$ScanHelper.call(HTableClient.java:306)
    at org.trafodion.sql.HTableClient$ScanHelper.call(HTableClient.java:304)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)  

Затем я нашел 2-й стек, как вы видите, он находится в состоянии RUNNING. Даже после длительного выполнения jstack у вас будет такая же трассировка стека. Кажется, это что-то вроде docker проблемы с консолью или проблемы с log4j. Я не знаю. Но я посмотрел в Google, большая часть ответа - обновить docker до 18.03, моя версия - 19.03.6. Были парни, которые говорили что-то, освобождая log4j мертвый замок.

"Thread-13" #91 prio=5 os_prio=0 tid=0x0000000006aec800 nid=0xecb4 runnable [0x00007f336e2a7000]
   java.lang.Thread.State: RUNNABLE
    at java.io.FileOutputStream.writeBytes(Native Method)
    at java.io.FileOutputStream.write(FileOutputStream.java:326)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
    - locked <0x00000000f8075898> (a java.io.BufferedOutputStream)
    at java.io.PrintStream.write(PrintStream.java:482)
    - locked <0x00000000f8075878> (a java.io.PrintStream)
    at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)
    at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291)
    at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:295)
    at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141)
    - locked <0x00000000f8075860> (a java.io.OutputStreamWriter)
    at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229)
    at org.apache.log4j.helpers.QuietWriter.flush(QuietWriter.java:59)
    at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:324)
    at org.apache.log4j.WriterAppender.append(WriterAppender.java:162)
    at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)
    - locked <0x00000000f8074e58> (a org.apache.log4j.ConsoleAppender)
    at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
    at org.apache.log4j.Category.callAppenders(Category.java:206)
    - locked <0x00000000f8065578> (a org.apache.log4j.spi.RootLogger)
    at org.apache.log4j.Category.forcedLog(Category.java:391)
    at org.apache.log4j.Category.info(Category.java:666)
    at org.trafodion.sql.HBaseClient.reconnect(HBaseClient.java:301)  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...