What should I do if my filestore is missing binaries?

Anand Das
2022-08-25 05:57

A particularly useful user plugin that JFrog provides is the filestoreIntegrity plugin, described in detail here.

This plugin checks both your database and filestore and determines if there are binaries that are present in the database but missing from the filestore and vice versa. The output is a JSON object that contains two lists, one for binaries that are in the database but not in the filestore, titled "missing", and another for binaries that are in the filestore but not the database, titled "extra".

A good example of when to use the plugin is when you start noticing the error "Binary provider has no content for <checksum>" in your logs.

If you have missing binaries, the first thing that you should do is do a thorough check of your file system to ensure that the binaries are completely missing. If you are able to find them, contact Support to get an understanding of why the plugin determined that they were missing.

If you are unable to find them, this means that the binary has gone missing and is not recoverable.

The simplest way to clean the database of the missing binaries is to do a full system export (do not check the Exclude Content or Exclude metadata) boxes and then do a full system import.

You will see errors in the UI indicating that the export failed for the missing binaries. This is normal and the export process will continue while ignoring those binaries.

Once you have seen the message in the logs indicating that the export has completed successfully, do a full system import of the data that was just exported. On import, Artifactory will delete all of its existing content and build it anew from the data it is importing. This data will not contain the missing binaries.