1614: When updating a review without specifying '-r', server gives error "HTTP Error 409: Conflict"

jahu****@nvidi***** (Google Code) (Is this you? Claim this profile.)
chipx86
chipx86
May 27, 2010
What version are you running?
http://downloads.reviewboard.org/nightlies/ReviewBoard-
1.5beta2.dev_20100410-py2.5.egg

What steps will reproduce the problem?
1. Submit a review using rbtools "<p4-change-number>"
2. Update review with option "<p4-change-number>"

What is the expected output? What do you see instead?
Expect to update existing in-progress review

Instead I get the following error from server:

{....} , "err": {"msg": "The change number specified has already been 
used", "code": 204}}
Unable to access http://<my-server>/api/json/reviewrequests/new/. The host 
path may be invalid
HTTP Error 409: Conflict

Behavior has changed within last couple of months.

Please provide any additional information below.
If behavior is intentional, can we have an rbtools option to override it? 
We can't hook it up to, e.g., p4v as we now have to look up the review 
number and specify it as a parameter.
chipx86
#1 chipx86
Definitely a regression, and shouldn't be happening.

What version of RBTools are you using?
  • +NeedInfo
  • -Priority-Medium
    +Priority-High
    +Component-API
#2 jahu****@nvidi***** (Google Code) (Is this you? Claim this profile.)
I believe at the time I initially repro'd, I was using 0.8 beta-3 or later. I then 
updated to latest build and confirmed the issue still repro's. The RBTools version 
became a no-op.

The only thing I changed to go from no-repro to repro was the RB build, not the 
tools build. In all, directly related to RB version and orthoganal to tools version.

chipx86
#3 chipx86
Right, it's definitely a Review Board bug, but the main reason I was asking is that
changes to work with RB's API success/error reporting requires a new RBTools. So I
was just making sure in case you hit a problem there.

I'll look at this probably tonight.
  • -NeedInfo
    +Confirmed
  • +Milestone-Release1.5
  • +chipx86
chipx86
#4 chipx86
Okay, either way, this should no longer be a bug.

I believe it was due to not using a new enough RBTools, as your version of Review
Board was using non-HTTP 200 responses for errors, which older RBTools doesn't
support. However, that has been reverted, and the old API (which RBTools uses) is now
the same as it was in 1.0.x.

RBTools should normally handle that API Error 204 result and do the right thing, but
if it was an older version that didn't understand non-HTTP 200 responses, it would
think it hit some unsupported error path and bail, which is what happened there.

So, this is basically fixed now.
  • -Confirmed
    +Fixed
#5 jahu****@nvidi***** (Google Code) (Is this you? Claim this profile.)
Thanks Chip!

Is there an easy way to determine exactly which RBTools version (specifically build) 
being used?