[Buildbot-devel] Rebuild does not work correctly

Harry harry at aeteurope.nl
Fri Mar 2 15:34:05 UTC 2012


Today we found an issue on starting a rebuild (latest 'master' version)

The problem does not occur in 0.8.6.

 

The problem showed up with an older build (persistenceVersion 2):
IntegrityError, sourcestampsetid may not be NULL.

After analyzing the case we found the following:

-          upgrade_test.py test 'test_sourcestamp_version3' tests with an
pickle that includes a ssid, but the real pickles do not have a ssid.

-          Although the test 'test_sourcestamp_version3' is successful, this
case will never happen.

-          BuilderControl.rebuildBuild assumes the sourcestamp has a setid
and reuses this setid, but this is false as the setid is NULL

-          BuilderControl.rebuildBuild should not reuse an old setid but
create a new setid and sourcestampsetid by calling getSourceStampSetId

-          SourceStamp.getSourceStampSetId returns the ssid if it is set,
else the sourcestampsetid. This is wrong: always return the setid.
As long as ssid and sourcestampsetid are the same this is not a problem, but
1 extra sourcestamp (without sourcestamp set) will cause wrong results.

-          For pickles with persistenceVersion3 the sourcestamp contains a
setid and is reused for a new build, so the sourcestamps become part of
multiple buildsets and is also wrong.

 

The following changes should be made asap:

            rebuildBuild has to create a new sourcestamp in the database by
calling getSourceStampSetId

            getSourceStampSetid should always return setid.

            Sourcestampsetid should not be part of the pickle.

 

I hope to get this done next week.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://buildbot.net/pipermail/devel/attachments/20120302/28897b80/attachment.html>


More information about the devel mailing list