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

Command line too long can cause CreateProcess to fail on Win32

    • Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Major Major
    • core
    • None
    • Platform: All, OS: All

      CVSSCM, in an attempt to compute changelog, can invoke 'cvs' with a very long
      list of file names (if there has been a lot of changes since the last build.)
      This hits the limit of CreateProcess API, in which case a fairly cryptic error
      happens.

      See http://blogs.msdn.com/oldnewthing/archive/2003/12/10/56028.aspx

          [JENKINS-389] Command line too long can cause CreateProcess to fail on Win32

          Fixed in 1.93.

          Kohsuke Kawaguchi added a comment - Fixed in 1.93.

          Jesse Glick added a comment -

          This change can make big builds much slower. For example, in this build, run
          after about a day's interval from the previous build and on a big codebase,
          there were 600+ files changed, which is pretty normal:

          http://deadlock.nbextras.org/hudson/job/javadoc-nbms/476/changes

          The logging, even against a local repository, took over half an hour of
          server-crushing load, which is far longer than it would have taken in earlier
          versions of Hudson.

          If this bug was only reported for Windows users (and I have never come across
          such a problem on Linux), can we please disable it (or make the limit much
          higher) for non-Windows platforms? The rest of us should not have to pay for
          silly limitations in Win32.

          Jesse Glick added a comment - This change can make big builds much slower. For example, in this build, run after about a day's interval from the previous build and on a big codebase, there were 600+ files changed, which is pretty normal: http://deadlock.nbextras.org/hudson/job/javadoc-nbms/476/changes The logging, even against a local repository, took over half an hour of server-crushing load, which is far longer than it would have taken in earlier versions of Hudson. If this bug was only reported for Windows users (and I have never come across such a problem on Linux), can we please disable it (or make the limit much higher) for non-Windows platforms? The rest of us should not have to pay for silly limitations in Win32.

          In 1.97, this is only done on Windows.

          Kohsuke Kawaguchi added a comment - In 1.97, this is only done on Windows.

          Jesse Glick added a comment -

          Um, no. You changed it to be

          if (size < 100 && windows)

          What you meant was

          if (size < 100 || !windows)

          No wonder deadlock.nbextras.org is taking four hours to run what should be a
          one-hour build. I will fix it.

          By the way, when committing changes, please include a one-line description in
          the commit log, not just a bug number; it is difficult to find the cause of a
          regression in CVS history with just numbers.

          Jesse Glick added a comment - Um, no. You changed it to be if (size < 100 && windows) What you meant was if (size < 100 || !windows) No wonder deadlock.nbextras.org is taking four hours to run what should be a one-hour build. I will fix it. By the way, when committing changes, please include a one-line description in the commit log, not just a bug number; it is difficult to find the cause of a regression in CVS history with just numbers.

          Thanks. I'll be careful.

          Kohsuke Kawaguchi added a comment - Thanks. I'll be careful.

          Jesse Glick added a comment -

          Checking in main/core/src/main/java/hudson/scm/CVSSCM.java;
          /shared/data/ccvs/repository/hudson/hudson/main/core/src/main/java/hudson/scm/CVSSCM.java,v
          <-- CVSSCM.java
          new revision: 1.47; previous revision: 1.46
          done
          Checking in www/changelog.html;
          /shared/data/ccvs/repository/hudson/www/changelog.html,v <-- changelog.html
          new revision: 1.579; previous revision: 1.578
          done

          Jesse Glick added a comment - Checking in main/core/src/main/java/hudson/scm/CVSSCM.java; /shared/data/ccvs/repository/hudson/hudson/main/core/src/main/java/hudson/scm/CVSSCM.java,v <-- CVSSCM.java new revision: 1.47; previous revision: 1.46 done Checking in www/changelog.html; /shared/data/ccvs/repository/hudson/www/changelog.html,v <-- changelog.html new revision: 1.579; previous revision: 1.578 done

            Unassigned Unassigned
            kohsuke Kohsuke Kawaguchi
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: