Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-37727

Multibranch pipeline project jobs are not deleted when branches are deleted

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Critical
    • Resolution: Fixed
    • Component/s: git-plugin
    • Labels:
      None
    • Environment:
      git-plugin compiled from master.
      This bug does not exist in git-plugin 2.5.3
    • Similar Issues:

      Description

      Problem

      If you compile git-plugin from the source, and set 'Discard old items' in the multibranch pipeline, deleted branches on the SCM are not deleted from the job list. If you install the 2.5.3 version of this plugin and restart Jenkins, these branches are deleted.

      How to reproduce it

      Configure a Jenkins installation

      1. Download a fresh Jenkins (2.7.2), rename your current home
      2. Start it: java -jar jenkins.war
      3. Choose the default packages option during the first boot
      4. Clone git-plugin repository, compile it (mvn.cmd '-Dmaven.test.skip=true' clean install hpi:hpi)
      5. Import your git-plugin (the one you compiled) in Jenkins (advanced tab)
      6. Restart Jenkins

      See the error

      1. Create a test git repository with a Jenkinsfile on many branches
      2. Add a new multibranch pipeline, select "Discard old items"
      3. Save, check that your branches appear in the list
      4. Delete a branch from your repository. git push origin :features/a-random-branch
      5. Run a branch indexing
      6. See that your branch was not deleted

      Check that 2.5.3 is working

      1. Restore the git-plugin in its original version, 2.5.3
      2. Restart Jenkins
      3. Rerun branch indexing, see that your branch has disappeared !

      Investigations

      I didn't have the time to run a Jenkins instance in debug, or to read the commits yet. So I've no idea why this bug happens. I'll update this section later if I've time.

        Attachments

          Activity

          superboum Quentin Dufour created issue -
          superboum Quentin Dufour made changes -
          Field Original Value New Value
          Summary Branches of multibranch pipelines are not anymore deleted in upstream Jobs of a multibranch pipeline project are not anymore deleted in upstream
          superboum Quentin Dufour made changes -
          Description h2. Problem

          If you compile git-plugin from the source, and set 'Discard old items' in the multibranch pipeline, deleted branches on the SCM are not deleted from the job list. If you install the 2.5.3 version of this plugin and restart Jenkins, these branches are deleted.

          h2. How to reproduce it

          # Download a fresh Jenkins (2.7.2), rename your current home
          # Start it: java -jar jenkins.war
          # Choose the default packages for the first boot
          # Clone git-plugin repository, compile it (mvn.cmd '-Dmaven.test.skip=true' clean install hpi:hpi)
          # Import your git-plugin (the one you compiled) in Jenkins (advanced tab)
          # Restart Jenkins
          # Create a test git repository with a Jenkinsfile on many branches
          # Add a new multibranch pipeline, select "Discard old items"
          # Save, check that your branches appear in the list
          # Delete a branch from your repository. git push origin :features/a-random-branch
          # Run a branch indexing
          # See that your branch was not deleted
          # Restore the git-plugin in its original version, 2.5.3
          # Restart Jenkins
          # Rerun branch indexing, see that your branch has disappeared !
          h2. Problem

          If you compile git-plugin from the source, and set 'Discard old items' in the multibranch pipeline, deleted branches on the SCM are not deleted from the job list. If you install the 2.5.3 version of this plugin and restart Jenkins, these branches are deleted.

          h2. How to reproduce it

          *Configure a Jenkins installation*

          # Download a fresh Jenkins (2.7.2), rename your current home
          # Start it: java -jar jenkins.war
          # Choose the default packages option during the first boot
          # Clone git-plugin repository, compile it (mvn.cmd '-Dmaven.test.skip=true' clean install hpi:hpi)
          # Import your git-plugin (the one you compiled) in Jenkins (advanced tab)
          # Restart Jenkins

          *See the error*

          # Create a test git repository with a Jenkinsfile on many branches
          # Add a new multibranch pipeline, select "Discard old items"
          # Save, check that your branches appear in the list
          # Delete a branch from your repository. git push origin :features/a-random-branch
          # Run a branch indexing
          # See that your branch was not deleted

          *Check that 2.5.3 is working*

          # Restore the git-plugin in its original version, 2.5.3
          # Restart Jenkins
          # Rerun branch indexing, see that your branch has disappeared !
          superboum Quentin Dufour made changes -
          Description h2. Problem

          If you compile git-plugin from the source, and set 'Discard old items' in the multibranch pipeline, deleted branches on the SCM are not deleted from the job list. If you install the 2.5.3 version of this plugin and restart Jenkins, these branches are deleted.

          h2. How to reproduce it

          *Configure a Jenkins installation*

          # Download a fresh Jenkins (2.7.2), rename your current home
          # Start it: java -jar jenkins.war
          # Choose the default packages option during the first boot
          # Clone git-plugin repository, compile it (mvn.cmd '-Dmaven.test.skip=true' clean install hpi:hpi)
          # Import your git-plugin (the one you compiled) in Jenkins (advanced tab)
          # Restart Jenkins

          *See the error*

          # Create a test git repository with a Jenkinsfile on many branches
          # Add a new multibranch pipeline, select "Discard old items"
          # Save, check that your branches appear in the list
          # Delete a branch from your repository. git push origin :features/a-random-branch
          # Run a branch indexing
          # See that your branch was not deleted

          *Check that 2.5.3 is working*

          # Restore the git-plugin in its original version, 2.5.3
          # Restart Jenkins
          # Rerun branch indexing, see that your branch has disappeared !
          h2. Problem

          If you compile git-plugin from the source, and set 'Discard old items' in the multibranch pipeline, deleted branches on the SCM are not deleted from the job list. If you install the 2.5.3 version of this plugin and restart Jenkins, these branches are deleted.

          h2. How to reproduce it

          *Configure a Jenkins installation*

          # Download a fresh Jenkins (2.7.2), rename your current home
          # Start it: java -jar jenkins.war
          # Choose the default packages option during the first boot
          # Clone git-plugin repository, compile it (mvn.cmd '-Dmaven.test.skip=true' clean install hpi:hpi)
          # Import your git-plugin (the one you compiled) in Jenkins (advanced tab)
          # Restart Jenkins

          *See the error*

          # Create a test git repository with a Jenkinsfile on many branches
          # Add a new multibranch pipeline, select "Discard old items"
          # Save, check that your branches appear in the list
          # Delete a branch from your repository. git push origin :features/a-random-branch
          # Run a branch indexing
          # See that your branch was not deleted

          *Check that 2.5.3 is working*

          # Restore the git-plugin in its original version, 2.5.3
          # Restart Jenkins
          # Rerun branch indexing, see that your branch has disappeared !

          h2. Investigations

          I didn't have the time to run a Jenkins instance in debug, or to read the commits yet. So I've no idea why this bug happens. I'll update this section later if I've time.
          markewaite Mark Waite made changes -
          Summary Jobs of a multibranch pipeline project are not anymore deleted in upstream Jobs of a multibranch pipeline project are not anymore deleted in upstream if "/" in branch name
          markewaite Mark Waite made changes -
          Summary Jobs of a multibranch pipeline project are not anymore deleted in upstream if "/" in branch name Jobs of a multibranch pipeline project are not deleted when branch is deleted
          markewaite Mark Waite made changes -
          Priority Minor [ 4 ] Critical [ 2 ]
          markewaite Mark Waite made changes -
          Summary Jobs of a multibranch pipeline project are not deleted when branch is deleted Jobs of a multibranch pipeline project are not deleted when branches are deleted
          markewaite Mark Waite made changes -
          Summary Jobs of a multibranch pipeline project are not deleted when branches are deleted Multibranch pipeline project jobs are not deleted when branches are deleted
          markewaite Mark Waite made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          markewaite Mark Waite made changes -
          Status In Progress [ 3 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          markewaite Mark Waite made changes -
          Status Resolved [ 5 ] Closed [ 6 ]

            People

            • Assignee:
              markewaite Mark Waite
              Reporter:
              superboum Quentin Dufour
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: