git-review doesn't warn about duplicate change-id

Bug #1187302 reported by Julien Danjou
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Core Infrastructure
Invalid
Undecided
Jeremy Stanley
git-review
Confirmed
Wishlist
Unassigned

Bug Description

I'm having a branch with 9 patches, but when sending or updating it over Gerrit, it only sends the 6 first:

% git review
You have more than one commit that you are about to submit.
The outstanding commits are:

805699c (HEAD, jd/use-console-scripts) Remove useless imports, reenable F401 checks
e173528 service: run common initialization stuff
f197c10 Use console scripts for ceilometer-api
7183fd5 Use console scripts for ceilometer-dbsync
d0a5d09 Use console scripts for ceilometer-agent-compute
daa393b Use console scripts for ceilometer-agent-central
bab2ca7 agent-central: use CONF.import_opt rather than import
b2d7ecc Move os_* options into a group
522e632 Use console scripts for ceilometer-collector

Is this really what you meant to do?
Type 'yes' to confirm: yes
remote: Resolving deltas: 100% (114/114)
remote: Processing changes: updated: 6, refs: 1, done
To ssh://<email address hidden>:29418/openstack/ceilometer.git
 * [new branch] HEAD -> refs/publish/master/jd/use-console-scripts

Check the number of updated patches: 6!

The last 3 are not marked as sent, I need to rerun git review:

% git review
You have more than one commit that you are about to submit.
The outstanding commits are:

805699c (HEAD, jd/use-console-scripts) Remove useless imports, reenable F401 checks
e173528 service: run common initialization stuff
f197c10 Use console scripts for ceilometer-api
7183fd5 Use console scripts for ceilometer-dbsync
d0a5d09 Use console scripts for ceilometer-agent-compute
daa393b Use console scripts for ceilometer-agent-central
bab2ca7 agent-central: use CONF.import_opt rather than import
b2d7ecc Move os_* options into a group
522e632 Use console scripts for ceilometer-collector

Is this really what you meant to do?
Type 'yes' to confirm: yes
remote: Resolving deltas: 100% (55/55)
remote: Processing changes: updated: 3, refs: 1, done
To ssh://<email address hidden>:29418/openstack/ceilometer.git
 * [new branch] HEAD -> refs/publish/master/jd/use-console-scripts

And now the final 3 are finally marked as updated.

However, there's still a bug since the patch #7 "Use console scripts for ceilometer-api" never shows up in Gerrit. Worst, patch #8 shows up at https://review.openstack.org/#/c/31046/ but has no dependency.

So rather than having a patch tree like:
#1 -> #2 -> #3 -> #4 -> #5 -> #6 -> #7 -> #8 -> #9

built in one upload, I need to run twice git review and I end up with:
#1 -> #2 -> #3 -> #4 -> #5 -> #6
#8 -> #9

Jeremy Stanley (fungi)
Changed in openstack-ci:
status: New → Triaged
assignee: nobody → Jeremy Stanley (fungi)
Revision history for this message
Jeremy Stanley (fungi) wrote :

I'm suspecting something is/was weird about change #7 in the series. We've seen similar issues when a patch makes no substantive changes, or duplicates another patch's change-id header or sometimes becomes an orphaned commit because its parent gitsha doesn't match the one already present in Gerrit. Can you push a copy of the problem branch somewhere public so I can look at the change which didn't make it into a review?

Revision history for this message
Julien Danjou (jdanjou) wrote :
Revision history for this message
Jeremy Stanley (fungi) wrote :

Looking at that branch, 7183fd5 (the last one to make it in on the first run) and f197c10 (the one which broke and never ended up in a review) both claim to have Change-Id: Ibd63589f09c610d86b1c097ba52ea2f24c5d026e so Gerrit considered they were intended to be two patchsets for the same change.

Changed in openstack-ci:
status: Triaged → Invalid
Revision history for this message
Jeremy Stanley (fungi) wrote :

The git-review tool could inspect the commit messages of multi-change submissions looking for duplicate existing Change-Id: header lines in separate changes. For bonus points, it could also check within each commit message for cases of more than one Change-Id: header line as well.

Changed in git-review:
status: New → Confirmed
importance: Undecided → Wishlist
summary: - Problem sending long branch to Gerrit
+ git-review doesn't warn about duplcate change-id
summary: - git-review doesn't warn about duplcate change-id
+ git-review doesn't warn about duplicate change-id
tags: added: low-hanging-fruit
Revision history for this message
Julien Danjou (jdanjou) wrote :

Thank you very much fungi for spotting this. :)

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.