Issue Details (XML | Word | Printable)

Key: CONTINUUM-1979
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Maria Catherine Tan
Reporter: deckrider
Votes: 1
Watchers: 2
Operations

If you were logged in you would be able to see more operations.
Continuum

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

Created: 17/Nov/08 12:33 PM   Updated: 22/May/09 06:14 PM   Resolved: 22/May/09 06:14 PM
Return to search
Component/s: None
Affects Version/s: 1.2.2
Fix Version/s: 1.3.3

Time Tracking:
Not Specified

Issue Links:
Related
 

Complexity: Intermediate


 Description  « Hide

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:



Maria Catherine Tan added a comment - 18/Nov/08 06:31 PM

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.


deckrider added a comment - 19/Nov/08 07:18 AM

@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.


Wendy Smoak added a comment - 26/Feb/09 07:28 PM

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


ol added a comment - 05/Mar/09 06:34 AM

This issue is already present on version 1.2.3.


ol added a comment - 05/Mar/09 08:14 AM

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 ???


Brett Porter added a comment - 21/Apr/09 11:32 PM

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


deckrider added a comment - 10/May/09 04:14 PM

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;
        }


deckrider added a comment - 10/May/09 07:18 PM

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.


Wendy Smoak added a comment - 10/May/09 09:13 PM

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.


deckrider added a comment - 11/May/09 06:09 AM

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).


Maria Catherine Tan added a comment - 22/May/09 06:14 PM

revert changes made to CONTINUUM-1815.

fixed in
r777735 of 1.3.x branch
r777737 of trunk