Skip to main content

This article applies to Code42 for Enterprise version 5.

Other available versions:

Version 6 | Version 4icon.qnmark.png

Code42 Support

Linux real-time file watching errors

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 the CrashPlan app exceeds inotify's max watch limit, real-time file watching fails to work properly, and some or all file changes are not detected until the CrashPlan app's file verification scan runs. This article describes how to increase the max watch limit to avoid this problem.

Affects

CrashPlan app for Linux

Considerations

Symptoms

  • Some files selected for backup are immediately backed up when changes are made, while others are not.
  • After your screen is locked, you are are unable to sign back in to 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

To change the watch limit value, edit the sysctl.conf file.
In this example, 1048576 is being set as the new value. Adjust this number as appropriate for your system.

  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 parameter 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