Continuum

regression from 1.1 to 1.2.2: projects keep building even without changes

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 1.2.2
  • Fix Version/s: 1.3.3 (Beta)
  • Component/s: None
  • Labels:
    None
  • Complexity:
    Intermediate
  • Number of attachments :
    0

Description

We have continuum set up this way on purpose:

POM filename pom.xml
Goals release:prepare release:perform
Arguments --batch-mode
Build Fresh false
Always Build false
Is it default ? true
Schedule DEFAULT_SCHEDULE
Build Environment jdk1.5.0
Description default maven2 buildDefinition

It worked fine with continuum 1.1 stand alone (only projects with real changes would build, but with continuum 1.2.2 stand alone, it builds all projects all the time, even if there are no new changes to subversion.

The log messages are confusing, since at first it leads you to believe the unchanged project won't build, but then it builds anyway:

2008-11-17 18:00:00,033 [continuumScheduler_Worker-6] INFO schedulesActivator - >>>>>>>>>>>>>>>>>>>>> Executing build job (DEFAULT_SCHEDULE)...
2008-11-17 18:00:00,561 [continuumScheduler_Worker-6] INFO continuum - Enqueuing ':: example' with build definition 'Default Maven 2 Build Definition' - id=
3).
2008-11-17 18:00:00,600 [pool-1-thread-1] INFO buildController - Initializing build
2008-11-17 18:00:00,880 [pool-1-thread-1] INFO buildController - Starting build of :: example
2008-11-17 18:00:01,116 [pool-1-thread-1] INFO buildController - Updating working dir
2008-11-17 18:00:01,116 [pool-1-thread-1] INFO buildController - Performing action check-working-directory
2008-11-17 18:00:01,137 [pool-1-thread-1] INFO buildController - Performing action update-working-directory-from-scm
2008-11-17 18:00:01,635 [pool-1-thread-1] INFO action#update-working-directory-from-scm - Updating project: :: example', id: '1' to '/opt/app/xyz/var/2-cont
inuum/working-directory/1'.
2008-11-17 18:00:01,976 [pool-1-thread-1] INFO org.apache.continuum.scm.manager.Slf4jScmLogger - Executing: /bin/sh -c cd /opt/app/xyz/var/2-continuum/work
ing-directory/1 && svn --non-interactive update /opt/app/xyz/var/2-continuum/working-directory/1
2008-11-17 18:00:01,980 [pool-1-thread-1] INFO org.apache.continuum.scm.manager.Slf4jScmLogger - Working directory: /opt/app/xyz/var/2-continuum/working-di
rectory/1
2008-11-17 18:00:04,399 [pool-1-thread-1] INFO buildController - Merging SCM results
2008-11-17 18:00:05,111 [pool-1-thread-1] INFO buildController - The project was not built because no changes were detected in sources since the last build
.
2008-11-17 18:00:07,305 [pool-1-thread-1] INFO continuumBuildExecutor#maven2 - Found changes in project's version ( maybe project was recently released ),
building
2008-11-17 18:00:07,306 [pool-1-thread-1] INFO buildController - Changes found in the current project, building
2008-11-17 18:00:07,306 [pool-1-thread-1] INFO buildController - Performing action update-project-from-working-directory
2008-11-17 18:00:07,445 [pool-1-thread-1] INFO action#update-project-from-working-directory - Updating project ':: example' from checkout.
2008-11-17 18:00:10,028 [pool-1-thread-1] INFO buildController - Performing action execute-builder
2008-11-17 18:00:11,038 [pool-1-thread-1] WARN continuumBuildExecutor#maven2 - Could not find the executable 'mvn' in this path:

Issue Links

Activity

Hide
Maria Catherine Tan added a comment -

Did you recently released this particular project?
It seems like it did based on the log.

2008-11-17 18:00:07,305 [pool-1-thread-1] INFO continuumBuildExecutor#maven2 - Found changes in project's version ( maybe project was recently released ),
building

If a scheduled build was triggered for the first time after a release, continuum will still build the project to update the project's version even if no changes were detected in sources.

Show
Maria Catherine Tan added a comment - Did you recently released this particular project? It seems like it did based on the log. 2008-11-17 18:00:07,305 [pool-1-thread-1] INFO continuumBuildExecutor#maven2 - Found changes in project's version ( maybe project was recently released ), building If a scheduled build was triggered for the first time after a release, continuum will still build the project to update the project's version even if no changes were detected in sources.
Hide
deckrider added a comment -

@Maria Catherine Tan:

Yes, as you can see from the above configuration:

Goals release:prepare release:perform

We build a release every time the code changes. Continuum 1.1 realized this and didn't go into a loop building when there were no changes.

Show
deckrider added a comment - @Maria Catherine Tan: Yes, as you can see from the above configuration: Goals release:prepare release:perform We build a release every time the code changes. Continuum 1.1 realized this and didn't go into a loop building when there were no changes.
Hide
Wendy Smoak added a comment -

Is this still a problem in 1.2.3 and/or 1.3.1?

Show
Wendy Smoak added a comment - Is this still a problem in 1.2.3 and/or 1.3.1?
Hide
ol added a comment -

This issue is already present on version 1.2.3.

Show
ol added a comment - This issue is already present on version 1.2.3.
Hide
ol added a comment -

We found the problem.
It concerns the 'target' folder.
This folder is not specified in the .cvsignore file => continuum thinks there is a difference => continuum launches the build.
Here is the log line : 2009-03-05 14:24:36,564 [pool-1-thread-1] INFO action#update-working-directory-from-scm - Updated 1 files.
For a project with a .cvsignore containing the 'target' folder, the build is not launched.

But why is this behavior different from continuum 1.1 ???

Show
ol added a comment - We found the problem. It concerns the 'target' folder. This folder is not specified in the .cvsignore file => continuum thinks there is a difference => continuum launches the build. Here is the log line : 2009-03-05 14:24:36,564 [pool-1-thread-1] INFO action#update-working-directory-from-scm - Updated 1 files. For a project with a .cvsignore containing the 'target' folder, the build is not launched. But why is this behavior different from continuum 1.1 ???
Hide
Brett Porter added a comment -

does sound like a bug - changes in ? files should not trigger a build

Show
Brett Porter added a comment - does sound like a bug - changes in ? files should not trigger a build
Hide
deckrider added a comment -

This is still a bug in continuum-1.2.3, and I believe the offending bit addressing CONTINUUM-1815 is from this file:

continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenTwoBuildExecutor.java

 

        //CONTINUUM-1815: additional check for projects recently released
        if ( !continuumProject.getVersion().equals( project.getVersion() ) )
        {
            logger.info( "Found changes in project's version ( maybe project was recently released ), building" );
            return true;
        }

Show
deckrider added a comment - This is still a bug in continuum-1.2.3, and I believe the offending bit addressing CONTINUUM-1815 is from this file: continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenTwoBuildExecutor.java
 

        //CONTINUUM-1815: additional check for projects recently released
        if ( !continuumProject.getVersion().equals( project.getVersion() ) )
        {
            logger.info( "Found changes in project's version ( maybe project was recently released ), building" );
            return true;
        }

Hide
deckrider added a comment -

I've built continuum 1.2.3 commenting out the above code and it addresses this issue.

I've compared 1.2.3 source with 1.3.2 source of this file:

continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenTwoBuildExecutor.java

Since the above block of code is still there and since this file has hardly changed (except for logging changes), I assume 1.3.2 still has the issue.

Show
deckrider added a comment - I've built continuum 1.2.3 commenting out the above code and it addresses this issue. I've compared 1.2.3 source with 1.3.2 source of this file: continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenTwoBuildExecutor.java Since the above block of code is still there and since this file has hardly changed (except for logging changes), I assume 1.3.2 still has the issue.
Hide
Wendy Smoak added a comment -

Perhaps a better solution for CONTINUUM-1815 would be to do an scm update after a release. That would also fix a related problem with trying to release twice in a row.

Show
Wendy Smoak added a comment - Perhaps a better solution for CONTINUUM-1815 would be to do an scm update after a release. That would also fix a related problem with trying to release twice in a row.
Hide
deckrider added a comment -

Note that I don't use continuum's release functionality. We build a release every time the source code changes by putting 'release:prepare release:deploy' in our default maven2 default build definition goals. So in my case after a release, I think 'scm update' would only pull in changes if someone else had committed changes since the last 'scm update' (which does sometimes happen while the current release is building). But no matter, if there really was a change to continuum's working copy, it should build again. Unless continuum itself made the change (and in that case, there would be no change to continuum's working copy during 'scm update' anyway).

Show
deckrider added a comment - Note that I don't use continuum's release functionality. We build a release every time the source code changes by putting 'release:prepare release:deploy' in our default maven2 default build definition goals. So in my case after a release, I think 'scm update' would only pull in changes if someone else had committed changes since the last 'scm update' (which does sometimes happen while the current release is building). But no matter, if there really was a change to continuum's working copy, it should build again. Unless continuum itself made the change (and in that case, there would be no change to continuum's working copy during 'scm update' anyway).
Hide
Maria Catherine Tan added a comment -

revert changes made to CONTINUUM-1815.

fixed in
r777735 of 1.3.x branch
r777737 of trunk

Show
Maria Catherine Tan added a comment - revert changes made to CONTINUUM-1815. fixed in r777735 of 1.3.x branch r777737 of trunk

People

Vote (1)
Watch (2)

Dates

  • Created:
    Updated:
    Resolved: