“Jenkins Selenium插件初始化失败”

huangapple 未分类评论79阅读模式
英文:

Jenkins Selenium Plugin Failed to Initialize

问题

我已经安装了Jenkins Selenium 插件,但在启动时它无法初始化。

Jenkins 启动日志

> java.net.SocketTimeoutException: 接受超时 	at
> java.base/java.net.PlainSocketImpl.socketAccept(Native Method) 	at
> java.base/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:458)
> 	at java.base/java.net.ServerSocket.implAccept(ServerSocket.java:565)
> 	at java.base/java.net.ServerSocket.accept(ServerSocket.java:533) 	at
> hudson.slaves.Channels.newJVM(Channels.java:227) 	at
> hudson.plugins.selenium.process.SeleniumProcessUtils.createSeleniumGridVM(SeleniumProcessUtils.java:59)
> 	at hudson.plugins.selenium.PluginImpl.startHub(PluginImpl.java:176)
> 	at
> hudson.plugins.selenium.PluginImpl.postInitialize(PluginImpl.java:136)
> 	at hudson.PluginManager$2$1$2.run(PluginManager.java:575) 	at
> org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169)
> 	at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296) 	at
> jenkins.model.Jenkins$5.runTask(Jenkins.java:1131) 	at
> org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214) 	at
> org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) 	at
> jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
> 	at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> 	at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> 	at java.base/java.lang.Thread.run(Thread.java:834)

然后

> 初始化完成于 2020年8月14日 下午2:50:17 警告
> jenkins.model.Jenkins  对于计算机监听器类
> hudson.plugins.selenium.ComputerListenerImpl,在Jenkins主节点上的onOnline()方法中出现异常
> java.lang.NullPointerException 	at
> hudson.plugins.selenium.PluginImpl.startSeleniumNode(PluginImpl.java:458)
> 	at
> hudson.plugins.selenium.ComputerListenerImpl.onOnline(ComputerListenerImpl.java:30)

它似乎在'hudson.slaves.Channels.newJVM(Channels.java:227)' 处失败。

我尝试过的事项 -

  • 禁用防火墙
  • 重新安装插件
  • 将调试级别设置为ALL以帮助调试
  • 更改 Jenkins 位置中的 Jenkins URL

从节点可以无问题地连接到主节点。

  • Java - 11.0.8+10-post-Ubuntu-0ubuntu118.04.1
  • Jenkins - 2.252
  • 操作系统 - Linux (ubuntu 18.04) Azure 虚拟机
  • Selenium 插件 3.141.59

可能是什么原因导致了这个问题?

英文:

I have installed the Jenkins Selenium Plugin but on startup it fails to initialize.

Jenkins Startup Logs

> java.net.SocketTimeoutException: Accept timed out 	at
> java.base/java.net.PlainSocketImpl.socketAccept(Native Method) 	at
> java.base/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:458)
> 	at java.base/java.net.ServerSocket.implAccept(ServerSocket.java:565)
> 	at java.base/java.net.ServerSocket.accept(ServerSocket.java:533) 	at
> hudson.slaves.Channels.newJVM(Channels.java:227) 	at
> hudson.plugins.selenium.process.SeleniumProcessUtils.createSeleniumGridVM(SeleniumProcessUtils.java:59)
> 	at hudson.plugins.selenium.PluginImpl.startHub(PluginImpl.java:176)
> 	at
> hudson.plugins.selenium.PluginImpl.postInitialize(PluginImpl.java:136)
> 	at hudson.PluginManager$2$1$2.run(PluginManager.java:575) 	at
> org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169)
> 	at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296) 	at
> jenkins.model.Jenkins$5.runTask(Jenkins.java:1131) 	at
> org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214) 	at
> org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) 	at
> jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
> 	at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> 	at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> 	at java.base/java.lang.Thread.run(Thread.java:834)

then

> Completed initialization Aug 14, 2020 2:50:17 PM WARNING
> jenkins.model.Jenkins  Exception in onOnline() for the computer
> listener class hudson.plugins.selenium.ComputerListenerImpl on the
> Jenkins master node java.lang.NullPointerException 	at
> hudson.plugins.selenium.PluginImpl.startSeleniumNode(PluginImpl.java:458)
> 	at
> hudson.plugins.selenium.ComputerListenerImpl.onOnline(ComputerListenerImpl.java:30)

It seems to be failing at 'hudson.slaves.Channels.newJVM(Channels.java:227)'

Things I have tried -

  • Disabling the firewall
  • Reinstalling the plugin
  • Setting debug level to ALL to help debug
  • Changing Jenkins URL in Jenkins Location

Slave nodes can connect to master with no issues.

  • Java - 11.0.8+10-post-Ubuntu-0ubuntu118.04.1
  • Jenkins - 2.252
  • OS - Linux (ubuntu 18.04) Azure VM
  • Selenium Plugin 3.141.59

What could be causing this?

答案1

得分: 0

我遇到了类似的问题,我认为主要原因是插件与Java 11不兼容。还有另一个日志文件 /var/lib/jenkins/selenium.log,在jenkins启动后你可以看到以下输出:

 /usr/lib/jvm/java-11-openjdk-amd64/bin/java -cp /var/cache/jenkins/war/WEB-INF/lib/remoting-4.5.jar hudson.remoting.Launcher -cp /var/lib/jenkins/plugins/selenium/WEB-INF/lib/selenium-server-standalone-3.141.59.jar:/var/lib/jenkins/plugins/selenium/WEB-INF/lib/htmlunit-driver-standalone-2.33.3.jar -connectTo localhost:37677
警告:发生了非法反射访问操作
警告:hudson.remoting.Launcher (file:/var/cache/jenkins/war/WEB-INF/lib/remoting-4.5.jar) 对 java.net.URLClassLoader.addURL(java.net.URL) 方法的非法反射访问
警告:请考虑将此问题报告给 hudson.remoting.Launcher 的维护人员
警告:使用 --illegal-access=warn 以启用进一步非法反射访问操作的警告
警告:所有非法访问操作将在将来的版本中被拒绝
主线程中的异常 "main" java.lang.IllegalArgumentException: 对象不是声明类的实例
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at hudson.remoting.Launcher.addClasspath(Launcher.java:154)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at io.jenkins.remoting.shaded.org.kohsuke.args4j.spi.MethodSetter.addValue(MethodSetter.java:47)
	at io.jenkins.remoting.shaded.org.kohsuke.args4j.spi.StringOptionHandler.parseArguments(StringOptionHandler.java:19)
	at io.jenkins.remoting.shaded.org.kohsuke.args4j.CmdLineParser.parseArgument(CmdLineParser.java:520)
	at hudson.remoting.Launcher.main(Launcher.java:293)

如果你使用Java 8运行jenkins,该插件将工作。

英文:

I had a similar issue, I think the main reason is the the plugin is not compatible with java 11. There is also another logfile /var/lib/jenkins/selenium.log where you can see the following output after jenkins was started:

 /usr/lib/jvm/java-11-openjdk-amd64/bin/java -cp /var/cache/jenkins/war/WEB-INF/lib/remoting-4.5.jar hudson.remoting.Launcher -cp /var/lib/jenkins/plugins/selenium/WEB-INF/lib/selenium-server-standalone-3.141.59.jar:/var/lib/jenkins/plugins/selenium/WEB-INF/lib/htmlunit-driver-standalone-2.33.3.jar -connectTo localhost:37677
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by hudson.remoting.Launcher (file:/var/cache/jenkins/war/WEB-INF/lib/remoting-4.5.jar) to method java.net.URLClassLoader.addURL(java.net.URL)
WARNING: Please consider reporting this to the maintainers of hudson.remoting.Launcher
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
Exception in thread "main" java.lang.IllegalArgumentException: object is not an instance of declaring class
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at hudson.remoting.Launcher.addClasspath(Launcher.java:154)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at io.jenkins.remoting.shaded.org.kohsuke.args4j.spi.MethodSetter.addValue(MethodSetter.java:47)
	at io.jenkins.remoting.shaded.org.kohsuke.args4j.spi.StringOptionHandler.parseArguments(StringOptionHandler.java:19)
	at io.jenkins.remoting.shaded.org.kohsuke.args4j.CmdLineParser.parseArgument(CmdLineParser.java:520)
	at hudson.remoting.Launcher.main(Launcher.java:293)

If you run jenkins with java 8 the plugin will work.

huangapple
  • 本文由 发表于 2020年8月14日 23:32:37
  • 转载请务必保留本文链接:https://java.coder-hub.com/63415790.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定