• Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Major Major
    • other
    • None
    • Platform: All, OS: All

      We have several Maven2 projects set up. Hudson, after parsing the poms, knows
      the downstream and upstream projects. So normally, the downstream project should
      be build after the upstream project finished. But instead the downstream is
      triggered too early.

      Also when doing the cvs polling and a project and its downstream project has
      updates, the downstream project gets build twice. One is the cvs trigger and the
      second one the upstream trigger. I think the cvs trigger should be discarded
      when the upstream project is build, shouldn't it?

          [JENKINS-1545] Strange build trigger behaviour

          What you are seeing could be due to a triangle dependency, like A->B, B->C, and
          A->C. C may get built twice in this situation.

          As for your CVS vs upstream trigger issue, this has been a long discussed
          problem, but the solution isn't quite as easy as you might think. For example,
          imagine what happens if the upstream build breaks and it could block the
          downstream from being built for a prolonged time.

          Kohsuke Kawaguchi added a comment - What you are seeing could be due to a triangle dependency, like A->B, B->C, and A->C. C may get built twice in this situation. As for your CVS vs upstream trigger issue, this has been a long discussed problem, but the solution isn't quite as easy as you might think. For example, imagine what happens if the upstream build breaks and it could block the downstream from being built for a prolonged time.

          cfk added a comment -

          Well maybe you can do the following:
          You have 2 projects with the same cvs/svn polling time (every 15 minutes) and
          project A is the upstream project of project B. So there are changes in both
          projects and B is built twice, because it has changes and it is the downstream
          project from A. But what if you just check before executing project B if one of
          its upstream projects is also being built and just wait until it is finished and
          then (even is the upstream build breaks) execute the build because there are cvs
          changes in the cvs.
          Then you have one build per project and the downstream project isn't blocked.

          Hope this was a little bit understandable

          cfk added a comment - Well maybe you can do the following: You have 2 projects with the same cvs/svn polling time (every 15 minutes) and project A is the upstream project of project B. So there are changes in both projects and B is built twice, because it has changes and it is the downstream project from A. But what if you just check before executing project B if one of its upstream projects is also being built and just wait until it is finished and then (even is the upstream build breaks) execute the build because there are cvs changes in the cvs. Then you have one build per project and the downstream project isn't blocked. Hope this was a little bit understandable

          mdonohue added a comment -

          This was filed well before issue 2736, but it has had more activity.

              • This issue has been marked as a duplicate of 2736 ***

          mdonohue added a comment - This was filed well before issue 2736, but it has had more activity. This issue has been marked as a duplicate of 2736 ***

            Unassigned Unassigned
            cfk cfk
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: