capistrano / capistrano/rails

Restore manifest is failing on rollback on multiple hosts

Open
#204 2 comments 0 reactions 0 assignees View on GitHub
bug?
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.