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

Unprintable character in executor name in JSON API output

      After upgrading to the 1.460 version of Jenkins, we noticed that when a build was waiting for an executor, if you hovered over the build in the wall display, it would say "Waiting for next available executor on [ESC][8mha:AAAAiR+LCAAAAAAAAABb85aBtbiIQSajNKU4P08vOT+vOD8nVc+jsiC1KCczL9svvyT1dMUiOWdZ/mImBiZPBrac1Lz0kgwfBubSopwSBiGfrMSyRP2cxLx0/eCSosy8dOuKIgYpNOOcITTIMAYIYGRiYKgoALFKGLj0k/NzC0pLUov0ATz5UcyPAAAA[ESC][0m"

      The [ESC] was actually the ASCII/ANSI escape character 0x1B.

      When we attempt to use the JSON API to get the status of builds, our script (Ruby) fails to parse the JSON due to invalid escape characters in the string:

      "why":"Waiting for next available executor on [8mha:AAAAiR+LCAAAAAAAAABb85aBtbiIQSajNKU4P08vOT+vOD8nVc+jsiC1KCczL9svvyT1dMUiOWdZ/mImBiZPBrac1Lz0kgwfBubSopwSBiGfrMSyRP2cxLx0/eCSosy8dOuKIgYpNOOcITTIMAYIYGRiYKgoALFKGLj0k/NzC0pLUov0ATz5UcyPAAAA[0m"

      Before the [8mha and the [0m there is the invisible 0x1B escape character.

      When we click on the waiting build in the UI to view the build details, it says (correctly) "#1849 (pending - Waiting for next available executor on master )"

      "master" is the name of our primary build server/executor.

      I have no idea where the big [8mhz:AAAAiR... stuff is coming from.

          [JENKINS-13556] Unprintable character in executor name in JSON API output

          Chad Myers created issue -

          Frank Merrow added a comment -

          I have also seen this issue on our Jenkins systems . . .

          NOTE: This is NOT a plugin issue . . . this can be duplicated on a "virgin" Jenkins . . . just fill up all the executors with Jobs and then queue something so you get the "Waiting for next available executor on ". (Typically means you had to "node lock" a job.)

          Easy to duplicate (for me 100% in 1.459 and 1.460) Never happens on a Jenkins where none of the jobs are node locked, always happens on Jenkins where the jobs are node locked. As discussed above, affects both the GUI and the JSON return values if using Jenkins/Python).

          Frank

          Frank Merrow added a comment - I have also seen this issue on our Jenkins systems . . . NOTE: This is NOT a plugin issue . . . this can be duplicated on a "virgin" Jenkins . . . just fill up all the executors with Jobs and then queue something so you get the "Waiting for next available executor on ". (Typically means you had to "node lock" a job.) Easy to duplicate (for me 100% in 1.459 and 1.460) Never happens on a Jenkins where none of the jobs are node locked, always happens on Jenkins where the jobs are node locked. As discussed above, affects both the GUI and the JSON return values if using Jenkins/Python). Frank

          Jason Howk added a comment -

          It's the ConsoleNote class that's attempting to mark it up. See Jenkins-13865.

          Jason Howk added a comment - It's the ConsoleNote class that's attempting to mark it up. See Jenkins-13865.

          howama added a comment -

          Seem to be a duplicate of JENKINS-13865, which is fixed

          howama added a comment - Seem to be a duplicate of JENKINS-13865 , which is fixed
          howama made changes -
          Resolution New: Duplicate [ 3 ]
          Status Original: Open [ 1 ] New: Resolved [ 5 ]
          R. Tyler Croy made changes -
          Workflow Original: JNJira [ 144022 ] New: JNJira + In-Review [ 190865 ]

            Unassigned Unassigned
            chadmyers Chad Myers
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: