Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

not a valid Cucumber report! String length (20051119) exceeds the maximum length (20000000) #449

Open
waynemd opened this issue Oct 5, 2023 · 8 comments
Labels

Comments

@waynemd
Copy link

waynemd commented Oct 5, 2023

Jenkins and plugins versions report

Jenkins Version 2.414.2
cucumber report plugin 5.8.0

What Operating System are you using (both controller, and any agents involved in the problem)?

controller on linux and agent on mac

Reproduction steps

The problem is showing on the latest version of cucumber report plugin 5.8.0(https://plugins.jenkins.io/cucumber-reports).
Rolling back to last version 5.7.6 solves the problem.

Expected Results

should create a valid cucumber report

Actual Results

fails with this message in log:

net.masterthought.cucumber.ValidationException: File '.../cucumber-html-reports/.cache/parallel/_.json' is not a valid Cucumber report! String length (20051119) exceeds the maximum length (20000000) (through reference chain: java.lang.Object[][0]->net.masterthought.cucumber.json.Feature["elements"]->java.lang.Object[][0]->net.masterthought.cucumber.json.Element["after"]->java.lang.Object[][0]->net.masterthought.cucumber.json.Hook["embeddings"]->java.lang.Object[][0])
  at net.masterthought.cucumber.ReportParser.parseForFeature(ReportParser.java:102)
  at net.masterthought.cucumber.ReportParser.parseJsonFiles(ReportParser.java:69)
  at net.masterthought.cucumber.ReportBuilder.generateReports(ReportBuilder.java:97)
  at net.masterthought.jenkins.CucumberReportPublisher.generateReport(CucumberReportPublisher.java:563)
  at net.masterthought.jenkins.CucumberReportPublisher.perform(CucumberReportPublisher.java:434)
  at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
  at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80)
  at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
  at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818)
  at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:767)
  at hudson.model.Build$BuildExecution.post2(Build.java:179)
  at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:711)
  at hudson.model.Run.execute(Run.java:1925)
  at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
  at hudson.model.ResourceController.execute(ResourceController.java:101)
  at hudson.model.Executor.run(Executor.java:442)
Caused by: com.fasterxml.jackson.core.exc.StreamConstraintsException: String length (20051119) exceeds the maximum length (20000000)
  at com.fasterxml.jackson.core.StreamReadConstraints.validateStringLength(StreamReadConstraints.java:324)
  at com.fasterxml.jackson.core.util.ReadConstrainedTextBuffer.validateStringLength(ReadConstrainedTextBuffer.java:27)
  at com.fasterxml.jackson.core.util.TextBuffer.finishCurrentSegment(TextBuffer.java:939)
  at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._finishString2(ReaderBasedJsonParser.java:2240)
  at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._finishString(ReaderBasedJsonParser.java:2206)
  at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.getText(ReaderBasedJsonParser.java:323)
  at com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer._deserializeContainerNoRecursion(JsonNodeDeserializer.java:572)
  at com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:100)
  at com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:25)
  at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)
  at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:4801)
  at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:3084)
  at net.masterthought.cucumber.json.deserializers.CucumberJsonDeserializer.deserialize(CucumberJsonDeserializer.java:25)
  at net.masterthought.cucumber.json.deserializers.EmbeddingDeserializer.deserialize(EmbeddingDeserializer.java:22)
  at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:216)
  at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:26)
  at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:138)
  at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
  at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
  at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:216)
  at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:26)
  at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:138)
  at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
  at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
  at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:216)
  at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:26)
  at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:138)
  at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
  at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
  at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:216)
  at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:26)
  at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)
  at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4825)
  at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3785)
  at net.masterthought.cucumber.ReportParser.parseForFeature(ReportParser.java:90)
  ... 15 more

Anything else?

No response

@waynemd waynemd added the bug label Oct 5, 2023
@waynemd
Copy link
Author

waynemd commented Oct 6, 2023

related to FasterXML/jackson-core#1014

@damianszczepanik
Copy link
Member

Should be fixed with 1f42c4505112d42e78f523749e7672e705a19b04 so check recent version of the plugin which collects 2.15 FasterXML/jackson-core#1018

@felipecrs
Copy link

@damianszczepanik I am still facing this issue with Cucumber Reports 5.8.0 and Jackson 2.15.3-366.vfe8d1fa_f8c87:

net.masterthought.cucumber.ValidationException: File '/var/jenkins_home/jobs/build/builds/2522/cucumber-html-reports/.cache/cucumber-html-reports/Some.features.getFeature.json' is not a valid Cucumber report! String length (20054016) exceeds the maximum length (20000000) (through reference chain: java.lang.Object[][0]->net.masterthought.cucumber.json.Feature["elements"]->java.lang.Object[][11]->net.masterthought.cucumber.json.Element["steps"]->java.lang.Object[][17]->net.masterthought.cucumber.json.Step["doc_string"]->net.masterthought.cucumber.json.DocString["value"])
at net.masterthought.cucumber.ReportParser.parseForFeature(ReportParser.java:102)
	at net.masterthought.cucumber.ReportParser.parseJsonFiles(ReportParser.java:69)
	at net.masterthought.cucumber.ReportBuilder.generateReports(ReportBuilder.java:97)
	at net.masterthought.jenkins.CucumberReportPublisher.generateReport(CucumberReportPublisher.java:563)
	at net.masterthought.jenkins.CucumberReportPublisher.perform(CucumberReportPublisher.java:434)
	at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
	at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:101)
	at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:71)
	at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	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:829)
Caused by: com.fasterxml.jackson.core.exc.StreamConstraintsException: String length (20054016) exceeds the maximum length (20000000)
	at com.fasterxml.jackson.core.StreamReadConstraints.validateStringLength(StreamReadConstraints.java:324)
	at com.fasterxml.jackson.core.util.ReadConstrainedTextBuffer.validateStringLength(ReadConstrainedTextBuffer.java:27)
	at com.fasterxml.jackson.core.util.TextBuffer.finishCurrentSegment(TextBuffer.java:939)
	at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._finishString2(ReaderBasedJsonParser.java:2240)
	at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._finishString(ReaderBasedJsonParser.java:2206)
	at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.getText(ReaderBasedJsonParser.java:323)
	at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:42)
	at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)
	at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:138)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
	at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:138)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
	at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:216)
	at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:26)
	at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:138)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
	at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:216)
	at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:26)
	at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:138)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
	at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:216)
	at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:26)
	at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)
	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4825)
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3785)
	at net.masterthought.cucumber.ReportParser.parseForFeature(ReportParser.java:90)
	... 13 more

@damianszczepanik
Copy link
Member

Suggest to pass this problem to fasterxml

@felipecrs
Copy link

Hm... But I read in some places that this size/length is already made configurable by Jackson. I am wondering if it isn't a matter of just passing in a bigger size from the cucumber reports plugin when calling Jackson.

@felipecrs
Copy link

@damianszczepanik
Copy link
Member

BTW, what makes your report so big, what element?

@waynemd
Copy link
Author

waynemd commented Nov 16, 2023

usually, it is the big video record attachment to the report

lucascz37 added a commit to lucascz37/cucumber-reports-plugin that referenced this issue Dec 5, 2023
lucascz37 added a commit to lucascz37/cucumber-reports-plugin that referenced this issue Dec 5, 2023
lucascz37 added a commit to lucascz37/cucumber-reports-plugin that referenced this issue Dec 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants