Skip to content

Commit 5192440

Browse files
committed
Rewrote the head-of-rotation review assignment loop to guarantee that it will terminate. This should fix the 'gateway timeout' issues we've seen lately, when review request volume in some review teams have been such that multiple assignments to the head of queue members have triggered the issue.
- Legacy-Id: 14684
1 parent ec22dfd commit 5192440

1 file changed

Lines changed: 7 additions & 6 deletions

File tree

ietf/group/views.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1476,19 +1476,20 @@ def manage_review_requests(request, acronym, group_type=None, assignment_status=
14761476
assignments_by_person = dict()
14771477
for r in reqs_to_assign:
14781478
if r.form.cleaned_data["reviewer"]:
1479-
assignments_by_person[r.form.cleaned_data["reviewer"].person] = r
1479+
person = r.form.cleaned_data["reviewer"].person
1480+
if not person in assignments_by_person:
1481+
assignments_by_person[person] = []
1482+
assignments_by_person[person].append(r)
14801483

14811484
# Make sure the any assignments to the person at the head
14821485
# of the rotation queue are processed first so that the queue
14831486
# rotates before any more assignments are processed
14841487
head_of_rotation = reviewer_rotation_list(group)[0]
14851488
while head_of_rotation in assignments_by_person:
1486-
review_req = assignments_by_person[head_of_rotation]
1487-
assign_review_request_to_reviewer(request, review_req, review_req.form.cleaned_data["reviewer"],review_req.form.cleaned_data["add_skip"])
1488-
if review_req in reqs_to_assign:
1489-
# XXX FIXME: It's not clear how we could end up here, but
1490-
# it has happened. See traceback email dated 14 Feb 2018
1489+
for review_req in assignments_by_person[head_of_rotation]:
1490+
assign_review_request_to_reviewer(request, review_req, review_req.form.cleaned_data["reviewer"],review_req.form.cleaned_data["add_skip"])
14911491
reqs_to_assign.remove(review_req)
1492+
del assignments_by_person[head_of_rotation]
14921493
head_of_rotation = reviewer_rotation_list(group)[0]
14931494

14941495
for review_req in reqs_to_assign:

0 commit comments

Comments
 (0)