Decompress FIles: Parallel Extration throws error

Hi,

I noticed that when extracting archives in parallel the followign error is thrown in the try-catch:

"_error_stacktrace" (STRING: java.io.IOException: Corrupted TAR archive.
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:1480)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.<init>(TarArchiveEntry.java:534)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:431)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:396)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:49)
	at org.knime.filehandling.utility.nodes.decompress.Decompressor.decompressArchive(Decompressor.java:288)
	at org.knime.filehandling.utility.nodes.decompress.Decompressor.decompress(Decompressor.java:146)
	at org.knime.filehandling.utility.nodes.decompress.DecompressNodeModel.execute(DecompressNodeModel.java:118)
	at org.knime.core.node.NodeModel.executeModel(NodeModel.java:605)
	at org.knime.core.node.Node.invokeFullyNodeModelExecute(Node.java:1331)
	at org.knime.core.node.Node.execute(Node.java:1038)
	at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:618)
	at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:98)
	at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:201)
	at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:120)
	at org.knime.core.util.ThreadUtils$RunnableWithContextImpl.runWithContext(ThreadUtils.java:369)
	at org.knime.core.util.ThreadUtils$RunnableWithContext.run(ThreadUtils.java:223)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:143)
	at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:277)
Caused by: java.lang.IllegalArgumentException: Invalid byte 108 at offset 0 in 'lns:xsi=' len=8
	at org.apache.commons.compress.archivers.tar.TarUtils.parseOctal(TarUtils.java:516)
	at org.apache.commons.compress.archivers.tar.TarUtils.parseOctalOrBinary(TarUtils.java:540)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseOctalOrBinary(TarArchiveEntry.java:1436)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeaderUnwrapped(TarArchiveEntry.java:1492)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:1478)
	... 20 more
)	java.io.IOException: Corrupted TAR archive.
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:1480)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.<init>(TarArchiveEntry.java:534)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:431)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:396)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:49)
	at org.knime.filehandling.utility.nodes.decompress.Decompressor.decompressArchive(Decompressor.java:288)
	at org.knime.filehandling.utility.nodes.decompress.Decompressor.decompress(Decompressor.java:146)
	at org.knime.filehandling.utility.nodes.decompress.DecompressNodeModel.execute(DecompressNodeModel.java:118)
	at org.knime.core.node.NodeModel.executeModel(NodeModel.java:605)
	at org.knime.core.node.Node.invokeFullyNodeModelExecute(Node.java:1331)
	at org.knime.core.node.Node.execute(Node.java:1038)
	at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:618)
	at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:98)
	at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:201)
	at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:120)
	at org.knime.core.util.ThreadUtils$RunnableWithContextImpl.runWithContext(ThreadUtils.java:369)
	at org.knime.core.util.ThreadUtils$RunnableWithContext.run(ThreadUtils.java:223)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:143)
	at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:277)
Caused by: java.lang.IllegalArgumentException: Invalid byte 108 at offset 0 in 'lns:xsi=' len=8
	at org.apache.commons.compress.archivers.tar.TarUtils.parseOctal(TarUtils.java:516)
	at org.apache.commons.compress.archivers.tar.TarUtils.parseOctalOrBinary(TarUtils.java:540)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseOctalOrBinary(TarArchiveEntry.java:1436)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeaderUnwrapped(TarArchiveEntry.java:1492)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:1478)
	... 20 more

"_error_details" (STRING: Corrupted TAR archive.)	Corrupted TAR archive.
"_error_reason" (STRING: Corrupted TAR archive.)	Corrupted TAR archive.
"_error_node" (STRING: Decompress Files)	Decompress Files
"_error_caught" (INTEGER: 1)	1
"FailingNodeStackTrace" (STRING: java.io.IOException: Corrupted TAR archive.
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:1480)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.<init>(TarArchiveEntry.java:534)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:431)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:396)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:49)
	at org.knime.filehandling.utility.nodes.decompress.Decompressor.decompressArchive(Decompressor.java:288)
	at org.knime.filehandling.utility.nodes.decompress.Decompressor.decompress(Decompressor.java:146)
	at org.knime.filehandling.utility.nodes.decompress.DecompressNodeModel.execute(DecompressNodeModel.java:118)
	at org.knime.core.node.NodeModel.executeModel(NodeModel.java:605)
	at org.knime.core.node.Node.invokeFullyNodeModelExecute(Node.java:1331)
	at org.knime.core.node.Node.execute(Node.java:1038)
	at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:618)
	at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:98)
	at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:201)
	at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:120)
	at org.knime.core.util.ThreadUtils$RunnableWithContextImpl.runWithContext(ThreadUtils.java:369)
	at org.knime.core.util.ThreadUtils$RunnableWithContext.run(ThreadUtils.java:223)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:143)
	at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:277)
Caused by: java.lang.IllegalArgumentException: Invalid byte 108 at offset 0 in 'lns:xsi=' len=8
	at org.apache.commons.compress.archivers.tar.TarUtils.parseOctal(TarUtils.java:516)
	at org.apache.commons.compress.archivers.tar.TarUtils.parseOctalOrBinary(TarUtils.java:540)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseOctalOrBinary(TarArchiveEntry.java:1436)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeaderUnwrapped(TarArchiveEntry.java:1492)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:1478)
	... 20 more
)	java.io.IOException: Corrupted TAR archive.
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:1480)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.<init>(TarArchiveEntry.java:534)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:431)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:396)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:49)
	at org.knime.filehandling.utility.nodes.decompress.Decompressor.decompressArchive(Decompressor.java:288)
	at org.knime.filehandling.utility.nodes.decompress.Decompressor.decompress(Decompressor.java:146)
	at org.knime.filehandling.utility.nodes.decompress.DecompressNodeModel.execute(DecompressNodeModel.java:118)
	at org.knime.core.node.NodeModel.executeModel(NodeModel.java:605)
	at org.knime.core.node.Node.invokeFullyNodeModelExecute(Node.java:1331)
	at org.knime.core.node.Node.execute(Node.java:1038)
	at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:618)
	at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:98)
	at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:201)
	at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:120)
	at org.knime.core.util.ThreadUtils$RunnableWithContextImpl.runWithContext(ThreadUtils.java:369)
	at org.knime.core.util.ThreadUtils$RunnableWithContext.run(ThreadUtils.java:223)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:143)
	at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:277)
Caused by: java.lang.IllegalArgumentException: Invalid byte 108 at offset 0 in 'lns:xsi=' len=8
	at org.apache.commons.compress.archivers.tar.TarUtils.parseOctal(TarUtils.java:516)
	at org.apache.commons.compress.archivers.tar.TarUtils.parseOctalOrBinary(TarUtils.java:540)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseOctalOrBinary(TarArchiveEntry.java:1436)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeaderUnwrapped(TarArchiveEntry.java:1492)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:1478)
	... 20 more

"FailingNodeDetails" (STRING: Corrupted TAR archive.)	Corrupted TAR archive.
"FailingNodeMessage" (STRING: Corrupted TAR archive.)	Corrupted TAR archive.
"FailingNode" (STRING: Decompress Files)	Decompress Files

It failed i.e. in 2011-05-31.tar.gz, part of 2011-05.tar.gz, but testing both archives showed no errors:

Here is the recording:

Here the stack trace:

2026-02-26 07:19:05,614 : ERROR : KNIME-Worker-68-Decompress Files 3:2433:0:2460:0:2465:2541 :  : Node : Decompress Files : 3:2433:0:2460:0:2465:2541 : Execution failed in Try-Catch block: Corrupted TAR archive.
java.io.IOException: Corrupted TAR archive.
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:1480)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.<init>(TarArchiveEntry.java:534)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:431)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:396)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:49)
	at org.knime.filehandling.utility.nodes.decompress.Decompressor.decompressArchive(Decompressor.java:288)
	at org.knime.filehandling.utility.nodes.decompress.Decompressor.decompress(Decompressor.java:146)
	at org.knime.filehandling.utility.nodes.decompress.DecompressNodeModel.execute(DecompressNodeModel.java:118)
	at org.knime.core.node.NodeModel.executeModel(NodeModel.java:605)
	at org.knime.core.node.Node.invokeFullyNodeModelExecute(Node.java:1331)
	at org.knime.core.node.Node.execute(Node.java:1038)
	at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:618)
	at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:98)
	at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:201)
	at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:120)
	at org.knime.core.util.ThreadUtils$RunnableWithContextImpl.runWithContext(ThreadUtils.java:369)
	at org.knime.core.util.ThreadUtils$RunnableWithContext.run(ThreadUtils.java:223)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:143)
	at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:277)
Caused by: java.lang.IllegalArgumentException: Invalid byte 86 at offset 8 in '00000155V10{NUL}' len=12
	at org.apache.commons.compress.archivers.tar.TarUtils.parseOctal(TarUtils.java:516)
	at org.apache.commons.compress.archivers.tar.TarUtils.parseOctalOrBinary(TarUtils.java:540)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeaderUnwrapped(TarArchiveEntry.java:1496)
	at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:1478)
	... 20 more
2026-02-26 07:19:05,698 : ERROR : KNIME-Worker-70-Decompress Files 3:2433:0:2460:0:2465:2519 :  : Node : Decompress Files : 3:2433:0:2460:0:2465:2519 : Execution failed in Try-Catch block: Gzip-compressed data is corrupt (CRC32 error)
java.io.IOException: Gzip-compressed data is corrupt (CRC32 error)
	at org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream.read(GzipCompressorInputStream.java:353)
	at java.base/java.io.BufferedInputStream.fill(Unknown Source)
	at java.base/java.io.BufferedInputStream.read1(Unknown Source)
	at java.base/java.io.BufferedInputStream.read(Unknown Source)
	at org.apache.commons.io.IOUtils.read(IOUtils.java:1958)
	at org.apache.commons.io.IOUtils.read(IOUtils.java:1934)
	at org.apache.commons.compress.utils.IOUtils.readFully(IOUtils.java:205)
	at org.apache.commons.compress.utils.IOUtils.readFully(IOUtils.java:185)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.readRecord(TarArchiveInputStream.java:696)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.tryToConsumeSecondEOFRecord(TarArchiveInputStream.java:869)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getRecord(TarArchiveInputStream.java:510)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:422)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:396)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:49)
	at org.knime.filehandling.utility.nodes.decompress.Decompressor.decompressArchive(Decompressor.java:288)
	at org.knime.filehandling.utility.nodes.decompress.Decompressor.decompress(Decompressor.java:146)
	at org.knime.filehandling.utility.nodes.decompress.DecompressNodeModel.execute(DecompressNodeModel.java:118)
	at org.knime.core.node.NodeModel.executeModel(NodeModel.java:605)
	at org.knime.core.node.Node.invokeFullyNodeModelExecute(Node.java:1331)
	at org.knime.core.node.Node.execute(Node.java:1038)
	at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:618)
	at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:98)
	at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:201)
	at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:120)
	at org.knime.core.util.ThreadUtils$RunnableWithContextImpl.runWithContext(ThreadUtils.java:369)
	at org.knime.core.util.ThreadUtils$RunnableWithContext.run(ThreadUtils.java:223)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:143)
	at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:277)

I tested all archives manually for double verification and they are all valid. Only when extracting them using the Parallel Chunk the Errors are thrown.

Best,
Mike