【问题标题】:Jenkins Java VM error when running a Maven test - Unrecognized VM option 'MaxPermSize-128m'运行 Maven 测试时出现 Jenkins Java VM 错误 - 无法识别的 VM 选项“MaxPermSize-128m”
【发布时间】:2013-07-22 13:30:36
【问题描述】:

问题是,我们将其从 MaxPermSize-128m 更改为 MaxPermSize=128m 但系统不断给我们这个错误: 我们甚至重新启动了 Jenkins。 是缓存了一些东西,还是有多个地方需要更改此设置?

[workspace] $ /usr/lib/jvm/java-6-openjdk-amd64/bin/java -Xmx512m -XX:MaxPermSize-128m -cp /mnt/www/jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-agent-1.3.jar:/mnt/www/jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.1.0/boot/plexus-classworlds-2.4.2.jar org.jvnet.hudson.maven3.agent.Maven3Main /mnt/www/jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.1.0 /var/cache/jenkins/war/WEB-INF/lib/remoting-2.28.jar /mnt/www/jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-1.3.jar 55896
Unrecognized VM option 'MaxPermSize-128m'
Could not create the Java virtual machine.

ERROR: Failed to launch Maven. Exit code = 1

'ps -ef | 的输出grep java' 是:

root      3509     1  0 Jul12 ?        00:07:17 /usr/local/share/elasticsearch/bin/service/exec/elasticsearch-linux-x86-64 /usr/local/share/elasticsearch/bin/service/elasticsearch.conf wrapper.syslog.ident=elasticsearch wrapper.pidfile=/usr/local/share/elasticsearch/bin/service/./elasticsearch.pid wrapper.name=elasticsearch wrapper.displayname=ElasticSearch wrapper.daemonize=TRUE wrapper.statusfile=/usr/local/share/elasticsearch/bin/service/./elasticsearch.status wrapper.java.statusfile=/usr/local/share/elasticsearch/bin/service/./elasticsearch.java.status wrapper.script.version=3.5.14
root      3511  3509  0 Jul12 ?        00:45:11 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java -Delasticsearch-service -Des.path.home=/usr/local/share/elasticsearch -Xss256k -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Djava.awt.headless=true -Xms1024m -Xmx1024m -Djava.library.path=/usr/local/share/elasticsearch/bin/service/lib -classpath /usr/local/share/elasticsearch/bin/service/lib/wrapper.jar:/usr/local/share/elasticsearch/lib/elasticsearch-0.19.11.jar:/usr/local/share/elasticsearch/lib/elasticsearch-0.19.11.jar:/usr/local/share/elasticsearch/lib/jna-3.3.0.jar:/usr/local/share/elasticsearch/lib/log4j-1.2.17.jar:/usr/local/share/elasticsearch/lib/lucene-analyzers-3.6.1.jar:/usr/local/share/elasticsearch/lib/lucene-core-3.6.1.jar:/usr/local/share/elasticsearch/lib/lucene-highlighter-3.6.1.jar:/usr/local/share/elasticsearch/lib/lucene-memory-3.6.1.jar:/usr/local/share/elasticsearch/lib/lucene-queries-3.6.1.jar:/usr/local/share/elasticsearch/lib/snappy-java-1.0.4.1.jar:/usr/local/share/elasticsearch/lib/sigar/sigar-1.6.4.jar -Dwrapper.key=b1QUXxfrVfakmb6w -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.disable_console_input=TRUE -Dwrapper.pid=3509 -Dwrapper.version=3.5.14 -Dwrapper.native_library=wrapper -Dwrapper.service=TRUE -Dwrapper.cpu.timeout=10 -Dwrapper.jvmid=1 org.tanukisoftware.wrapper.WrapperSimpleApp org.elasticsearch.bootstrap.ElasticSearchF
jenkins  20372     1  0 08:17 ?        00:00:00 /usr/bin/daemon --name=jenkins --inherit --env=JENKINS_HOME=/mnt/www/jenkins --output=/var/log/jenkins/jenkins.log --pidfile=/var/run/jenkins/jenkins.pid -- /usr/bin/java -jar /usr/share/jenkins/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=-1
jenkins  20373 20372 23 13:20 ?        00:05:51 /usr/bin/java -jar /usr/share/jenkins/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=-1
root     29403 28220  0 13:45 pts/0    00:00:00 grep --color=auto java

【问题讨论】:

  • 'ps -ef | 的输出是什么? grep java'
  • 去掉 -XX:MaxPermSize-128m 选项
  • @matheszabi - 我们试过了,同样的错误信息。就像我们所做的更改没有被应用或被注意到,或者其他什么。还是应该在其他地方进行此更改?
  • @JennyKowalski 如果你删除它,那么你不应该有 "Unrecognized VM option 'MaxPermSize-128m'" ,
  • @Tarlog 我已经编辑了答案,包括了输出

标签: java maven jenkins jvm


【解决方案1】:

您希望如何将最大值设置为负值?我想你想要

-XX:MaxPermSize=128m

——更新——

好的,你已经解决了这个问题,但构建仍然失败。

查看“工作区清理插件”,如果没有安装,安装并激活。 workspace cleanup plugin 将在启动前从工作区中删除先前构建的证据。奇怪的是配置存储到文件中,然后在启动之前立即从文件中引用。

您可以进入工作区目录并使用 grep 查找命令的“负 128”版本并手动更改它,但使用该插件还可以避免将来出现类似问题。

【讨论】:

  • 正如我所说,我们后来将“-”更改为“=”但系统似乎没有注意到该更改,所以这是主要问题 - 是 Jenkins 缓存数据还是我们需要在多个地方更改此设置
  • 可能。看看清理代理构建区域。 Jenkins 在启动可执行文件之前,通常必须将内容复制到代理(参数、源代码等)区域。
  • 刷新缓存内容后,成功了,谢谢!
猜你喜欢
  • 2018-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
相关资源
最近更新 更多