Code42 decided to terminate their "CrashPlan for Home" service. This means that after the shutdown date of October 22, 2018, CrashPlan will delete your backup on their servers, which is to be expected, but much more annoyingly, you will no longer be able to restore CrashPlan backups that you stored locally. Effectively, Code42 is reaching into your computer to break your backups for you.
PlanC is an open source project to enable restore from existing CrashPlan Home backups to be performed.
However, when attempting to restore I received an error:
MacBook-Pro:CrashPlanHomeRecovery daniel$ ./plan-c-osx/plan-c --key 07B... --archive ./sg2015/642033544161964565/ --dest ./recovered/ --filename "J:/..." restore
Caching block indexes in memory...
libc++abi.dylib: terminating with uncaught exception of type std::runtime_error: Failed to open block manifest for reading: ./sg2015/642033544161964565/cpbf0000000000017581637/cpbmf
Abort trap: 6
The file referenced in the error appears to read OK, but the reported error provided no more information.
I reported this GitHub Issue #9.
I then made a minor change to the error reporting GitHub Pull Request #10 to work out that the error was a Too many open files
error:
MacBook-Pro:CrashPlanHomeRecovery daniel$ ./plan-c-osx/plan-c --key 07B... --archive ./sg2015/642033544161964565/ --dest ./recovered/ --filename "J:/..." restore
Caching block indexes in memory...
libc++abi.dylib: terminating with uncaught exception of type std::runtime_error: Failed to open block manifest (../../sg2015/642033544161964565/cpbf0000000000017581637/cpbmf) for reading: Too many open files
Abort trap: 6
Just a note that if my pull request (only just submitted) is not merged (and a new binary released) you will need to build from my fork.
Which I then fixed with a ulimit change:
MacBook-Pro:PlanC daniel$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 256
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 1418
virtual memory (kbytes, -v) unlimited
by increasing number of open files for the shell to 1024
:
MacBook-Pro:PlanC daniel$ ulimit -S -n 1024
Recording this answer in case others have problems - backups are important after all :)