Comments (4)
It appears that the 7.15 version of zpaq fails when a block of >64MB is sent to the backend on compression. Forcing a limit of 64MB appears to fix the problem. The issue was with compression, but remains unclear.
Taking decompressed data from thread 6
Taking decompressed data from thread 7
Taking decompressed data from thread 8
100% 1363.42 / 1363.42 MB
Closing stream at 156,800,471, want to seek to 156,800,471
Average DeCompression Speed: 20.044MB/s
MD5: 134a2942867678fa1c3d4284c8b738b2
[OK] - 1,429,647,360 bytes
Total time: 00:01:08.62
Some additional testing is required.
from lrzip-next.
See new branch zpaq_fix to try out the update. After a review period these changes will be merged. Issue will be reported upstream.
from lrzip-next.
Additional testing has revealed that this statement:
It appears that the 7.15 version of zpaq fails when a block of >64MB is sent to the backend on compression. Forcing a limit of 64MB appears to fix the problem. The issue was with compression, but remains unclear.
Is not entirely correct. The issue seems to be that if the block sent to the ZPAQ backend is greater than than the block size specified, ZPAQ may fail. This does not happen for smaller files that are less than ZPAQ block size. Thus. if the ZPAQ block size is specified as 9, which is 512MB, any block sent must be less than that. There is some code in the code in libzpaq.cpp
which defines block size as 1MB << bs - 4096
.:
void compress(Reader* in, Writer* out, const char* method,
const char* filename, const char* comment, bool dosha1) {
// Get block size
int bs=4;
if (method && method[0] && method[1]>='0' && method[1]<='9') {
bs=method[1]-'0';
if (method[2]>='0' && method[2]<='9') bs=bs*10+method[2]-'0';
if (bs>11) bs=11;
}
bs=(0x100000<<bs)-4096;
Limiting the block size sent to the ZPAQ backend to 1MB << bs - 4096 seems to keep compression from getting corrupted. Testing is ongoing. Higher block sizes seems to cause intense swap space use.
from lrzip-next.
Looks good. Commits pushed to master and lzma-21.03beta.
from lrzip-next.
Related Issues (20)
- ZPAQ Compression issue when lrizip-next block size > zpaq block size HOT 3
- :lady_beetle: linker warning: missing .note.GNU-stack section implies executable stack HOT 2
- Found typo in viewing compression info on a lrz file HOT 1
- :lady_beetle: lrzip-next segfaults when STDIN + -o filename used. HOT 2
- :lady_beetle: [Certain files compressed with ZPAQ fail to compress successfully] HOT 5
- :lady_beetle: [Slower than lrzip, same arguments, stuck at 99%] HOT 4
- :lady_beetle: [Broken Pipe at 55% on L9] HOT 21
- Huanglei3 reported a bug in lrzip that is not duplicated here HOT 3
- Read zero page memory HOT 1
- :bulb: Have lzma backend respect -p# option HOT 9
- :bulb: possible precomp support HOT 2
- :lady_beetle: Decompress/Test/Info fails with --bzip2, gzip, lzo
- :lady_beetle: Losing on ISO/Zip on rare cases HOT 11
- From lrzip: lrzip 0.631 occasionally hangs forever HOT 5
- Enhance lzo compression by using all 5 methods HOT 2
- :lady_beetle: double free detected in tcache 2 HOT 1
- :lady_beetle: zstd compression fails when all blocks are incompressible HOT 1
- :lady_beetle: fake_mremap does not compile HOT 3
- From lrzip: Suggestion to support encrypted Stdin/Stdout when password provided on command line #251 HOT 1
- :bulb: Allow PROCESSORS to be set in lrzip.conf file HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lrzip-next.