Skip to main content
Code42 Support

Linux real-time file watching errors

Applies to:
  • CrashPlan for Small Business
  • CrashPlan PROe

Overview

Linux performs real-time file watching using the inotify API. Inotify imposes a limit on the number of "watches" that can be in use on a system at any given time. If CrashPlan exceeds inotify's max watch limit, real-time file watching fails to work properly.

Affects

CrashPlan app for Linux

Description

A "watch" corresponds to one watched file or directory. Inotify commonly limits the max watch value to 8192. If CrashPlan watches more files than the max watch limit, real-time file watching fails to work properly. Some or all file changes are not detected until CrashPlan's file verification scan runs.

NOTE: This issue is not related to the issues seen on all platforms surrounding the maximum number of open files allowed by an operating system.

Symptoms

  • Some files selected for backup are immediately backed up when changes are made, while others are not.
  • After screen is locked, you are are unable to sign back into your desktop session.
  • Error messages in service.log specify "Unable to add watch for path [filepath], errno: 28," like the following:
WARNING W2108307534_ScanWrkr com.backup42.jna.inotify.InotifyManager.watch ] Unable to add watch for path /var/www/php/common/gen2.save/ext-lib/Dojo/dojox/highlight, errno: 28

Recommended solution

Step 1: Find the current watch limit

Find the current inotify watch limit by examining the proc file system. In Terminal, run the following:

cat /proc/sys/fs/inotify/max_user_watches

Step 2: Change the watch limit on a running system

To change the value on a running system, use the following command.
In this example, 1048576 is being set as the new value. Adjust this number as appropriate for your system.

echo 1048576 > /proc/sys/fs/inotify/max_user_watches

Step 3: Make the change persist through a restart

The change above will not survive a restart. To make the change permanent, do the following:

  1. Edit /etc/sysctl.conf as root:
    sudo nano /etc/sysctl.conf
  1. Set (or add if it's not present) the "fs.inotify.max_user_watches" parameter. Set this to the desired number of watches:
    fs.inotify.max_user_watches=1048576
  1. Save sysctl.conf and exit.
    If you're using nano, press Control+X, followed by Y, then Enter to save the file.
  2. Either reboot the system or execute the following command:
    sudo sysctl -p /etc/sysctl.conf