animetosho / ParPar

High performance PAR2 create client for NodeJS
195 stars 21 forks source link

Error while running #14

Closed IcePee closed 6 years ago

IcePee commented 6 years ago

~/compile/ParPar/bin/parpar.js -r 75% -s 10M -c "Set 2" -o set2 * Multiply method used: XOR JIT (128 bit), 4 threads Generating 99.1 GiB recovery data (10148 slices) from 132.12 GiB of data ~/compile/ParPar/lib/par2.js:266 if(this._processStarted) throw new Error('Cannot reset recovery buffers whilst processing'); ^

Error: Cannot reset recovery buffers whilst processing at PAR2Chunked.bufferedClear (~/compile/ParPar/lib/par2.js:266:34) at PAR2Chunked.setChunkSize (~/compile/ParPar/lib/par2.js:970:8) at PAR2Chunked.setRecoverySlices (~/compile/ParPar/lib/par2.js:904:9) at PAR2Gen.freeMemory (~/compile/ParPar/lib/par2gen.js:602:18) at ~/compile/ParPar/lib/par2gen.js:907:9 at /usr/share/javascript/async/async.js:680:28 at ~/compile/ParPar/lib/par2gen.js:865:19 at /usr/share/javascript/async/async.js:680:28 at /usr/share/javascript/async/async.js:254:17 at /usr/share/javascript/async/async.js:151:21

animetosho commented 6 years ago

Thanks for reporting the issue.

I'll take a look into this in more detail a bit later, but if you're able to edit code, would you be able to try again after the following edit?

In lib/par2gen.js (should be line 907), replace:
self.freeMemory();
with:
if(!err) self.freeMemory();

If you re-run it after that, I expect you'll get an error, but probably a different one.

Thanks!

IcePee commented 6 years ago

I've gotten to the bottom of the problem. It looks like one of the input files in the set were corrupt. Well, the FS was reporting the corruption. Once I removed it, it seems to have fixed it.

animetosho commented 6 years ago

ParPar seems to not be handling errors during processing properly (i.e. it just falls over with the stack trace in your initial report), which is something I'll need to improve.

Thanks for letting me know the issue, and glad it's now sorted!