Contact me: hankecnc@gmail.com

运行中的状态冻结和 java.lang.OutOfMemoryError #1881

推推 grbl 3年前 (2023-01-29) 333次浏览
关闭
rykellogg 打开了这个问题 2022 年 5 月 8 日 · 13条评论
关闭

运行中的状态冻结和 java.lang.OutOfMemoryError#1881

rykellogg 打开了这个问题 2022 年 5 月 8 日 · 13条评论

注释

运行中的状态冻结和 java.lang.OutOfMemoryError #1881

版本

2.0.11

硬件/固件

GRBL 1.1

发生了什么

连接后系统将运行一分钟左右,然后冻结大部分功能并抛出错误:
java.lang.OutOfMemoryError:无法创建本机线程:可能内存不足或达到进程/资源限制。

如何重现

  1. 打开程序。
  2. 连接到机器(在我的例子中是 x-carve 750)
  3. 通过点动控制器或宏发送多个命令。
  4. 在某些时候,状态不会在之前的命令后返回空闲状态,并且错误图标会出现在右下角。

操作系统

Windows 11 主页

还要别的吗

每次都会发生。
我尝试过的事情:

  • 将java更新到最新版本
  • 将每个链接的内存分配增加到 256 。
  • 重启了好几次。
  • 删除并重新安装新下载的应用程序。

可能值得注意的是 ugsplatform.exe 文件有这个问题。ugsplatform64.exe 在启动后几秒或一分钟内完全崩溃。可疑的是,我这里可能有一个常见的内存分配问题。

运行中的状态冻结和 java.lang.OutOfMemoryError #1881
作者

根据此票证将内存更新为 1024:#1844
尝试关闭每个相同链接的可视化工具。
仍然没有运气,也没有明显的改进。

还尝试在 Win 8 兼容模式下运行,但没有成功。

运行中的状态冻结和 java.lang.OutOfMemoryError #1881
作者

来自系统:
处理器第 11 代 Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz
安装 RAM 16.0 GB(15.8 GB 可用)
系统类型 64 位操作系统,基于 x64 的处理器
版本 Windows 11 家庭
版 21H2
安装on 4/ 24/ 2022
OS build 22000.652
Experience Windows Feature Experience Pack 1000.22000.652.0

来自 UGS
产品版本:Universal Gcode Platform 20220321
Java: 13.0.1; OpenJDK Server VM 13.0.1+9
Runtime:OpenJDK Runtime Environment 13.0.1+9
系统:Windows 10 version 10.0 running on x86;Cp1252;en_US (ugsplatform)
用户目录:C:\Users\rykel.ugsplatform\2.0.11\dev
缓存目录:C:\Users\rykel.ugsplatform\2.0.11\dev\var\cache

运行中的状态冻结和 java.lang.OutOfMemoryError #1881
合作者

您好,我认为此处关于设置 -Xms 的说明是错误的,这将设置初始堆大小。您可能想要的是像这样设置最大堆大小:-J-Xmx1024m

运行中的状态冻结和 java.lang.OutOfMemoryError #1881
作者

我在没有任何改进的情况下执行了该更改。继续筛选,看看我是否有任何奇怪的 PC 配置,如果我发现任何,我会报告。
还有其他想法吗?

运行中的状态冻结和 java.lang.OutOfMemoryError #1881
合作者

现在在每晚构建下提供了一个 64 位版本,您可以尝试:
https ://github.com/winder/Universal-G-Code-Sender#downloads

运行中的状态冻结和 java.lang.OutOfMemoryError #1881
作者

谢谢你。这个周末我有一份工作。我会尝试一下。

运行中的状态冻结和 java.lang.OutOfMemoryError #1881
莫格利 评论了 2022 年 9 月 30 日  

好的,这不是特定于 Windows 的。我认为这是捆绑的 JDK 问题或系统问题。我在 Linux 上遇到了同样的错误,Linux 版本与 13 捆绑在一起。我还应该指出,我的 UI 也完全搞砸了。

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.netbeans.ProxyURLStreamHandlerFactory (file:/home/alewis/apps/ugsplatform-linux/platform/lib/boot.jar) to field java.net.URL.handler
WARNING: Please consider reporting this to the maintainers of org.netbeans.ProxyURLStreamHandlerFactory
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f33e7a0f000, 16384, 0) failed; error='Not enough space' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 16384 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /home/alewis/apps/ugsplatform-linux/bin/hs_err_pid14714.log

整体崩溃信息太大,不知道能不能附上这个问题的文件?
下面是一些运行时信息的摘录:

VM Arguments:
jvm_args: -Djdk.home=/home/mowgli/ugsplatform-linux/jdk/jdk-13.0.1+9-jre -Dnetbeans.dirs=/home/mowgli/ugsplatform-linux/etc:/home/mowgli/ugsplatform-linux/extra:/home/mowgli/ugsplatform-linux/ugsplatform:/home/mowgli/ugsplatform-linux/bin:/home/mowgli/ugsplatform-linux/ide:/home/mowgli/ugsplatform-linux/java:/home/mowgli/ugsplatform-linux/platform: -Dnetbeans.home=/home/mowgli/ugsplatform-linux/platform -Xms64m -Xverify:none -Dsun.java2d.noddraw=true -Dsun.awt.noerasebackground=true -Dnetbeans.indexing.noFileRefresh=true -Dorg.openide.text.big.file.size=20 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/mowgli/.ugsplatform/2.0-SNAPSHOT/dev/var/log/heapdump.hprof 
java_command: org.netbeans.Main --cachedir  --userdir /home/mowgli/.ugsplatform/2.0-SNAPSHOT/dev --branding ugsplatform
java_class_path (initial): /home/mowgli/ugsplatform-linux/platform/lib/boot.jar:/home/mowgli/ugsplatform-linux/platform/lib/org-openide-modules.jar:/home/mowgli/ugsplatform-linux/platform/lib/org-openide-util.jar:/home/mowgli/ugsplatform-linux/platform/lib/org-openide-util-lookup.jar:/home/mowgli/ugsplatform-linux/platform/lib/org-openide-util-ui.jar
Launcher Type: SUN_STANDARD

[Global flags]
     intx CICompilerCount                          = 4                                         {product} {ergonomic}
     uint ConcGCThreads                            = 2                                         {product} {ergonomic}
     uint G1ConcRefinementThreads                  = 8                                         {product} {ergonomic}
   size_t G1HeapRegionSize                         = 1048576                                   {product} {ergonomic}
    uintx GCDrainStackTargetSize                   = 64                                        {product} {ergonomic}
     bool HeapDumpOnOutOfMemoryError               = true                                   {manageable} {command line}
    ccstr HeapDumpPath                             = /home/mowgli/.ugsplatform/2.0-SNAPSHOT/dev/var/log/heapdump.hprof         {manageable} {command line}
   size_t InitialHeapSize                          = 67108864                                  {product} {command line}
   size_t MarkStackSize                            = 4194304                                   {product} {ergonomic}
   size_t MaxHeapSize                              = 8361345024                                {product} {ergonomic}
   size_t MaxNewSize                               = 5016387584                                {product} {ergonomic}
   size_t MinHeapDeltaBytes                        = 1048576                                   {product} {ergonomic}
   size_t MinHeapSize                              = 67108864                                  {product} {command line}
    uintx NonNMethodCodeHeapSize                   = 5836300                                {pd product} {ergonomic}
    uintx NonProfiledCodeHeapSize                  = 122910970                              {pd product} {ergonomic}
    uintx ProfiledCodeHeapSize                     = 122910970                              {pd product} {ergonomic}
    uintx ReservedCodeCacheSize                    = 251658240                              {pd product} {ergonomic}
     bool SegmentedCodeCache                       = true                                      {product} {ergonomic}
   size_t SoftMaxHeapSize                          = 8361345024                             {manageable} {ergonomic}
     bool UseCompressedClassPointers               = true                                 {lp64_product} {ergonomic}
     bool UseCompressedOops                        = true                                 {lp64_product} {ergonomic}
     bool UseG1GC                                  = true                                      {product} {ergonomic}

Logging:
Log output configuration:
 #0: stdout all=warning uptime,level,tags
 #1: stderr all=off uptime,level,tags

Environment Variables:
PATH=/home/mowgli/.local/bin:/home/mowgli/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/mowgli/.local/share/JetBrains/Toolbox/scripts:/home/mowgli/.dotnet/tools:/home/mowgli/.platformio/penv/bin:/home/mowgli/.platformio/penv/bin:/home/mowgli/.local/share/JetBrains/Toolbox/scripts:/home/mowgli/.platformio/penv/bin:/home/mowgli/.platformio/penv/bin
USERNAME=mowgli
SHELL=/bin/bash
DISPLAY=:1

Signal Handlers:
SIGSEGV: [libjvm.so+0xfe1a10], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGBUS: [libjvm.so+0xfe1a10], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGFPE: [libjvm.so+0xfe1a10], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGPIPE: SIG_IGN, sa_mask[0]=00000000000010000000000000000000, sa_flags=SA_RESTART
SIGXFSZ: [libjvm.so+0xc7cd40], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGILL: [libjvm.so+0xfe1a10], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGUSR2: [libjvm.so+0xc7cbe0], sa_mask[0]=00000000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO
SIGHUP: [libjvm.so+0xc7d1e0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGINT: SIG_IGN, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGTERM: [libjvm.so+0xc7d1e0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGQUIT: [libjvm.so+0xc7d1e0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO


---------------  S Y S T E M  ---------------

OS:Fedora release 35 (Thirty Five)
uname:Linux 5.19.10-100.fc35.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Sep 20 15:42:37 UTC 2022 x86_64
libc:glibc 2.34 NPTL 2.34 
rlimit: STACK 8192k, CORE infinity, NPROC 127406, NOFILE 524288, AS infinity, DATA infinity, FSIZE infinity
load average:0.72 0.54 0.24

/proc/meminfo:
MemTotal:       32659952 kB
MemFree:        11483976 kB
MemAvailable:   26259156 kB
Buffers:            5448 kB
Cached:         16051012 kB
SwapCached:            0 kB
Active:          5119228 kB
Inactive:       12262548 kB
Active(anon):       1876 kB
Inactive(anon):  2725120 kB
Active(file):    5117352 kB
Inactive(file):  9537428 kB
Unevictable:     1376532 kB
Mlocked:            5500 kB
SwapTotal:      78785528 kB
SwapFree:       78785528 kB
Zswap:                 0 kB
Zswapped:              0 kB
Dirty:              6496 kB
Writeback:             0 kB
AnonPages:       2701944 kB
Mapped:           580356 kB
Shmem:           1396696 kB
KReclaimable:     590124 kB
Slab:            1391256 kB
SReclaimable:     590124 kB
SUnreclaim:       801132 kB
KernelStack:      463572 kB
PageTables:       150008 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    95115504 kB
Committed_AS:   234885036 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      587536 kB
VmallocChunk:          0 kB
Percpu:            10240 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:      364148 kB
DirectMap2M:    14106624 kB
DirectMap1G:    19922944 kB

/proc/sys/kernel/threads-max (system-wide limit on the number of threads):
254812

/proc/sys/vm/max_map_count (maximum number of memory map areas a process may have):
65530

/proc/sys/kernel/pid_max (system-wide limit on number of process identifiers):
4194304

Steal ticks since vm start: 0
Steal ticks percentage since vm start:  0.000

CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx, fma
CPU Model and flags from /proc/cpuinfo:
model name	: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d arch_capabilities

Memory: 4k page, physical 32659952k(11483976k free), swap 78785528k(78785528k free)

vm_info: OpenJDK 64-Bit Server VM (13.0.1+9) for linux-amd64 JRE (13.0.1+9), built on Oct 26 2019 10:07:46 by "jenkins" with gcc 7.3.1 20180303 (Red Hat 7.3.1-5)

END.

捆绑的JDK版本:
ugsplatform-linux/jdk/jdk-13.0.1+9-jre/

系统Java版本:
/usr/lib/jvm/java-11-openjdk-11.0.16.1.1-1.fc35.x86_64/

运行中的状态冻结和 java.lang.OutOfMemoryError #1881

hs_err_pid14714.log
这是完整的崩溃文件,应该很有趣。

运行中的状态冻结和 java.lang.OutOfMemoryError #1881
合作者

感谢您的详细报告@mrmowgli. Windows 的问题在于它使用的是 32 位二进制文​​件。32 位环境只允许分配 2Gb,为此 JVM 默认使用最多 1/4,在加载大型模型时会有点低。

如果我能正确解读日志,您的 JVM 实例配置为使用 ~8Gb 最大堆空间 (MaxHeapSize = 8361345024),总共 31Gb。所以这应该足以运行 UGS,除非你正在加载一个巨大的 Gcode 文件或存在某种内存泄漏。

我可以看到大约 4000 个anon_inode:i915.gem我猜与显卡相关的引用。出于好奇,您可以从以下位置发布最新的日志文件吗:~/.ugsplatform/2.X/dev/var/log/messages.log

我们收到了不兼容的图形驱动程序导致程序在日志中出现错误的报告。( https://groups.google.com/g/universal-gcode-sender/c/pEz1tAZBrH4 )

运行中的状态冻结和 java.lang.OutOfMemoryError #1881

啊,有趣的时光,好吧,看起来至少有一个实际的例外。这是一台双显卡笔记本电脑,也许它正在尝试使用 Intel 驱动程序,但 GL 运行在 Nvidia 卡上。唔。不确定如何从命令行强制执行此操作。

        at java.desktop/javax.swing.JComponent.paint(Unknown Source)
        at java.desktop/javax.swing.JComponent.paintToOffscreen(Unknown Source)
        at java.desktop/javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
        at java.desktop/javax.swing.RepaintManager.paint(Unknown Source)
        at java.desktop/javax.swing.JComponent._paintImmediately(Unknown Source)
        at java.desktop/javax.swing.JComponent.paintImmediately(Unknown Source)
        at java.desktop/javax.swing.RepaintManager$4.run(Unknown Source)
INFO [null]: Last record repeated again.
        at java.base/java.security.AccessController.doPrivileged(Unknown Source)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
        at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
INFO [null]: Last record repeated again.
        at com.jogamp.opengl.util.AWTAnimatorImpl$1.run(AWTAnimatorImpl.java:170)
        at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
INFO [null]: Last record repeated again.
        at java.base/java.security.AccessController.doPrivileged(Unknown Source)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
        at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
        at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
INFO [null]: Last record repeated again.
        at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Caused by: com.jogamp.opengl.GLException: Profile GL4bc is not available on X11GraphicsDevice[type .x11, connection :1, unitID 0, handle 0x7f6965169b50, owner true, ResourceToolkitLock[obj 0x3c3a183f, isOwner true, <35ac425, 658f9d2b>[count 1, qsz 0, owner <AWT-EventQueue-0>]]], but: [GLProfile[GLES1/GLES1.hw], GLProfile[GLES2/GLES3.hw], GLProfile[GL2ES1/GLES1.hw], GLProfile[GL4ES3/GL4.hw], GLProfile[GL2ES2/GL4.hw], GLProfile[GL4/GL4.hw], GLProfile[GLES3/GLES3.hw], GLProfile[GL4/GL4.hw], GLProfile[GL3/GL4.hw], GLProfile[GL2GL3/GL4.hw]]
        at com.jogamp.opengl.GLProfile.get(GLProfile.java:991)
        at jogamp.opengl.GLContextImpl.verifyInstance(GLContextImpl.java:1471)
        at jogamp.opengl.GLContextImpl.setGLFunctionAvailability(GLContextImpl.java:1942)
        at jogamp.opengl.x11.glx.X11GLXContext.createImpl(X11GLXContext.java:395)
        at jogamp.opengl.GLContextImpl.makeCurrentWithinLock(GLContextImpl.java:765)
        at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:648)
        at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:586)
        at com.jogamp.opengl.awt.GLJPanel$OffscreenBackend.initialize(GLJPanel.java:1731)
        ... 57 more
INFO [com.willwinder.universalgcodesender.utils.SettingsFactory]: Saving settings.
INFO [org.netbeans.ui.indexing]: Indexing started, time from last indexing 0 ms.
INFO [org.netbeans.ui.indexing]: Indexing finished, indexing took 4 ms.
运行中的状态冻结和 java.lang.OutOfMemoryError #1881

好的,所以我将 Nvidia 设置为主要驱动程序,一切似乎都正常,内存或线程没有问题。也许这应该在文档的某处提到?

运行中的状态冻结和 java.lang.OutOfMemoryError #1881
合作者

@mrmowgli非常好,请随意写几行你是如何在这里解决它的:
https ://github.com/winder/Universal-G-Code-Sender/wiki/Troubleshooting-Overview

运行中的状态冻结和 java.lang.OutOfMemoryError #1881
合作者

关闭,因为这已针对 64 位版本的 Windows 修复。在我们更新 JOGL 库之后,从 2.0.13 开始,Linux 现在可以更好地工作。