Bamboo scheduled backups fail with java.io.IOException - not a file
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Problem
When logging into Bamboo, you see a banner saying "Bamboo failed to run the backup on DATE. See the logs for further details."
The following appears in the atlassian-bamboo
.log
2016-10-14 21:08:24,604 ERROR [scheduler_Worker-1] [ScheduledBackupJob] java.io.IOException: <artifact file path> (not a file)
Diagnosis
Environment
- Scheduled artifact backup enabled
Diagnostic Steps
To rule out the issue being file corruption, you can run the following to see if the files are valid:
jar -tf <filename>
file <filename>
Cause
When configuring scheduled backups, Bamboo requires the configuration of a "Backup file date pattern" to differentiate between backup files. That said, this field accepts any pattern letters per https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html so it is possible to create naming conflicts. For example, if you define a simple pattern such as "Day name in week" (pattern letter 'E'), Bamboo will attempt to create a backup file with a duplicate filename (in one week).
Workaround
Prevent the file naming conflict:
Option A:
Change the naming pattern of backup files in Administration >> Scheduled backups
Reference: https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
Option B:
Move the backup files out of bamboo backup directory to another location before the next scheduled backup.