3955: circular dependency between reviews makes review request un-updatable (500 errors)

christop*********@delph****** (Google Code) (Is this you? Claim this profile.)
david
david
What version are you running?

2.0.19

What's the URL of the page containing the problem?

https://reviews.csiden.org/r/236/

What steps will reproduce the problem?
1. Create a new review request.
2. In the 'Depends On' field input the id of the review request itself (e.g. in the above link request 236 'depends on' request 236.
3. Publish the review (this works fine).
4. Try to update the description of the review after publishing, or upload a new diff and try to publish the new diff by pressing 'Publish Changes', neither works.

NOTE: The issue seems to occur with any circular dependency between review requests, e.g. if 237 'depends on' 238 and 238 'depends on' 237, the same issue occurs when publishing updates to both 237 and 238.

What is the expected output? What do you see instead?

I expect the review to be published, instead the page hangs until I navigate to a different page or reload, looking at the webservice requests via chrome developer tools I see that I got back a 500 internal error:

Request URL:https://reviews.csiden.org/api/review-requests/236/draft/?api_format=json&force-text-type=html&include-text-types=raw&expand=depends_on%2Ctarget_people%2Ctarget_groups
Request Method:GET
Status Code:500 INTERNAL SERVER ERROR

But the web page does not indicate that an error occured. If I try to discard the draft I also get an error.

Also no log message is printed to the logs about the 500 error.

What operating system are you using? What browser?

Chrome on linux, linux server.

Please provide any additional information below.
david
#1 david
  • -New
    +PendingReview
  • +Release-2.0.x
  • +Component:API
  • +david
david
#2 david

Fixed in release-2.0.x (9b7fd12). This will ship in 2.0.21. Thanks!

  • -PendingReview
    +Fixed