Project

General

Profile

Actions

HOWTO backport commits » History » Revision 6

« Previous | Revision 6/52 (diff) | Next »
Loïc Dachary, 03/28/2015 11:31 AM


Backport issues

The helper snippet at http://workbench.dachary.org/dachary/ceph-workbench/issues/3 can be used to semi automate the process below

  • Pick one entry with the highest Severity field at http://workbench.dachary.org/ceph/ceph-backports/wikis/giant#issues-that-need-backporting
  • git cherry-pick -x the commits from the pull request that was targeting master (not from the pull requests targeting stable branches)
  • if there is a conflict explain how it was resolved in the commit message, below the Conflicts line. For instance:
    commit c60da2f3c34e7325c748d2d6e55140a0a30013fd
    Author: Samuel Just <sjust@redhat.com>
    Date:   Thu Nov 20 15:15:08 2014 -0800
    
        PGLog: include rollback_info_trimmed_to in (read|write)_log
    
        Fixes: #10157
        Backport: firefly, giant
        Signed-off-by: Samuel Just <sjust@redhat.com>
        (cherry picked from commit 1fe8b846641486cc294fe7e1d2450132c38d2dba)
    
        Conflicts:
            src/osd/PGLog.cc
                in the context coll_t::META_COLL was replaced with META_COLL
    
  • if the conflict is difficult to resolve, seek help from the author of the original commit (see librbd: deadlock in image refresh for instance)
  • create a pull request with the backport and a URL to the issue and set the milestone to giant
  • add the URL of the pull request in the issue
  • if the make check bot finds a problem, fix it
  • assign the pull request to the lead after it passed integration and upgrade tests

All commits being backported must be cherry-picked from master. There are exceptions to this rule (see https://github.com/ceph/ceph/pull/4175 for instance: it fixes a regression introduced by an incorrect resolution of a backport) but they are rare. When a backport is done to fix a bug that shows in the integration tests or upgrade tests run by cron, testing the backport in an integration branch is redundant because the existing tests will keep failing.

Updated by Loïc Dachary about 9 years ago · 6 revisions