gpt4 book ai didi

java - Java和Linux操作系统随机挂起24分钟(Linux,arm,Debian,Java 7 ARM)

转载 作者:太空狗 更新时间:2023-10-29 11:19:02 25 4
gpt4 key购买 nike

背景/背景:

我们正在CompuLab CoM之一上运行Java应用程序:

https://compulab.co.il/products/computer-on-modules/cm-fx6/#overview

JVM版本:Oracle Java 7 ARM 1.7.0_60

操作系统引用:
http://www.compulab.co.il/workspace/mediawiki/index.php5/CM-FX6_Linux

该应用程序并非易事:大量线程,对以太网(LAN),串行接口(interface),GPRS/UMTS调制解调器的访问,对Internet(ppp deamon),GPS,触摸屏,数据库(SQLite),文件系统的访问。换句话说,广泛使用OS资源.....

我们发现Java应用程序(所有线程)和OS基本功能随机挂起。我会说这是一个Linux内核错误,但是通过杀死Java应用程序,它可以恢复并正常运行。

此状态始终只需要24分钟。之后,它会恢复并正常运行。平均发生率是每24-30小时一次。

发生这种情况时,外部调用的事件(例如通过以太网或串行接口(interface)发送给应用程序的消息)将被缓冲(可能由OS),并且在恢复后会立即处理所有这些事件。

当我预先建立到设备的SSH连接时,发生这种情况后,该连接要么被阻塞(恢复后的所有命令都被缓冲和处理-24分钟),要么其正常工作,而不是:
  • 基本OS实用程序不起作用:例如
  • 为“top”
  • jstack -F不起作用,只是挂起并且不产生任何输出
  • 通过kill -9 PID杀死Java应用程序,释放了操作系统,一切开始正常运行

  • 在此状态下,操作系统每次的行为都不同。其他发现:
  • 基于网络的基本实用程序不起作用(SSH,FTP)–无法
    建立从另一台计算机到OS的新连接。
  • 从另一台机器上的
  • PING可以正常工作,直到我拔下以太网插头
    设备的电缆,有时PING会停止工作
  • 24分钟后,有时操作系统系统时间也会挂起(并非总是如此)
    它持续延迟了24分钟。
  • 在插入状态下无法连接新的USB输入设备(鼠标,键盘)
    该状态(总是发生)。

  • 另一个奇怪的事情:

    触摸屏用于与用户交互(驱动程序编译为内核模块)。即使挂起它也可以工作。 Java应用程序(GUI Swing)可以处理诸如按下按钮之类的事件,因此我可以在按钮单击处理程序后面运行一些代码。
    似乎所有线程都被阻止了,但是Java Swing可以处理一些输入事件,并且我们的应用程序使它们变序,直到需要与已经被阻止的线程或OS(单击按钮时运行bash脚本)进行交互或调用sleep方法为止。比它还挂。
    换句话说,Java应用程序被“部分地”挂起-仍然可以处理某些事情。

    已尝试:
  • 用于JVM远程调试的工具:Java Mission Control,VisualVM。
    在挂起之前也已建立连接。一切似乎都还可以
    在线程转储,堆转储等方面(我可以通过电子邮件发送)。甚至
    连接仍然存在,我可以在您的工具中看到该处理器
    JVM的使用率降至0%。
  • jstack -F(通过SSH):不起作用,只是挂起并且不产生
    任何输出
  • 我试图在没有用于触摸屏的驱动程序的情况下运行操作系统,但仍然
    发生了
  • 我尝试运行两个并行的Java应用程序。其中之一非常
    简单–只需写入日志时间戳即可。他们俩都挂了。
  • 我试图在按钮单击处理程序方面运行System.exit(0)
    应用程式。和所有线程挂起,并且不起作用(也挂起了)

  • 问题:

    是Linux内核错误还是JVM(其ARM实现)错误?

    Java(JVM)是​​否可以挂起并阻止基本的操作系统功能(FTP,SSH,系统时间,其他实用程序)?

    当基本实用程序(如jstack -F)不起作用时,如何进一步诊断/调试此问题?

    您是否有任何想法可能导致此问题,以及为什么它总是在24分钟后完全恢复?

    更新1:2014-07-10

    最终,我设法再次“捕获”了这个怪异的状态。这是我的进一步发现。

    根据没有建议,我尝试通过ssh(在高级版本中建立)运行:
    *strace -f -p PID*

    不幸的是,bash脚本命令也挂起了(与jstack相同的行为)。

    就用户限制(ulimit)和OS资源而言,以下我报告了从系统从上一个挂起的中恢复后刚开始使用 的数据。在那个状态下,它已经运行了 24小时,我可以确认这些数字在长期运行过程中保持大致相同(运行期间无随机偷看)。从我的 Angular 来看,它们是好的,并且应用程序不会以任何方式超越任何资源或其他限制。

    Java当前堆

    已使用:18 MB,可用:12 MB,总计:30 MB,最大:230 MB

    Java堆
     root@cm-debian:~# /usr/lib/jvm/jdk1.7.0_60/bin/jmap -heap 3242
    Attaching to process ID 3242, please wait...
    Debugger attached successfully.
    Client compiler detected.
    JVM version is 24.60-b09

    using thread-local object allocation.
    Mark Sweep Compact GC

    Heap Configuration:
    MinHeapFreeRatio = 40
    MaxHeapFreeRatio = 70
    MaxHeapSize = 249561088 (238.0MB)
    NewSize = 1048576 (1.0MB)
    MaxNewSize = 4294836224 (4095.875MB)
    OldSize = 4194304 (4.0MB)
    NewRatio = 2
    SurvivorRatio = 8
    PermSize = 12582912 (12.0MB)
    MaxPermSize = 67108864 (64.0MB)
    G1HeapRegionSize = 0 (0.0MB)

    Heap Usage:
    New Generation (Eden + 1 Survivor Space):
    capacity = 10092544 (9.625MB)
    used = 6772088 (6.458366394042969MB)
    free = 3320456 (3.1666336059570312MB)
    67.09991058745942% used
    Eden Space:
    capacity = 9043968 (8.625MB)
    used = 6620336 (6.3136444091796875MB)
    free = 2423632 (2.3113555908203125MB)
    73.2016743093297% used
    From Space:
    capacity = 1048576 (1.0MB)
    used = 151752 (0.14472198486328125MB)
    free = 896824 (0.8552780151367188MB)
    14.472198486328125% used
    To Space:
    capacity = 1048576 (1.0MB)
    used = 0 (0.0MB)
    free = 1048576 (1.0MB)
    0.0% used
    tenured generation:
    capacity = 22134784 (21.109375MB)
    used = 17650936 (16.83324432373047MB)
    free = 4483848 (4.276130676269531MB)
    79.7429782915433% used
    Perm Generation:
    capacity = 19136512 (18.25MB)
    used = 19023016 (18.141761779785156MB)
    free = 113496 (0.10823822021484375MB)
    99.40691386183647% used

    9597 interned Strings occupying 729344 bytes.

    顶部
    top - 11:41:29 up 21:59,  2 users,  load average: 1.51, 1.25, 1.22
    Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie
    Cpu(s): 9.4%us, 8.0%sy, 0.0%ni, 82.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
    Mem: 966780k total, 273080k used, 693700k free, 27216k buffers
    Swap: 0k total, 0k used, 0k free, 126352k cached

    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    3242 root 20 0 398m 79m 11m S 23.6 8.4 346:16.82 java
    3889 root 20 0 2804 1096 848 R 5.5 0.1 0:00.07 top
    1 root 20 0 2124 688 596 S 0.0 0.1 0:02.92 init
    2 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kthreadd
    3 root 20 0 0 0 0 S 0.0 0.0 0:14.32 ksoftirqd/0
    5 root 20 0 0 0 0 S 0.0 0.0 0:00.14 kworker/u:0
    6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
    7 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper

    Java限制
    root@cm-debian:~# java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'
    uintx AdaptivePermSizeWeight = 20 {product}
    intx CompilerThreadStackSize = 0 {pd product}
    uintx ErgoHeapSizeLimit = 0 {product}
    uintx HeapSizePerGCThread = 67108864 {product}
    uintx InitialHeapSize := 15468480 {product}
    uintx LargePageHeapSizeThreshold = 134217728 {product}
    uintx MaxHeapSize := 249561088 {product}
    uintx MaxPermSize = 67108864 {pd product}
    uintx PermSize = 12582912 {pd product}
    intx ThreadStackSize = 320 {pd product}
    intx VMThreadStackSize = 512 {pd product}
    java version "1.7.0_60"
    Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
    Java HotSpot(TM) Client VM (build 24.60-b09, mixed mode)

    流程限制
    root@cm-debian:~# cat /proc/3242/limits
    Limit Soft Limit Hard Limit Units
    Max cpu time unlimited unlimited seconds
    Max file size unlimited unlimited bytes
    Max data size unlimited unlimited bytes
    Max stack size 8388608 unlimited bytes
    Max core file size 0 unlimited bytes
    Max resident set unlimited unlimited bytes
    Max processes unlimited unlimited processes
    Max open files 8192 8192 files
    Max locked memory 65536 65536 bytes
    Max address space unlimited unlimited bytes
    Max file locks unlimited unlimited locks
    Max pending signals 16382 16382 signals
    Max msgqueue size 819200 819200 bytes
    Max nice priority 0 0
    Max realtime priority 0 0
    Max realtime timeout unlimited unlimited us

    系统内存信息
    root@cm-debian:~# cat /proc/meminfo
    MemTotal: 966780 kB
    MemFree: 694312 kB
    Buffers: 27384 kB
    Cached: 126364 kB
    SwapCached: 0 kB
    Active: 140748 kB
    Inactive: 107684 kB
    Active(anon): 94992 kB
    Inactive(anon): 2064 kB
    Active(file): 45756 kB
    Inactive(file): 105620 kB
    Unevictable: 0 kB
    Mlocked: 0 kB
    HighTotal: 524288 kB
    HighFree: 301088 kB
    LowTotal: 442492 kB
    LowFree: 393224 kB
    SwapTotal: 0 kB
    SwapFree: 0 kB
    Dirty: 0 kB
    Writeback: 0 kB
    AnonPages: 94692 kB
    Mapped: 21220 kB
    Shmem: 2376 kB
    Slab: 13268 kB
    SReclaimable: 5284 kB
    SUnreclaim: 7984 kB
    KernelStack: 960 kB
    PageTables: 980 kB
    NFS_Unstable: 0 kB
    Bounce: 0 kB
    WritebackTmp: 0 kB
    CommitLimit: 483388 kB
    Committed_AS: 137260 kB
    VmallocTotal: 286720 kB
    VmallocUsed: 2928 kB
    VmallocChunk: 283040 kB


    root@cm-debian:~# vmstat -s
    966780 K total memory
    272468 K used memory
    140776 K active memory
    107712 K inactive memory
    694312 K free memory
    27392 K buffer memory
    126404 K swap cache
    0 K total swap
    0 K used swap
    0 K free swap
    726963 non-nice user cpu ticks
    0 nice user cpu ticks
    621187 system cpu ticks
    6371123 idle cpu ticks
    3683 IO-wait cpu ticks
    324 IRQ cpu ticks
    2146 softirq cpu ticks
    0 stolen cpu ticks
    130871 pages paged in
    97520 pages paged out
    0 pages swapped in
    0 pages swapped out
    293822206 interrupts
    494034482 CPU context switches
    1412595732 boot time
    3916 forks

    线程
    root@cm-debian:~# cat /proc/sys/kernel/pid_max
    32768

    root@cm-debian:~# cat /proc/sys/kernel/threads-max
    15102

    root@cm-debian:~# cat /proc/sys/vm/max_map_count
    65530


    root@cm-debian:~# ls -l /proc/3242/task/ | wc -l
    33

    root@cm-debian:~# ps huH p 3242 | wc -l
    32

    root@cm-debian:~# grep -s '^Threads' /proc/[0-9]*/status | awk '{ sum += $2; } END { print sum; }'
    122

    打开文件/文件描述符
    root@cm-debian:~# ls -l /proc/3242/fd | wc -l
    81

    更新2:2014-13-10

    这次,我在操作系统挂起时记录了所有Java线程堆栈跟踪(如我之前所述,触摸屏及其事件仍然有效,因此我根据UI按钮处理程序将堆栈跟踪写入日志文件)。

    从我的 Angular 来看,所有线程都处于“正确”状态(睡眠,等待UDP数据报等)和,很明显,挂起不是由Java应用程序SW操作引起的,该操作需要24分钟
    10:49:42,293> [INFO ] THREAD stack traces: 
    ****************************************

    ID: 56, name: Mpg123AudioPlayer_PASSENGER_ctrlLoop
    java.lang.Thread.sleep(Native Method)
    java.lang.Thread.sleep(Thread.java:340)
    java.util.concurrent.TimeUnit.sleep(TimeUnit.java:360)
    epis5fcc.audio.mpg.MpgAudioOutputPlayer.ctrlLoop(MpgAudioOutputPlayer.java:169)
    epis5fcc.audio.mpg.MpgAudioOutputPlayer.access$000(MpgAudioOutputPlayer.java:19)
    epis5fcc.audio.mpg.MpgAudioOutputPlayer$1.run(MpgAudioOutputPlayer.java:88)
    java.lang.Thread.run(Thread.java:745)

    ID: 11, name: AWT-EventQueue-0
    java.lang.Thread.getStackTrace(Thread.java:1589)
    epis5fcc.domain.debug.ThreadStackTracesLogger.log(ThreadStackTracesLogger.java:30)
    epis5fcc.ui.settings.FccRegistryScreen$7.actionPerformed(FccRegistryScreen.java:303)
    javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    java.awt.Component.processMouseEvent(Component.java:6516)
    javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
    java.awt.Component.processEvent(Component.java:6281)
    java.awt.Container.processEvent(Container.java:2229)
    java.awt.Component.dispatchEventImpl(Component.java:4872)
    java.awt.Container.dispatchEventImpl(Container.java:2287)
    java.awt.Component.dispatchEvent(Component.java:4698)
    java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    java.awt.Container.dispatchEventImpl(Container.java:2273)
    java.awt.Window.dispatchEventImpl(Window.java:2719)
    java.awt.Component.dispatchEvent(Component.java:4698)
    java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
    java.awt.EventQueue.access$200(EventQueue.java:103)
    java.awt.EventQueue$3.run(EventQueue.java:694)
    java.awt.EventQueue$3.run(EventQueue.java:692)
    java.security.AccessController.doPrivileged(Native Method)
    java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    java.awt.EventQueue$4.run(EventQueue.java:708)
    java.awt.EventQueue$4.run(EventQueue.java:706)
    java.security.AccessController.doPrivileged(Native Method)
    java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
    java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

    ID: 34, name: Mpg123AudioPlayer_DRIVER_ctrlLoop
    java.lang.Thread.sleep(Native Method)
    java.lang.Thread.sleep(Thread.java:340)
    java.util.concurrent.TimeUnit.sleep(TimeUnit.java:360)
    epis5fcc.audio.mpg.MpgAudioOutputPlayer.ctrlLoop(MpgAudioOutputPlayer.java:169)
    epis5fcc.audio.mpg.MpgAudioOutputPlayer.access$000(MpgAudioOutputPlayer.java:19)
    epis5fcc.audio.mpg.MpgAudioOutputPlayer$1.run(MpgAudioOutputPlayer.java:88)
    java.lang.Thread.run(Thread.java:745)

    ID: 26, name: IOTxUdpAccessLoop_IODispatchAccess
    java.lang.Thread.sleep(Native Method)
    jCommons.comm.io.access.IOUdpAccess.transmitLoop(IOUdpAccess.java:114)
    jCommons.comm.io.access.IOAccessBase$2.run(IOAccessBase.java:50)
    java.lang.Thread.run(Thread.java:745)

    ID: 29, name: MasterLoop_main
    java.lang.Thread.sleep(Native Method)
    jCommons.master.MasterLoop.ctrlLoop(MasterLoop.java:87)
    jCommons.master.MasterLoop.access$000(MasterLoop.java:11)
    jCommons.master.MasterLoop$1.run(MasterLoop.java:58)
    java.lang.Thread.run(Thread.java:745)

    ID: 27, name: IORxSerialPortAccessPollLoop_IOModemAccess
    java.lang.Thread.sleep(Native Method)
    jCommons.comm.io.access.IOSerialPortAccessPoll.reciveLoop(IOSerialPortAccessPoll.java:256)
    jCommons.comm.io.access.IOAccessBase$1.run(IOAccessBase.java:43)
    java.lang.Thread.run(Thread.java:745)

    ID: 31, name: UsbUpdateWatchService_ctrlLoop
    sun.misc.Unsafe.park(Native Method)
    java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
    java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
    java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:489)
    java.util.concurrent.LinkedBlockingDeque.take(LinkedBlockingDeque.java:678)
    sun.nio.fs.AbstractWatchService.take(AbstractWatchService.java:118)
    jCommons.update.usb.UsbUpdateWatchService.ctrlLoop(UsbUpdateWatchService.java:107)
    jCommons.update.usb.UsbUpdateWatchService.access$000(UsbUpdateWatchService.java:25)
    jCommons.update.usb.UsbUpdateWatchService$1.run(UsbUpdateWatchService.java:75)
    java.lang.Thread.run(Thread.java:745)

    ID: 25, name: IORxUdpAccessLoop_IODispatchAccess
    java.net.PlainDatagramSocketImpl.receive0(Native Method)
    java.net.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:145)
    java.net.DatagramSocket.receive(DatagramSocket.java:786)
    jCommons.comm.io.access.IOUdpAccess.reciveLoop(IOUdpAccess.java:175)
    jCommons.comm.io.access.IOAccessBase$1.run(IOAccessBase.java:43)
    java.lang.Thread.run(Thread.java:745)

    ID: 2, name: Reference Handler
    java.lang.Object.wait(Native Method)
    java.lang.Object.wait(Object.java:503)
    java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)

    ID: 30, name: VehicleCtrl_ctrlLoop
    java.lang.Thread.sleep(Native Method)
    epis5fcc.domain.vehicle.control.VehicleCtrl.ctrlLoop(VehicleCtrl.java:74)
    jCommons.comm.protocol.ProtCtrlBase$1.run(ProtCtrlBase.java:24)
    java.lang.Thread.run(Thread.java:745)

    ID: 35, name: Mpg123AudioPlayer_INNER_ctrlLoop
    java.lang.Thread.sleep(Native Method)
    java.lang.Thread.sleep(Thread.java:340)
    java.util.concurrent.TimeUnit.sleep(TimeUnit.java:360)
    epis5fcc.audio.mpg.MpgAudioOutputPlayer.ctrlLoop(MpgAudioOutputPlayer.java:169)
    epis5fcc.audio.mpg.MpgAudioOutputPlayer.access$000(MpgAudioOutputPlayer.java:19)
    epis5fcc.audio.mpg.MpgAudioOutputPlayer$1.run(MpgAudioOutputPlayer.java:88)
    java.lang.Thread.run(Thread.java:745)


    ID: 21, name: IORxSerialPortAccessPollLoop_IOFccAccess
    java.lang.Thread.sleep(Native Method)
    jCommons.comm.io.access.IOSerialPortAccessPoll.reciveLoop(IOSerialPortAccessPoll.java:256)
    jCommons.comm.io.access.IOAccessBase$1.run(IOAccessBase.java:43)
    java.lang.Thread.run(Thread.java:745)

    ID: 7, name: FileWatchdog
    java.lang.Thread.sleep(Native Method)
    org.apache.log4j.helpers.FileWatchdog.run(FileWatchdog.java:104)


    ID: 8, name: Java2D Disposer
    java.lang.Object.wait(Native Method)
    java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
    java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
    sun.java2d.Disposer.run(Disposer.java:145)
    java.lang.Thread.run(Thread.java:745)

    ID: 17, name: com.google.inject.internal.util.$Finalizer
    java.lang.Object.wait(Native Method)
    java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
    java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
    com.google.inject.internal.util.$Finalizer.run(Finalizer.java:114)

    ID: 10, name: AWT-XAWT
    sun.awt.X11.XToolkit.waitForEvents(Native Method)
    sun.awt.X11.XToolkit.run(XToolkit.java:541)
    sun.awt.X11.XToolkit.run(XToolkit.java:505)
    java.lang.Thread.run(Thread.java:745)

    ID: 32, name: Thread-4
    sun.nio.fs.LinuxWatchService.poll(Native Method)
    sun.nio.fs.LinuxWatchService.access$600(LinuxWatchService.java:47)
    sun.nio.fs.LinuxWatchService$Poller.run(LinuxWatchService.java:311)
    java.lang.Thread.run(Thread.java:745)

    ID: 28, name: IOTxSerialPortAccessPollLoop_IOModemAccess
    java.lang.Thread.sleep(Native Method)
    jCommons.comm.io.access.IOSerialPortAccessPoll.transmitLoop(IOSerialPortAccessPoll.java:187)
    jCommons.comm.io.access.IOAccessBase$2.run(IOAccessBase.java:50)
    java.lang.Thread.run(Thread.java:745)

    ID: 14, name: DestroyJavaVM

    ID: 22, name: IOTxSerialPortAccessPollLoop_IOFccAccess
    java.lang.Thread.sleep(Native Method)
    jCommons.comm.io.access.IOSerialPortAccessPoll.transmitLoop(IOSerialPortAccessPoll.java:187)
    jCommons.comm.io.access.IOAccessBase$2.run(IOAccessBase.java:50)
    java.lang.Thread.run(Thread.java:745)

    ID: 19, name: TimerQueue
    sun.misc.Unsafe.park(Native Method)
    java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
    java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082)
    java.util.concurrent.DelayQueue.take(DelayQueue.java:220)
    javax.swing.TimerQueue.run(TimerQueue.java:171)
    java.lang.Thread.run(Thread.java:745)

    ID: 12, name: AWT-Shutdown
    java.lang.Object.wait(Native Method)
    java.lang.Object.wait(Object.java:503)
    sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:296)
    java.lang.Thread.run(Thread.java:745)

    ID: 23, name: IORxUdpAccessLoop_IOCityScrnAccess
    java.net.PlainDatagramSocketImpl.receive0(Native Method)
    java.net.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:145)
    java.net.DatagramSocket.receive(DatagramSocket.java:786)
    jCommons.comm.io.access.IOUdpAccess.reciveLoop(IOUdpAccess.java:175)
    jCommons.comm.io.access.IOAccessBase$1.run(IOAccessBase.java:43)
    java.lang.Thread.run(Thread.java:745)

    ID: 3, name: Finalizer
    java.lang.Object.wait(Native Method)
    java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
    java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
    java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

    ID: 4, name: Signal Dispatcher

    ID: 52, name: pool-3-thread-1
    sun.misc.Unsafe.park(Native Method)
    java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
    java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
    java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    java.lang.Thread.run(Thread.java:745)

    ID: 24, name: IOTxUdpAccessLoop_IOCityScrnAccess
    java.lang.Thread.sleep(Native Method)
    jCommons.comm.io.access.IOUdpAccess.transmitLoop(IOUdpAccess.java:114)
    jCommons.comm.io.access.IOAccessBase$2.run(IOAccessBase.java:50)
    java.lang.Thread.run(Thread.java:745)

    ID: 36, name: RemoteUpdateCtrl_ctrlLoop
    java.lang.Thread.sleep(Native Method)
    epis5fcc.domain.update.remote.RemoteUpdateCtrl.ctrlLoop(RemoteUpdateCtrl.java:94)
    jCommons.comm.protocol.ProtCtrlBase$1.run(ProtCtrlBase.java:24)
    java.lang.Thread.run(Thread.java:745)

    ID: 55, name: Mpg123AudioPlayer_OUTER_ctrlLoop
    java.lang.Thread.sleep(Native Method)
    java.lang.Thread.sleep(Thread.java:340)
    java.util.concurrent.TimeUnit.sleep(TimeUnit.java:360)
    epis5fcc.audio.mpg.MpgAudioOutputPlayer.ctrlLoop(MpgAudioOutputPlayer.java:169)
    epis5fcc.audio.mpg.MpgAudioOutputPlayer.access$000(MpgAudioOutputPlayer.java:19)
    epis5fcc.audio.mpg.MpgAudioOutputPlayer$1.run(MpgAudioOutputPlayer.java:88)
    java.lang.Thread.run(Thread.java:745)

    最佳答案

    这似乎是与GPT和本地计时器同时使用相关的问题。

    在飞思卡尔社区,您可以从澄清的人那里看到one和您的问题以及other相似的更多问题。

    对于分辨率,请应用此patch

    您可以从second post跳到Fresscale的内核3.10.17或kernel.org的3.13.3

    目前,我正在尝试修补程序,以查看是否可以解决类似的问题。

    关于java - Java和Linux操作系统随机挂起24分钟(Linux,arm,Debian,Java 7 ARM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26060209/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com