Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
production
-
None
Description
Cherry Pick Bot has been plagued by an issue where cherry-picks of cherry-picks may sometimes chose an incorrect parent. For example:
dev -> 6.8: Relation chain from dev is intact. Correct parent chosen.
6.8 -> 6.5: Relation chain may be broken when querying relation chain of 6.8.
The reason for this is a possible bug in Gerrit, but may not be considered a bug by upstream.
The issue has been reported at https://groups.google.com/g/repo-discuss/c/jlCKurm-zvQ/m/2f-hPLgiAQAJ but has not received any feedback.
This is a particularly important issue for Qt's workflow, as the waterfall cherry-pick process relies on maintaining relation chains as closely as possible to avoid erroneous merge conflicts and out-of-order picking. When the relation chain is broken, it becomes a non-deterministic race condition, hoping that cherry-picks with broken chain data get picked in the correct order or do not actually rely on other changes.
While a fix in Gerrit would be preferred, a workaround in cherry-pick bot could be possible by retaining the dev branch relation chain as reference for picks to other branches. This would require significant rework of Pickbot mechanisms though.