[BUILD-553] IO gzip error when using Docker 19.03 Created: 04/Oct/21 Updated: 02/Dec/21 Resolved: 02/Dec/21 |
|
| Status: | Closed |
| Project: | Build |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Neutral |
| Reporter: | Maxime Michel | Assignee: | Maxime Michel |
| Resolution: | Obsolete | Votes: | 0 |
| Labels: | artt | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Template: |
|
| Acceptance criteria: |
Empty
|
| Description |
|
Docker 5:19.03.0~3-0~ubuntu-bionic leads to the following issue with tests that download something: [ERROR] JcrToolsUITest.exporterIssuesSuccessNotificationWithDefaultBasePath » IO gzip ... [ERROR] LogToolsAppUITest.downloadMultipleLogFiles » IO gzip finished without exhausti... [ERROR] LogToolsAppUITest.downloadSingleLogFile » IO gzip finished without exhausting ... [ERROR] SeleniumProfileTestingUITest.testDefaultFirefoxDownloadSettings » IO gzip fini... cf. https://jenkins.magnolia-cms.com/job/platform/job/ce/job/master/711/console This needs to be investigated so we can bump the Docker version. |
| Comments |
| Comment by Maxime Michel [ 07/Oct/21 ] |
|
Today I tried to disable the gzip, cache, range & contentType filters, and still saw the same result. I think the problem is on Vaadin's side. |
| Comment by Maxime Michel [ 07/Oct/21 ] |
|
When I say Vaadin, I mean that Vaadin is probably sending some malformed GZIP. But it is also an OkHttp default to accept GZIP and decompress it. And this is where the error happens. And so it is where I'm trying to disable it, as we have little leverage over Vaadin, and there is no actual error when the action is performed by a regular user. |
| Comment by Maxime Michel [ 07/Oct/21 ] |
|
Actually, the tests don't even run. They all start with assumeFalse(isExecutedInVirtualMachine()), which evaluates to false in all cases since 2018. Those tests haven't run in ages, as the recordings show, and can be deleted. I still don't explain why a GZIP error happens with the Docker upgrade, however. |
| Comment by Maxime Michel [ 08/Oct/21 ] |
|
It gets even weirder: https://git.magnolia-cms.com/projects/INTERNAL/repos/core-jenkins-agents/pull-requests/3/overview?commentId=86867 However, I am closing the ticket, as only obsolete and quarantined tests are affected, and the Docker upgrade can carry on. |
| Comment by Maxime Michel [ 08/Oct/21 ] |
|
After I upgraded the instances, the exception happened once more, this time on a test that wasn't quarantined. I reverted the upgrade. |
| Comment by Maxime Michel [ 22/Oct/21 ] |
|
Full stacktrace thanks to mduerig's help on configuring Failsafe to stop trimming them: [ERROR] it.info.magnolia.eeintegrationtests.uitest.LicenseUITest.verifyThatEnteringAValidLicenseWorked Time elapsed: 59.382 s <<< ERROR! java.io.IOException: gzip finished without exhausting source at org.testcontainers.shaded.okio.GzipSource.read(GzipSource.java:100) at org.testcontainers.shaded.okio.RealBufferedSource$1.read(RealBufferedSource.java:447) at java.io.FilterInputStream.read(FilterInputStream.java:133) at org.apache.commons.compress.utils.IOUtils.readFully(IOUtils.java:197) at org.apache.commons.compress.utils.IOUtils.readFully(IOUtils.java:171) at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.readRecord(TarArchiveInputStream.java:560) at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getRecord(TarArchiveInputStream.java:532) at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:370) at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:671) at info.magnolia.test.vnc.SeleniumNodeVncSidekickContainer.streamRecording(SeleniumNodeVncSidekickContainer.java:171) at info.magnolia.test.vnc.SeleniumNodeVncSidekickContainer.saveRecordingToFile(SeleniumNodeVncSidekickContainer.java:180) at it.info.magnolia.integrationtests.rules.SeleniumNodesVncSidekickRule.saveAndStop(SeleniumNodesVncSidekickRule.java:116) at it.info.magnolia.integrationtests.rules.SeleniumNodesVncSidekickRule.failed(SeleniumNodesVncSidekickRule.java:99) at org.testcontainers.containers.FailureDetectingExternalResource$1.evaluate(FailureDetectingExternalResource.java:34) at org.testcontainers.containers.FailureDetectingExternalResource$1.evaluate(FailureDetectingExternalResource.java:30) at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:54) at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61) at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61) at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61) at org.junit.rules.RunRules.evaluate(RunRules.java:20) at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at org.junit.runner.JUnitCore.run(JUnitCore.java:115) at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:43) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Iterator.forEachRemaining(Iterator.java:116) at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:82) at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:73) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:248) at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$5(DefaultLauncher.java:211) at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:226) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:199) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:132) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.lambda$execute$1(JUnitPlatformProvider.java:199) at java.util.Iterator.forEachRemaining(Iterator.java:116) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:193) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:154) at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:120) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:428) at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:562) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:548) |
| Comment by Maxime Michel [ 02/Dec/21 ] |
|
This will get indirectly solved by |