[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