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

More robust display detection needed - builds fail when many builds require Xvnc

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Component/s: xvnc-plugin
    • Labels:
      None
    • Environment:
      Ubuntu 12.04, Jenkins 1.500, XVNC plugin 1.10
    • Similar Issues:

      Description

      We're having issues with failing builds. We're running several builds in parallel on the same Jenkins machine, and many of them use XVNC, and I'm assuming it's related to this.

      Builds fail several times a day with the following error (though displays might differ, obviously):

      Starting xvnc
      [my-build] $ /usr/bin/vncserver :37 -geometry 1920x1280
      A VNC server is already running as :37
      Starting xvnc
      [my-build] $ /usr/bin/vncserver :49 -geometry 1920x1280
      A VNC server is already running as :49
      Starting xvnc
      [my-build] $ /usr/bin/vncserver :50 -geometry 1920x1280
      A VNC server is already running as :50
      Starting xvnc
      [my-build] $ /usr/bin/vncserver :51 -geometry 1920x1280
      A VNC server is already running as :51
      FATAL: Failed to run '/usr/bin/vncserver :51 -geometry 1920x1280' (exit code 98), blacklisting display #51; consider checking the "Clean up before start" option
      java.io.IOException: Failed to run '/usr/bin/vncserver :51 -geometry 1920x1280' (exit code 98), blacklisting display #51; consider checking the "Clean up before start" option
      	at hudson.plugins.xvnc.Xvnc.doSetUp(Xvnc.java:100)
      	at hudson.plugins.xvnc.Xvnc.doSetUp(Xvnc.java:98)
      	at hudson.plugins.xvnc.Xvnc.doSetUp(Xvnc.java:98)
      	at hudson.plugins.xvnc.Xvnc.doSetUp(Xvnc.java:98)
      	at hudson.plugins.xvnc.Xvnc.setUp(Xvnc.java:73)
      	at hudson.model.Build$BuildExecution.doRun(Build.java:154)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:592)
      	at hudson.model.Run.execute(Run.java:1557)
      	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
      	at hudson.model.ResourceController.execute(ResourceController.java:88)
      	at hudson.model.Executor.run(Executor.java:236)
      

      To me it seems like displays in use are blacklisted, and this is undesired since we currently don't have any stale locks in /tmp/.X11-unix/ (where our VNC locks are placed).

      Could locks in /tmp/.X*-lock and /tmp/.X11-unix/X* be considered when trying to start a new display? Could we allow more retries than the current 3? Or do you have any other ideas on how to address this issue?

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              davidparsson David Pärsson
            • Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: