# File lib/capistrano/configuration/execution.rb, line 109 def rollback! return if Thread.current[:rollback_requests].nil? # throw the task back on the stack so that roles are properly # interpreted in the scope of the task in question. rollback_requests.reverse.each do |frame| begin push_task_call_frame(frame.task) logger.important "rolling back", frame.task.fully_qualified_name frame.rollback.call rescue Object => e logger.info "exception while rolling back: #{e.class}, #{e.message}", frame.task.fully_qualified_name ensure pop_task_call_frame end end end