[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