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

Hudson serializes AccuRev pops

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Blocker
    • Resolution: Fixed
    • accurev-plugin
    • None
    • Platform: All, OS: All

    Description

      I was checking on a number of builds that I have just converted over to hudson.
      The code base is quite large (3 GB), so it takes quite a while to get the code
      from AccuRev. From the hudson main page it looked as though all the builds had
      started, but when I actually check the build directories, only one was being
      populated. Checking the job logs, the one that was being populated had a log
      file that showed content being populated in the directories. One of the other
      jobs was at the "populating workspace" message in the log, and the other was at
      the "Authenticating" message.

      I waited a number of minutes for the first job to finish populating. Shortly
      after completion of the first populate, one of the other jobs started populating
      the build directory. Once that one completed populating, the last job started
      populating the directory.

      All the jobs are set up to poll AccuRev at the same time using the same user,
      and build the code if changes in the selected stream are found (also the same
      across all the jobs).

      Is there any reason why the populating of the workspace is done in a serial
      fashion? I had these set up as a cron job before converting to hudson, with the
      same configuration (same user populating different directories at the same time,
      etc) and never had to serialize the builds.

      Given the size of the code base, this could have a negative impact on the
      performance of our already lengthy builds.

      Attachments

        Activity

          statlor Scott Tatum added a comment -

          Thanks for the information. I will look into the issue and see what I can find
          out. I am not the original developer of the plugin, so I'm not sure yet what the
          rationale is for serializing pops.

          Question for you - are you using AccuRev workspaces on these jobs or no?

          statlor Scott Tatum added a comment - Thanks for the information. I will look into the issue and see what I can find out. I am not the original developer of the plugin, so I'm not sure yet what the rationale is for serializing pops. Question for you - are you using AccuRev workspaces on these jobs or no?
          sowens01 sowens01 added a comment -

          Not at the moment. We're using the custom workspace option, which apparently
          does an 'accurev pop -R -O'.

          Let me know if I can be of any help. I was thinking about downloading the code
          just to read it: both to see how plugins work and to see how the AccuRev plugin
          specifically works.

          sowens01 sowens01 added a comment - Not at the moment. We're using the custom workspace option, which apparently does an 'accurev pop -R -O'. Let me know if I can be of any help. I was thinking about downloading the code just to read it: both to see how plugins work and to see how the AccuRev plugin specifically works.
          sowens01 sowens01 added a comment -

          We've had a chance to look at the code, and I believe we were able to determine the problem. We've run it through what tests we could think of, and it fixes the problem with no ill effects that we can find. I've attached a patch file of the changes. Let me know if there's anything else we can do to help.

          sowens01 sowens01 added a comment - We've had a chance to look at the code, and I believe we were able to determine the problem. We've run it through what tests we could think of, and it fixes the problem with no ill effects that we can find. I've attached a patch file of the changes. Let me know if there's anything else we can do to help.
          statlor Scott Tatum added a comment -

          Thanks. This turns off sync on all operations except login, but that should be ok.

          I've incorporated this change, and added in a global setting to turn on/off sync. I'm making the default on for now, since this is the historical behavior. At some point in the future I'll make the default off, probably after the rewrite of everything.

          All that's left is to fix a bug where the setting change isn't saving. Once that is done I'll commit, and release 0.6.9 with these and other changes already completed.

          statlor Scott Tatum added a comment - Thanks. This turns off sync on all operations except login, but that should be ok. I've incorporated this change, and added in a global setting to turn on/off sync. I'm making the default on for now, since this is the historical behavior. At some point in the future I'll make the default off, probably after the rewrite of everything. All that's left is to fix a bug where the setting change isn't saving. Once that is done I'll commit, and release 0.6.9 with these and other changes already completed.

          Code changed in hudson
          User: : statlor
          Path:
          trunk/hudson/plugins/accurev/pom.xml
          trunk/hudson/plugins/accurev/src/main/java/hudson/plugins/accurev/AccurevSCM.java
          trunk/hudson/plugins/accurev/src/main/resources/hudson/plugins/accurev/AccurevSCM/global.jelly
          trunk/hudson/plugins/accurev/src/main/webapp/help/sync-operations.html
          http://jenkins-ci.org/commit/28044
          Log:
          [FIXED JENKINS-4722] Hudson serializes AccuRev pops. Includes feature to toggle it on/off, with default set to on for backward compatability. Also raised parent pom version to 1.345. Ready for next release.

          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in hudson User: : statlor Path: trunk/hudson/plugins/accurev/pom.xml trunk/hudson/plugins/accurev/src/main/java/hudson/plugins/accurev/AccurevSCM.java trunk/hudson/plugins/accurev/src/main/resources/hudson/plugins/accurev/AccurevSCM/global.jelly trunk/hudson/plugins/accurev/src/main/webapp/help/sync-operations.html http://jenkins-ci.org/commit/28044 Log: [FIXED JENKINS-4722] Hudson serializes AccuRev pops. Includes feature to toggle it on/off, with default set to on for backward compatability. Also raised parent pom version to 1.345. Ready for next release.

          People

            statlor Scott Tatum
            sowens01 sowens01
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: