2635: review-requests API filtering by ship-it=0 returns ship-it'ed review requests too.

tomas.b*******@gmai***** (Google Code) (Is this you? Claim this profile.)
Oct. 2, 2012
2372
What version are you running?
1.6.4.1

What's the URL of the page containing the problem?
/api/review/requests?ship-it=0

What steps will reproduce the problem?
1. Create some review requests, mark some of them as ship-it'ed.
2. Send a GET request to <rb_server>/api/review-requests?ship-it=0
3. The response includes review requests that have been ship-it'ed.

What is the expected output? What do you see instead?
I'd expect to see review requests that have not been accepted only. But the response includes review requests that have been ship-it'ed.

What operating system are you using? What browser?
I'm using the REST API from python and curl.


Please provide any additional information below.
chipx86
#1 chipx86
  • +Confirmed
  • +EasyFix
    +Component-API
#2 sampso******@gmai***** (Google Code) (Is this you? Claim this profile.)
slchen is looking into this (2012-09-22)
#3 sampso******@gmai***** (Google Code) (Is this you? Claim this profile.)
slchen: (updates)

- bug reproduced with curl in both json and xml formats
- additional information for this resource: http://www.reviewboard.org/docs/manual/dev/webapi/2.0/resources/review-request-list/
- to begin source code review
#4 sampso******@gmai***** (Google Code) (Is this you? Claim this profile.)
slchen: (updates 2)

- realized that I did not actually reproduce the original bug as I mentioned in the previous update
- these are the updated testing and findings:
- Tested with 6 total review-requests in the system
- 2 review-requests have 1 ship-it's each, the other 4 have none.
- example curl format used in test script is as follows:
curl -H "Accept: application/json" -v -G "http://0.0.0.0:8080/api/review-requests/?ship-it=0" > result

1. on "http://0.0.0.0:8080/api/review-requests/?ship-it=0", it actually returned 0 results - which is a bug, but a different bug.

2. on "http://0.0.0.0:8080/api/review-requests/?ship-it=1", it returned 2 results - which is the correct response

3. When I tried to access "http://0.0.0.0:8080/api/review-requests/?sh ip-it=0" (notice the space in the word 'ship'), it gets translated to "http://0.0.0.0:8080/api/review-requests/?sh%20ip-it=0" and actually returns all of the review-requests (which includes a mix of review-requests that either had or didn't have ship-it's)
- To OP: Could this have been the case in your original testing? A confirmation either way would be greatly appreciated because I haven't been able to reproduce the exact same bug as described originally.

Looking into the new bug described in (1) now.
#5 sampso******@gmai***** (Google Code) (Is this you? Claim this profile.)
- was doing testing on latest dev code; went back and investigate the problem on 1.6.12
- reproduced the problem as OP described. when ?ship-it=0 is set, it returns all results instead of only those without ship-it's.
- reviewing code
#7 sampso******@gmai***** (Google Code) (Is this you? Claim this profile.)
Fix submitted as review-request as per: http://reviews.reviewboard.org/r/3371/
david
#8 david
Fixed in master (12394ee). Thanks!
  • -Confirmed
    +Fixed