comparison roundup/rest.py @ 7552:5775d2c4a846

Fix race condition that results in missing Retry-After header when rate limit exceeded.
author John Rouillard <rouilj@ieee.org>
date Sun, 16 Jul 2023 20:12:45 -0400
parents 886a5c767d7e
children 940f06dac1b4
comparison
equal deleted inserted replaced
7551:4857f0101e20 7552:5775d2c4a846
2088 # item, Retry-After will be missing from 2088 # item, Retry-After will be missing from
2089 # limitStatus. So report a 1 second delay back 2089 # limitStatus. So report a 1 second delay back
2090 # to the client. We treat update as sole 2090 # to the client. We treat update as sole
2091 # source of truth for exceeded rate limits. 2091 # source of truth for exceeded rate limits.
2092 retry_after = 1 2092 retry_after = 1
2093 self.client.setHeader('Retry-After', '1')
2093 2094
2094 msg = _("Api rate limits exceeded. Please wait: %s seconds.") % retry_after 2095 msg = _("Api rate limits exceeded. Please wait: %s seconds.") % retry_after
2095 output = self.error_obj(429, msg, source="ApiRateLimiter") 2096 output = self.error_obj(429, msg, source="ApiRateLimiter")
2096 else: 2097 else:
2097 for header, value in limitStatus.items(): 2098 for header, value in limitStatus.items():

Roundup Issue Tracker: http://roundup-tracker.org/