Closed Bug 1333874 Opened 7 years ago Closed 7 years ago

mergeUpdate is broken when a base table row updates a value to the same value in the scheduled change

Categories

(Release Engineering Graveyard :: Applications: Balrog (backend), defect, P1)

defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: bhearsum, Assigned: matt+mozilla)

References

Details

(Whiteboard: [lang=python][ready])

When someone tries to update an object that has an active Scheduled Change, we try to detect collisions by performing a 3 way merge on the current version of the object, the scheduled change version, and the requested update. If the scheduled change and requested update are both modifying the same column, we cannot make the requested update because it would invalidate the scheduled change.

It looks like this check is broken when the scheduled change and requested update are changing the same column to the same value. An interesting side effect of this is that it means that any future updates to that object (until the scheduled change is enacted) will always merge over to the scheduled change.

I had a look at the code, and it looks like we're comparing the requested update to the scheduled change instead of the current version of the object. The comment at https://github.com/mozilla/balrog/blob/3a0bbff051c7bcecdb6efd672bca6c26266e07c4/auslib/db.py#L1214 reads like we wanted to comparing the requested update to the current version of the object, which matches what it's in my head too. In a 3 way merge, that current version of the object is the "base" - not the scheduled change.

I tried changing that line to compare the current object and the requested version, and all of the tests still pass, so I suspect that's the fix here. We'll need a test for this case too, and some manual verification would be good as well.
Priority: P3 → P2
Priority: P2 → P1
Assignee: nobody → matt+mozilla
Commit pushed to master at https://github.com/mozilla/balrog

https://github.com/mozilla/balrog/commit/ac29e19c2d3e4f29af74296d03c908f0ff32320b
Bug 1333874: mergeUpdate is broken when a base table row updates a value to the same value in the scheduled change (#245). r=bhearsum
Depends on: 1339569
This is in production. Thanks a lot for your contribution Matt!
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Product: Release Engineering → Release Engineering Graveyard
You need to log in before you can comment on or make changes to this bug.