• Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Minor Minor
    • core
    • None

      one-shot-executor is an alternate approach to slave allocation, relying on a 1:1 lifecycle between build and slave running it. Current implementation relies on hacks and implementation details.

      1. expose Computer #removeExecutor to subclasses so they can remove the slave just as the executor has completed the build.
      2. Let Run create the log's BuildListener before the Computer has been started, as same log will host slave launcher log and build log.

      Point 2 require to change the way StreamTaskListener do handle encoding. Current design is to rely on build slave default encoding, which require access to computer to get this information. Forcing conversion to UTF-8 as the log is collected for storage on master would avoid this and let us release this lifecycle dependency between BuildListener and Computer.

          [JENKINS-34923] One-Shot-Executor requirements

          Nicolas De Loof created issue -
          Nicolas De Loof made changes -
          Description Original: one-shot-executor is an alternate approach to slave allocation, relying on a 1:1 lifecycle between build and slave running it. Current implementation relies on hacks and implementation details.

          # expose Computer #removeExecutor to subclasses so they can remove the slave just as the executor has completed the build.
          # Let Run create the log's BuildListener before the Computer has been started.

          Point 2 require to change the way StreamTaskListener do handle encoding. Current design is to rely on build slave default encoding, which require access to computer to get this information. Forcing conversion to UTF-8 as the log is collected for storage on master would avoid this and let us release this lifecycle dependency between BuildListener and Computer.
          New: one-shot-executor is an alternate approach to slave allocation, relying on a 1:1 lifecycle between build and slave running it. Current implementation relies on hacks and implementation details.

          # expose Computer #removeExecutor to subclasses so they can remove the slave just as the executor has completed the build.
          # Let Run create the log's BuildListener before the Computer has been started, as same log will host slave launcher log and build log.

          Point 2 require to change the way StreamTaskListener do handle encoding. Current design is to rely on build slave default encoding, which require access to computer to get this information. Forcing conversion to UTF-8 as the log is collected for storage on master would avoid this and let us release this lifecycle dependency between BuildListener and Computer.
          Kohsuke Kawaguchi made changes -
          Remote Link New: This issue links to "Original attempt to fix by ndeloof (Web Link)" [ 14418 ]
          Nicolas De Loof made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: Open [ 1 ] New: Closed [ 6 ]
          R. Tyler Croy made changes -
          Workflow Original: JNJira [ 171124 ] New: JNJira + In-Review [ 210054 ]
          Nicolas De Loof made changes -
          Assignee New: Nicolas De Loof [ ndeloof ]

            ndeloof Nicolas De Loof
            ndeloof Nicolas De Loof
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: