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

Implement the Evergreen Automated Rollback system

    • Icon: Epic Epic
    • Resolution: Won't Do
    • Icon: Critical Critical
    • evergreen
    • Evergreen Automatic Rollback System
    • Evergreen - Milestone 1, Evergreen - Milestone 2

      The automated rollback system has been designed, but not implemented yet.

      Related JEPs/documents:

      • JEP 302 for the Git based snapshotting system
      • JEP 306 for the healthchecking

      Acceptance criteria

      1. Set up an evergreen instance, it is at UL-X
      2. publish a (broken) update level (example: adding a plugin without a required dependency) => instance upgrades to UL-X
      3. after restart, evergreen client detects Jenkins cannot restart, and rolls back to UL-X.
      4. Jenkins is accessible again
      5. a correct UL is published, Jenkins can upgrade to it

          [JENKINS-53273] Implement the Evergreen Automated Rollback system

          Started trying to find some library to manage a git repo. Until now, no luck:

          > nodegit@0.22.2 install /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit
          > node lifecycleScripts/preinstall && node lifecycleScripts/install
          
          [nodegit] Running pre-install script
          [nodegit] Configuring libssh2.
          { Error: Command failed: /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/configure --with-libssl-prefix=/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/openssl/openssl
          /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing: Unknown `--is-lightweight' option
          Try `/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing --help' for more information
          configure: WARNING: 'missing' script is too old or missing
          configure: error: No crypto library found!
          Try --with-libssl-prefix=PATH
           or --with-libgcrypt-prefix=PATH
           or --with-wincng on Windows
          
              at ChildProcess.exithandler (child_process.js:275:12)
              at emitTwo (events.js:126:13)
              at ChildProcess.emit (events.js:214:7)
              at maybeClose (internal/child_process.js:925:16)
              at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
            killed: false,
            code: 1,
            signal: null,
            cmd: '/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/configure --with-libssl-prefix=/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/openssl/openssl' }
          /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing: Unknown `--is-lightweight' option
          Try `/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing --help' for more information
          configure: WARNING: 'missing' script is too old or missing
          configure: error: No crypto library found!
          Try --with-libssl-prefix=PATH
           or --with-libgcrypt-prefix=PATH
           or --with-wincng on Windows
          
          [nodegit] ERROR - Could not finish preinstall
          { Error: Command failed: /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/configure --with-libssl-prefix=/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/openssl/openssl
          /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing: Unknown `--is-lightweight' option
          Try `/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing --help' for more information
          configure: WARNING: 'missing' script is too old or missing
          configure: error: No crypto library found!
          Try --with-libssl-prefix=PATH
           or --with-libgcrypt-prefix=PATH
           or --with-wincng on Windows
          
              at ChildProcess.exithandler (child_process.js:275:12)
              at emitTwo (events.js:126:13)
              at ChildProcess.emit (events.js:214:7)
              at maybeClose (internal/child_process.js:925:16)
              at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
            killed: false,
            code: 1,
            signal: null,
            cmd: '/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/configure --with-libssl-prefix=/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/openssl/openssl' }
          npm WARN evergreen-
          

          Baptiste Mathus added a comment - Started trying to find some library to manage a git repo. Until now, no luck: https://www.npmjs.com/package/run-git-command => IIUC, uses ES6 import feature. Which fails in our build as it is. http://www.nodegit.org/ seemed very nice, but cannot get it to work on my machine. And it's fun but their CI actually says the build is borked on Linux: > nodegit@0.22.2 install /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit > node lifecycleScripts/preinstall && node lifecycleScripts/install [nodegit] Running pre-install script [nodegit] Configuring libssh2. { Error: Command failed: /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/configure --with-libssl-prefix=/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/openssl/openssl /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing: Unknown `--is-lightweight' option Try `/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing --help' for more information configure: WARNING: 'missing' script is too old or missing configure: error: No crypto library found! Try --with-libssl-prefix=PATH or --with-libgcrypt-prefix=PATH or --with-wincng on Windows at ChildProcess.exithandler (child_process.js:275:12) at emitTwo (events.js:126:13) at ChildProcess.emit (events.js:214:7) at maybeClose (internal/child_process.js:925:16) at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5) killed: false, code: 1, signal: null, cmd: '/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/configure --with-libssl-prefix=/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/openssl/openssl' } /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing: Unknown `--is-lightweight' option Try `/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing --help' for more information configure: WARNING: 'missing' script is too old or missing configure: error: No crypto library found! Try --with-libssl-prefix=PATH or --with-libgcrypt-prefix=PATH or --with-wincng on Windows [nodegit] ERROR - Could not finish preinstall { Error: Command failed: /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/configure --with-libssl-prefix=/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/openssl/openssl /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing: Unknown `--is-lightweight' option Try `/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing --help' for more information configure: WARNING: 'missing' script is too old or missing configure: error: No crypto library found! Try --with-libssl-prefix=PATH or --with-libgcrypt-prefix=PATH or --with-wincng on Windows at ChildProcess.exithandler (child_process.js:275:12) at emitTwo (events.js:126:13) at ChildProcess.emit (events.js:214:7) at maybeClose (internal/child_process.js:925:16) at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5) killed: false, code: 1, signal: null, cmd: '/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/configure --with-libssl-prefix=/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/openssl/openssl' } npm WARN evergreen-

            batmat Baptiste Mathus
            batmat Baptiste Mathus
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: