由于JETTY异常StaticException:未汇总内容,Jenkins Extent Report上未显示图像



我在一台CentOS机器上配置了一个Jenkins,我的工作是构建一个java硒项目,并使用HTML Publisher Jenkins插件输出带有屏幕截图的扩展报告。当通过Jenkins打开报告时,图像显示为已损坏,并出现404未找到错误。

我打开了Jetty日志,因为Jenkins standalone被分配到Jetty实例中,它显示了以下日志:

consumeAll AsyncContentProducer@5b67d321[r=ErrorContent [org.eclipse.jetty.util.StaticException: Unconsumed content],t=ErrorContent [org.eclipse.jetty.util.StaticException: Unconsumed content],i=null,error=false,c=HttpChannelOverHttp@4816e6fe{s=HttpChannelState@656c99cb{s=IDLE rs=COMPLETED os=COMPLETED is=IDLE awp=false se=false i=false al=0},r=4,c=true/true,a=IDLE,uri=http://10.10.50.67:8080/var/lib/jenkins/workspace/SecOps%20Automation/Reports/extentReport_10-24_11:29/ResultsUrlVoid1833.jpg,age=9}]
org.eclipse.jetty.util.StaticException: Unconsumed content
at org.eclipse.jetty.server.AsyncContentProducer.consumeAll(AsyncContentProducer.java:187)
at org.eclipse.jetty.server.BlockingContentProducer.consumeAll(BlockingContentProducer.java:93)
at org.eclipse.jetty.server.HttpInput.consumeAll(HttpInput.java:179)
at org.eclipse.jetty.server.HttpConnection.onCompleted(HttpConnection.java:455)
at org.eclipse.jetty.server.HttpChannel.onCompleted(HttpChannel.java:968)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:485)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:319)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:412)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:381)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:268)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:138)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:407)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:894)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1038)
at java.base/java.lang.Thread.run(Thread.java:829)

请注意,URI URI=http://10.10.50.67:8080/var/lib/jenkins/workspace/SecOps%20Automation/Reports/extentReport_10-24_11:29/结果UrlVoid1833.jpg是正确的,当我在CentOs机器上直接转到这条路径时,图像确实存在。

有人能帮忙吗?

我已经禁用了Jenkins内容安全策略来启用html上的所有css和内容,这应该是我和Jetty 一起缺少的配置问题

这个"未消耗的内容";消息是DEBUG/TRACE消息,指示存在违反HTTP/1.1持久连接规则的情况。

根据您的stacktrace,发生的情况是Jenkins上的某些内容正在读取请求正文内容,但尚未完全读取所有内容,将一些内容留在网络缓冲区中。

这违反了持久连接规则,并在交换完成后导致连接关闭。

这个stacktrace不会影响您下载图像的能力,因为这是交换的另一半,与这个stackrace无关。

这种情况经常发生,因此它是DEBUG/TRACE级别的消息。你的问题在其他地方。我建议联系詹金斯社区的一个监控地点,并开始与他们一起排除故障。

https://www.jenkins.io/participate/connect/