luben / zstd-jni

JNI binding for Zstd
Other
854 stars 168 forks source link

when i compress big file,happen steam closed , GZIP have no problem #229

Closed uniqueZt closed 2 years ago

uniqueZt commented 2 years ago

com.esotericsoftware.kryo.KryoException: java.io.IOException: Stream Closed at com.esotericsoftware.kryo.io.OutputChunked.flush(OutputChunked.java:61) at com.esotericsoftware.kryo.io.Output.require(Output.java:164) at com.esotericsoftware.kryo.io.Output.writeBytes(Output.java:251) at com.esotericsoftware.kryo.io.Output.write(Output.java:219) at java.base/java.io.DataOutputStream.write(DataOutputStream.java:107) at com.esotericsoftware.kryo.io.Output.flush(Output.java:185) at com.esotericsoftware.kryo.io.OutputChunked.flush(OutputChunked.java:59) at com.esotericsoftware.kryo.io.Output.require(Output.java:164) at com.esotericsoftware.kryo.io.Output.writeBytes(Output.java:251) at com.esotericsoftware.kryo.io.Output.write(Output.java:219) at java.base/java.io.DataOutputStream.write(DataOutputStream.java:107) at com.esotericsoftware.kryo.io.Output.flush(Output.java:185) at com.esotericsoftware.kryo.io.OutputChunked.flush(OutputChunked.java:59) at com.esotericsoftware.kryo.io.Output.require(Output.java:164) at com.esotericsoftware.kryo.io.Output.writeBytes(Output.java:251) at com.esotericsoftware.kryo.io.Output.write(Output.java:219) at java.base/java.io.DataOutputStream.write(DataOutputStream.java:107) at com.github.luben.zstd.ZstdOutputStreamNoFinalizer.write(ZstdOutputStreamNoFinalizer.java:211) at com.github.luben.zstd.ZstdOutputStream.write(ZstdOutputStream.java:166) at com.test.ZstdOutputStream.write(GooseFSZstdOutputStream.java:31) at org.apache.commons.compress.utils.CountingOutputStream.write(CountingOutputStream.java:48) at org.apache.commons.compress.utils.FixedLengthBlockOutputStream$BufferAtATimeOutputChannel.write(FixedLengthBlockOutputStream.java:244) at org.apache.commons.compress.utils.FixedLengthBlockOutputStream.writeBlock(FixedLengthBlockOutputStream.java:92) at org.apache.commons.compress.utils.FixedLengthBlockOutputStream.maybeFlush(FixedLengthBlockOutputStream.java:86) at org.apache.commons.compress.utils.FixedLengthBlockOutputStream.write(FixedLengthBlockOutputStream.java:122) at org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.write(TarArchiveOutputStream.java:462) at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1128) at org.apache.commons.io.IOUtils.copy(IOUtils.java:849) at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1104) at org.apache.commons.io.IOUtils.copy(IOUtils.java:825) Caused by: java.io.IOException: Stream Closed at java.base/java.io.FileOutputStream.write(Native Method) at java.base/java.io.FileOutputStream.write(FileOutputStream.java:318) at java.base/java.io.DataOutputStream.write(DataOutputStream.java:88) at java.base/java.io.DataOutputStream.write(DataOutputStream.java:88) at com.esotericsoftware.kryo.io.OutputChunked.writeChunkSize(OutputChunked.java:75) at com.esotericsoftware.kryo.io.OutputChunked.flush(OutputChunked.java:58) ... 46 more

uniqueZt commented 2 years ago

small file have no problem!

luben commented 2 years ago

I don't think the ZstdOutputStream is closing the stream - this is an exception thrown when it tries to write the output. The Zstd exception has message "StreamClosed" (without space).

Do you have some smaller code sample that I can use to reproduce the issue?