Restore manifest is failing on rollback on multiple hosts
- Dominant language
- Ruby
- Stars
- 901
- Forks
- 262
- PR merge metrics
- No merged PRs in 30d
Description
I have an issue during rollback on multiple host setup with restoring assets manifest. Currently restoring manifest works like this. It checks manifest name in `assets_manifest_backup` dir on one host and then uses this name to check again ([assets.rake#L93](https://github.com/capistrano/rails/blob/master/lib/capistrano/tasks/assets.rake#L93)) on each host if this manifest exists before copying archived manifest to `public/assets` dir.
This strategy fails when each host have different manifest (I know it's very unusual) and throws `Capistrano::FileNotFound` error ([assets.rake#L98](https://github.com/capistrano/rails/blob/master/lib/capistrano/tasks/assets.rake#L98)).
I propose we should detect manifest name per host.
### System configuration
Ruby 2.4.1
capistrano (3.8.2)
capistrano-bundler (1.2.0)
capistrano-passenger (0.2.0)
capistrano-rails (1.2.3)
rails (4.2.9)
rails-deprecated_sanitizer (1.0.3)
rails-dom-testing (1.0.8)
rails-html-sanitizer (1.0.3)
rake (12.0.0)
rspec-rails (3.6.0)
rvm1-capistrano3 (1.4.0)
sass-rails (5.0.6)
sequel-rails (0.9.17)
sprockets-rails (3.2.0)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in lib/capistrano/tasks/assets.rake at the manifest lookup around lines 93 and 98. Trace the rollback behavior across multiple hosts and verify that each host's manifest is detected independently, with differing manifests no longer causing Capistrano::FileNotFound.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rails, ruby
- Domain
- devops, release
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100