当前位置: 首页 > 知识库问答 >
问题:

JVM应该已经退出,但没有退出

姜育
2023-03-14

在非gui模式下使用JMeter执行脚本和远程测试时,我会收到错误消息,如何解决该问题

summary =      0 in 00:00:00 = ******/s Avg:     0 Min: 9223372036854775807 Max:
 -9223372036854775808 Err:     0 (0.00%)
Tidying up remote @ Sun Jan 07 21:00:11 EST 2018 (1515376811888)
... end of run
The JVM should have exitted but did not.
The following non-daemon threads are still running (DestroyJavaVM is OK):
Thread[Thread-5,5,main], stackTrace:java.net.DualStackPlainSocketImpl#accept0
java.net.DualStackPlainSocketImpl#socketAccept at line:131
java.net.AbstractPlainSocketImpl#accept at line:409
java.net.PlainSocketImpl#accept at line:199
java.net.ServerSocket#implAccept at line:545
java.net.ServerSocket#accept at line:513
bsh.util.Sessiond#run at line:71
java.lang.Thread#run at line:748

Thread[DestroyJavaVM,5,main], stackTrace:
Thread[Thread-3,5,main], stackTrace:java.net.DualStackPlainSocketImpl#accept0
java.net.DualStackPlainSocketImpl#socketAccept at line:131
java.net.AbstractPlainSocketImpl#accept at line:409
java.net.PlainSocketImpl#accept at line:199
java.net.ServerSocket#implAccept at line:545
java.net.ServerSocket#accept at line:513
bsh.util.Httpd#run at line:70
java.lang.Thread#run at line:748

共有3个答案

甄霖
2023-03-14

我现在也遇到了同样的问题(我使用的是jmeter的4.0版),解决方案是在jmeter上禁用beanshell服务器。属性

只要评论一下beanshell就行了。服务器文件jmeter中的端口=9000。属性

芮祺
2023-03-14

似乎您有自定义代码或某个插件无法按照此根堆栈跟踪正确处理退出:

bsh。util。Httpd在生产线70处运行

因此,请检查此脚本或报告其错误。

慕璞
2023-03-14

异常来自守护进程线程,如下所述:

JMeter将退出它启动的所有非守护进程线程,但可能仍会保留一些非守护进程线程;这将阻止JVM退出。为了检测这种情况,JMeter在退出之前启动一个新的守护进程线程。此守护进程线程等待一小段时间;如果它从等待中返回,那么JVM显然无法退出,线程会打印一条消息说明原因。

从异常详细信息来看,您似乎有一些套接字连接。这些可以是HTTP采样器,其他一些打开套接字或自定义脚本的采样器。默认情况下,守护进程线程等待2秒,因此如果任何采样器上的超时时间更长,则可能是守护进程只需要等待更长的时间(或者您需要缩短超时时间)。

所以:

>

jmeter.exit.check.pause=...

例如,如果采样器配置为等待30秒。,将此值设置为32秒。

如果它没有帮助,很可能是底层库中存在一些错误。在这种情况下,你不能真正解决它,但是你可以使用一个相当残酷的变通方法:

如果属性为jmeterengine。停止失败。系统exit设置为true(默认值为false),然后JMeter将调用系统。如果无法停止所有线程,则退出(1)。通常这是不必要的。

因此,将以下属性设置为true,如下所述:

jmeterengine.stopfail.system.exit=true

正如help所说,通常没有必要,但是如果线程真的卡住了,就没有太多选择了。

 类似资料:
  • 在非gui模式下使用Jmeter 3.3进行分布式测试的过程中,我得到的错误是,如何修复此问题: 我在主机器和从机器上使用相同版本的JMeter和JDK。 JVM应该已经退出,但没有退出。以下非守护进程线程仍在运行(DestroyJavaVM正常):线程[main,5,main],

  • 我们正在运行一个性能测试脚本。它执行并产生结果,但之后它只是挂起(无限等待),显示JVM应该已经退出,但没有退出 完整执行日志- 操作系统- java版本- jmeter版本-5.3 感谢您的指导!

  • 简单的代码,但仍然不能弄清楚哪里出了问题,它说模块pygame没有成员退出,退出

  • 所以我最近为java开发人员安装了eclipse。这一个安装后,我尝试启动eclipse,但它只是这样说 任何人都知道如何修复我安装了JDK14.0.4,我安装了最新的java,因为它说没有更新。 我自己试着对它做一些研究,有人说,以确保您的java版本与eclipse版本相同,当我测试时,我认为我有32位的java,但我有一台64位的计算机,我安装了64位的eclipse。我重新安装了java,

  • java已启动但返回退出代码=-805306369 C:\windows\system32\javaw.exe-jar C:\program files\java\eclipse-jee-helios-sr2-win32-x86_64\eclipse\plugins\org.eclipse.equinox.launcher_1.11.1.r36x_v20101122_1400.jar

  • 我使用以下命令在Ubuntu14.04上安装了Java Open JRE和JDK; 当我试图启动Eclipse时,下面的错误不断出现。 我的日食。ini文件就像 请帮我解决这个问题,因为我已经尝试了一些解决方案,但它仍然不断出现。java版本如下 java版本“1.7.0_181”OpenJDK运行时环境(IcedTea 2.6.14)(7u181-2.6.14-0ubuntu0.2)OpenJD