Мое приложение довольно простое - планировщик вызывает загрузчик для ежедневной загрузки отчета с использованием 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