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

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

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • xvnc-plugin
    • None
    • Ubuntu 12.04, Jenkins 1.500, XVNC plugin 1.10

      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?

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

              Created:
              Updated:
              Resolved: