Java-процесс зависает без блокировки или зацикливания - PullRequest
0 голосов
/ 29 ноября 2018

Мое приложение довольно простое - планировщик вызывает загрузчик для ежедневной загрузки отчета с использованием MWS API.Но я вижу, что мой Java-процесс зависает в какой-то странной точке (я едва ли могу представить себе, что он может зависнуть).Я проверил дамп потока, но тупик не был найден.Было бы здорово, если бы кто-то смог узнать причину.Спасибо!Пожалуйста, дайте мне знать, если нужна какая-либо другая информация.

2018-11-29 10:20:33
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode):

"RMI TCP Connection(5)-10.154.27.32" #24 daemon prio=5 os_prio=0 tid=0x0000000053b21800 nid=0x59c8 runnable [0x000000005a5dd000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.socketRead(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.io.BufferedInputStream.fill(Unknown Source)
    at java.io.BufferedInputStream.read(Unknown Source)
    - locked <0x00000000f9662938> (a java.io.BufferedInputStream)
    at java.io.FilterInputStream.read(Unknown Source)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(Unknown Source)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$37/944290599.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
    - <0x00000000f9662a78> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"RMI TCP Connection(idle)" #23 daemon prio=5 os_prio=0 tid=0x0000000053b23800 nid=0xc1c waiting on condition [0x0000000059cbe000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000fc962b38> (a java.util.concurrent.SynchronousQueue$TransferStack)
    at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
    at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(Unknown Source)
    at java.util.concurrent.SynchronousQueue$TransferStack.transfer(Unknown Source)
    at java.util.concurrent.SynchronousQueue.poll(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
    - None

"RMI TCP Connection(idle)" #22 daemon prio=5 os_prio=0 tid=0x0000000053b24800 nid=0x55f4 waiting on condition [0x000000005a1bf000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000fc962b38> (a java.util.concurrent.SynchronousQueue$TransferStack)
    at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
    at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(Unknown Source)
    at java.util.concurrent.SynchronousQueue$TransferStack.transfer(Unknown Source)
    at java.util.concurrent.SynchronousQueue.poll(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
    - None

"JMX server connection timeout 20" #20 daemon prio=5 os_prio=0 tid=0x0000000053b23000 nid=0x58e4 in Object.wait() [0x0000000054f3e000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(Unknown Source)
    - locked <0x00000000fc986458> (a [I)
    at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
    - None

"RMI Scheduler(0)" #19 daemon prio=5 os_prio=0 tid=0x0000000053b22000 nid=0x58f8 waiting on condition [0x0000000059dee000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000fc965e88> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
    - None

"RMI TCP Accept-0" #17 daemon prio=5 os_prio=0 tid=0x0000000053b20800 nid=0x5a50 runnable [0x000000005280e000]
   java.lang.Thread.State: RUNNABLE
    at java.net.DualStackPlainSocketImpl.accept0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketAccept(Unknown Source)
    at java.net.AbstractPlainSocketImpl.accept(Unknown Source)
    at java.net.PlainSocketImpl.accept(Unknown Source)
    - locked <0x00000000fc9682a0> (a java.net.SocksSocketImpl)
    at java.net.ServerSocket.implAccept(Unknown Source)
    at java.net.ServerSocket.accept(Unknown Source)
    at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(Unknown Source)
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(Unknown Source)
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
    - None

"myScheduler-1" #15 prio=5 os_prio=0 tid=0x0000000053b1b800 nid=0x5980 runnable [0x0000000058dfd000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.socketRead(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at sun.security.ssl.InputRecord.readFully(Unknown Source)
    at sun.security.ssl.InputRecord.read(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
    - locked <0x00000000fc9bbac0> (a java.lang.Object)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
    - locked <0x00000000fc9bbad0> (a java.lang.Object)
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:396)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:355)
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:359)
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:381)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
    at com.amazontracker.spaapireport.service.AmazonSpaApiHttpService.issueRequest(AmazonSpaApiHttpService.java:201)
    at com.amazontracker.spaapireport.service.AmazonSpaApiHttpService.get(AmazonSpaApiHttpService.java:83)
    at com.amazontracker.spaapireport.service.AmazonSpaApiReportService.getReport(AmazonSpaApiReportService.java:88)
    at com.amazontracker.spaapireport.downloader.AmazonSpaApiReportDownloader$1.doRetriableJob(AmazonSpaApiReportDownloader.java:199)
    at com.amazontracker.common.runner.RetriableWorkerRunner.run(RetriableWorkerRunner.java:35)
    at com.amazontracker.spaapireport.downloader.AmazonSpaApiReportDownloader.checkStatus(AmazonSpaApiReportDownloader.java:244)
    at com.amazontracker.spaapireport.downloader.AmazonSpaApiReportDownloader.download(AmazonSpaApiReportDownloader.java:123)
    at com.amazontracker.spaapireport.worker.BaseSpaApiDatedDownloadableDataWorker.doDownload(BaseSpaApiDatedDownloadableDataWorker.java:77)
    at com.amazontracker.spaapireport.worker.BaseSpaApiDownloadableDataWorker$1.doRetriableJob(BaseSpaApiDownloadableDataWorker.java:125)
    at com.amazontracker.common.runner.RetriableWorkerRunner.run(RetriableWorkerRunner.java:35)
    at com.amazontracker.spaapireport.worker.BaseSpaApiDownloadableDataWorker.download(BaseSpaApiDownloadableDataWorker.java:157)
    at com.amazontracker.spaapireport.worker.BaseSpaApiDownloadableDataWorker.doJob(BaseSpaApiDownloadableDataWorker.java:70)
    at com.amazontracker.spaapireport.worker.BaseSpaApiDatedDownloadableDataWorker.doJob(BaseSpaApiDatedDownloadableDataWorker.java:50)
    at com.amazontracker.spaapireport.AmazonSpaApiReportImporter$1.doRetriableJob(AmazonSpaApiReportImporter.java:254)
    at com.amazontracker.common.runner.RetriableWorkerRunner.run(RetriableWorkerRunner.java:35)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65)
    at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
    at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
    - <0x00000000fbfd74e8> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"Abandoned connection cleanup thread" #14 daemon prio=5 os_prio=0 tid=0x000000005659e800 nid=0x5860 in Object.wait() [0x0000000056a6f000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(Unknown Source)
    - locked <0x00000000fb4947b8> (a java.lang.ref.ReferenceQueue$Lock)
    at com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:43)

   Locked ownable synchronizers:
    - None

"Tomcat JDBC Pool Cleaner[713338599:1542708922968]" #13 daemon prio=5 os_prio=0 tid=0x0000000056077800 nid=0x5798 in Object.wait() [0x000000005688e000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.util.TimerThread.mainLoop(Unknown Source)
    - locked <0x00000000fb494968> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - None

"DestroyJavaVM" #11 prio=5 os_prio=0 tid=0x00000000000fe000 nid=0x5a84 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"Service Thread" #8 daemon prio=9 os_prio=0 tid=0x00000000523ac000 nid=0x5950 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"C1 CompilerThread1" #7 daemon prio=9 os_prio=2 tid=0x00000000523a8000 nid=0x56d8 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"C2 CompilerThread0" #6 daemon prio=9 os_prio=2 tid=0x000000005234e000 nid=0x5750 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"Attach Listener" #5 daemon prio=5 os_prio=2 tid=0x000000005234c800 nid=0x505c waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"Signal Dispatcher" #4 daemon prio=9 os_prio=2 tid=0x000000005234c000 nid=0x558c runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"Finalizer" #3 daemon prio=8 os_prio=1 tid=0x00000000024cb800 nid=0x5b50 in Object.wait() [0x000000005291f000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(Unknown Source)
    - locked <0x00000000faf66320> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(Unknown Source)
    at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - None

"Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x00000000024c9800 nid=0xe44 in Object.wait() [0x00000000526ef000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Unknown Source)
    at java.lang.ref.Reference.tryHandlePending(Unknown Source)
    - locked <0x00000000faf664d8> (a java.lang.ref.Reference$Lock)
    at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)

   Locked ownable synchronizers:
    - None

"VM Thread" os_prio=2 tid=0x00000000024c1000 nid=0x50fc runnable 

"VM Periodic Task Thread" os_prio=2 tid=0x00000000523c5800 nid=0x587c waiting on condition 

JNI global references: 282
...