[Buildbot] #2402: Changes lost during migration from 0.7.12 to 0.8.7
Buildbot trac
trac at buildbot.net
Sun Mar 1 18:35:44 UTC 2015
#2402: Changes lost during migration from 0.7.12 to 0.8.7
-------------------+------------------------
Reporter: AndyS | Owner:
Type: defect | Status: new
Priority: major | Milestone: undecided
Version: 0.8.7 | Resolution:
Keywords: |
-------------------+------------------------
Old description:
> I tried to upgrade our buildbot setup from 0.7.12 to 0.8.7 with mysql
> database backend. After adding DB configuration to master.cfg 'buildbot
> upgrade-master' ran successfully, no diagnostics was produced.
> Unfortunately when I checked web interfaces I did not see any changes
> there. I checked around and this is what I saw:
> - `changes.pck` in master directory was renamed to `changes.pck.old`,
> this probably implies that its content was moved to database
> - in the database table `changes` was completely empty
>
> I looked at the buildbot source and it seems the culprit is this code in
> `db/migrate/versions/001_initial.py`:
> {{{
> # insert the changes
> for c in source.changes:
> if not c.revision:
> continue
> ...
> }}}
> In our setup we only do manually-controlled builds using the `buildbot
> sendchange` command, and for that we do not specify revision numbers as
> they do not make sense in out setup. As a result revisions in old changes
> were missing, and the filter in the above code simply discarded all our
> old changes from `changes.pck`.
>
> Is there a reason why revision number is required when doing migration of
> the changes? Is it generally necessary to provide revision to `buildbot
> sendchange`?
>
> As a test I tried to comment out the filter in the above code and re-ran
> upgrade. All changes were successfully copied to database, and I did not
> observe any problems yet after migration (but after couple of days I had
> to revert back to 0.7.12 for other reasons so I do not run 0.8.7 at the
> moment).
New description:
I tried to upgrade our buildbot setup from 0.7.12 to 0.8.7 with mysql
database backend. After adding DB configuration to master.cfg 'buildbot
upgrade-master' ran successfully, no diagnostics was produced.
Unfortunately when I checked web interfaces I did not see any changes
there. I checked around and this is what I saw:
- `changes.pck` in master directory was renamed to `changes.pck.old`, this
probably implies that its content was moved to database
- in the database table `changes` was completely empty
I looked at the buildbot source and it seems the culprit is this code in
`db/migrate/versions/001_initial.py`:
{{{
# insert the changes
for c in source.changes:
if not c.revision:
continue
...
}}}
In our setup we only do manually-controlled builds using the `buildbot
sendchange` command, and for that we do not specify revision numbers as
they do not make sense in out setup. As a result revisions in old changes
were missing, and the filter in the above code simply discarded all our
old changes from `changes.pck`.
Is there a reason why revision number is required when doing migration of
the changes? Is it generally necessary to provide revision to `buildbot
sendchange`?
As a test I tried to comment out the filter in the above code and re-ran
upgrade. All changes were successfully copied to database, and I did not
observe any problems yet after migration (but after couple of days I had
to revert back to 0.7.12 for other reasons so I do not run 0.8.7 at the
moment).
--
Comment (by sa2ajj):
While I understand it was a problem at the time, I wonder if we need to
give that deeper look now?
--
Ticket URL: <http://trac.buildbot.net/ticket/2402#comment:2>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation
More information about the bugs
mailing list