Fixing CrashPlan Upgrade to 4.8.2

I recently got a E-Mail from Crashplan indicating that my NAS is not backing up data for more then 3 days. Since I don't check all the other backup state e-mails, this definitely got my attention

An they weren't wrong. My local installation did not connect to the NAS anymore and the java process was also missing in the Synology's task manager.

Staring the package in the "Package Canter" didn't work, but at least the log was somehow interesting

I 05/02/17 04:30PM Downloading a new version of CrashPlan.  
I 05/02/17 04:57PM Download of upgrade complete - version 1436674800482.  
I 05/02/17 04:57PM Installing upgrade - version 1436674800482  
I 05/02/17 04:57PM Upgrade installed - version 1436674800482  
I 05/02/17 04:58PM CrashPlan stopped, version 4.8.0, GUID XXXXXXXXXXXXXXXXX  
I 05/06/17 10:16AM Synology extracting upgrade from /var/packages/CrashPlan/target/upgrade/1436674800482_4.jar  

According to the discussion on the package owners blog post, this seems to be an issue with a missing cpio.

Martin on April 26, 2017 at 11:57:
Seems to have been a lack of cpio again.

  1. copied cpio to /usr/bin
  2. Uninstalled
  3. Reinstalled
  4. Restarted
  5. Connected client and logged in

Now running 4.8.2, synchronising to CP Central and my laptop is backing up to the NAS.

See: https://pcloadletter.co.uk/2012/01/30/crashplan-syno-package/comment-page-47/#comment-149189.

Based on the additional comments on the mentioned blog-post and my own experience I followed the following steps to get it back to business again.

1. Before you start

Good News! The following process takes approximately 15 mins and your backup is back in business. Your backup-sets get restored. However, you need the following information while reinstalling CrashPlan

  • Account Name / E-Mail
  • Account Password
  • Data Encryption Key if any
  • Manual Max Memory Adjustments if any (see /volume1/@appstore/CrashPlan/syno_package.vars)

2. Copy the missing cpio

I have no idea what this binary is used for, but it seems there is a huge history about problems with this file in combination with Synology and Crashplan. I just copied the file from the package to my /etc/bin-Folder.

sudo cp /volume1/@appstore/CrashPlan/bin/cpio /bin/cpio

2. Uninstall via Package Manager

Just use the UI and uninstall the package. I did not experience any issues here and the process completed with "This package has been successfully uninstalled."

3. Install Again

Keep using the Package Manager to reinstall the Crashplan Package
* Accept the Licence Agreement * Select the "Java Runtime Environment Selection" as you did on the previous installation * Uncheck: Run after installation!

5. Trigger the Upgrade

When you first start the package, it will find an update that should now be able to be applied to your system. To keep you updated during this process open a SSH connection an use the command tail -f /var/packages/CrashPlan/target/log/service.log.0 to show the current log in your console.
After you're set-up, run the package in the "Package Manager"

You should be able to see a couple of messages regarding the upgrade

HISTORY:: Downloading a new version of CrashPlan.  
Saved ServiceModel to disk, 5240 bytes.  
DownloadManager stopped.  
DOWNLOAD:: Transferring patch at /linux/upgrade/crashplan/1436674800482_4.jar; DownloadManager[patchDir = upgrade, patchFiles = [1436674800482 (2015-07-12T04:20:00:482+0000)], patchProblem = false]  
FT::Client-tid=794090999109596468, guid=42; START. moduleName=installs, srcPath=/linux/upgrade/crashplan/1436674800482_4.jar, dstPath=upgrade/1436674800482_4.jar, dataWaitTime=900000, options=[]  
Saved ServiceModel to disk, 5240 bytes.  
WRITE app.log in 146ms  
FT::Client-tid=794090999109596468, guid=42; 30sec, DONE. overallRateInSec=1.6MB/s , srcPath=/linux/upgrade/crashplan/1436674800482_4.jar, dstPath=upgrade/1436674800482_4.jar, result=FileTransferResult[794090999109596468, 30sec, numDirs=0, numFiles=1, numCompleted=1, numSkipped=0, numFailed=0, numSrcBytes=47079117, Counter[count = 47079117, rate = 1961788.59, rollingRate = 2047968.70], avgRate=2047968.7031059316]  
HISTORY:: Download of upgrade complete - version 1436674800482.  
MD5 checksum matches, continuing with patch  
Saved ServiceModel to disk, 5152 bytes.  
HISTORY:: Installing upgrade - version 1436674800482  
Validating patch before applying; upgradeName=1436674800482_4.jar, patchVersion=1436674800482, patchBuildNumber=4, localVersion=1435813200480, localBuildNumber=331  
Upgrade into 1436674800482_4.1494062750157  
Upgrade extracting 1436674800482_4.jar  
Upgrade reading upgrade/1436674800482_4.1494062750157/upgrade.properties  
Upgrade properties: [{JRE_X64_DOWNLOAD_URL=http://download.code42.com/installs/proserver/jre/jre-linux-x64-1.8.0_72.tgz},{keep=2},{JRE_I586_DOWNLOAD_URL=http://download.code42.com/installs/proserver/jre/jre-linux-i586-1.8.0_72.tgz},{command=/bin/bash upgrade.sh}]  
Upgrade running command, cmd=/bin/bash upgrade.sh  
EXEC:: executeCommand(). cmd=/bin/bash upgrade.sh, dir=upgrade/1436674800482_4.1494062750157  
SystemCommandRunner run as async so handles have leaked. This is ok if shutdown pending.  
Upgrade process has been started successfully, cmd=/bin/bash upgrade.sh, milliseconds=3  
Upgrade complete  
HISTORY:: Upgrade installed - version 1436674800482  
Waiting 60 seconds for upgrade script to shutdown service...  
WRITE app.log in 111ms  
Stopping to run a patch.  
HISTORY:: CrashPlan stopped, version 4.8.0, GUID 656452255095980289  

After approx. 2 minutes the log should show one last message "Service stopped normally"

[05.06.17 11:26:57.974 INFO  Thread-1       com.backup42.service.CPService] Service stopped normally

6. Start Service

Now let's start the package again and the "Failed to run the package service" will be shown. Wait for approx. 1 min to start over again, the log-window will again start issuing the latest log messages. One message should be something like

READY!    Unauthorized    Listening ports are PEER=4242/4247, CPD=4243, HTTP=4244  

7. Setup UI again

Which means we now have to get the ui-token again from /var/lib/crashplan/.ui_info. You can do this on the console by typing cat /var/lib/crashplan/.ui_info.

Copy the token to your local UI installation as it is described in "Step 1: Copy the authentication token" on https://support.code42.com/CrashPlan/4/Configuring/UsingCrashPlanOnAHeadless_Computer

8. Activate

When firing up the UI you will need to login again using your CrashPlan credentials and all Backup sets configurations where restored. Don't enter you Data Key if you need to adjust the Data Deduclibation and Memory Limits.

9. Check Data Deduplication Settings

Open the file /volume1/@appstore/CrashPlan/conf/my.service.xml and navigate to the <backupSets>-Node. Every backup set should still have the <dataDeDupAutoMaxFileSizeForWan>1</dataDeDupAutoMaxFileSizeForWan> entry.

10. Check MaxMemory limit

Validate of the file /volume1/@appstore/CrashPlan/syno_package.vars still contains your settings before the upgrade. The example below shows 1.5GB of RAM

#uncomment to expand Java max heap size beyond prescribed value (will survive upgrades)
#you probably only want more than the recommended 1024M if you're backing up extremely large volumes of files
USR_MAX_HEAP=1536M

MANIFEST_PATH_SET=True