)]}'
{"ironic_python_agent/extensions/standby.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"3c4f37c837f9e1ac87614be1a9068ec12869566b","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            resp \u003d requests.get(url, stream\u003dTrue, proxies\u003dproxies,"},{"line_number":76,"context_line":"                                verify\u003dverify, cert\u003dcert,"},{"line_number":77,"context_line":"                                timeout\u003dCONF.image_download_connection_timeout)"},{"line_number":78,"context_line":"            if resp.status_code !\u003d 200:"},{"line_number":79,"context_line":"                msg \u003d (\u0027Received status code {} from {}, expected 200. \u0027"},{"line_number":80,"context_line":"                       \u0027Response body: {}\u0027).format(resp.status_code, url,"},{"line_number":81,"context_line":"                                                   resp.text)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_e8721549","line":78,"updated":"2020-04-23 17:42:31.000000000","message":"It\u0027d be interesting to consider retrying on usually-temporary errors, such as 502 or 503 as well. Although I can completely understand not wanting to do that.","commit_id":"46cc170c207d04fbe2bcf179cc57e78fb959750d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"9d713d9d68f07331d4b7e6f80af4995d15e6abf8","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            resp \u003d requests.get(url, stream\u003dTrue, proxies\u003dproxies,"},{"line_number":76,"context_line":"                                verify\u003dverify, cert\u003dcert,"},{"line_number":77,"context_line":"                                timeout\u003dCONF.image_download_connection_timeout)"},{"line_number":78,"context_line":"            if resp.status_code !\u003d 200:"},{"line_number":79,"context_line":"                msg \u003d (\u0027Received status code {} from {}, expected 200. \u0027"},{"line_number":80,"context_line":"                       \u0027Response body: {}\u0027).format(resp.status_code, url,"},{"line_number":81,"context_line":"                                                   resp.text)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_08c66149","line":78,"in_reply_to":"1f493fa4_e8721549","updated":"2020-04-23 17:44:26.000000000","message":"Actually, this patch retries on all non-200 HTTP codes (which may be an overkill, but dunno). See catching ImageDownloadError below.","commit_id":"46cc170c207d04fbe2bcf179cc57e78fb959750d"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"951fa9a5745a3460ea5f50884ae2a0d3b147b32d","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                time.sleep(CONF.image_download_connection_retry_interval)"},{"line_number":90,"context_line":"        else:"},{"line_number":91,"context_line":"            break"},{"line_number":92,"context_line":"    return resp"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"def _fetch_checksum(checksum, image_info):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f493fa4_91d455bf","line":92,"updated":"2020-04-24 00:51:50.000000000","message":"Deja vu, the code structure looks familiar with the glance image service in ironic before it was turned into use retrying lib.","commit_id":"1791e0c1df99a35dd95079fa6659d7af399d577e"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"6d02750e52b0474bed30c70511da191270ac61e1","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        except (errors.ImageDownloadError, requests.RequestException) as e:"},{"line_number":85,"context_line":"            if (attempt \u003d\u003d CONF.image_download_connection_retries"},{"line_number":86,"context_line":"                    # NOTE(dtantsur): do not retry 4xx status codes"},{"line_number":87,"context_line":"                    or (resp and resp.status_code \u003c 500)):"},{"line_number":88,"context_line":"                raise"},{"line_number":89,"context_line":"            else:"},{"line_number":90,"context_line":"                LOG.warning(\u0027Unable to connect to %s, retrying. Error: %s\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f493fa4_13acc532","line":87,"updated":"2020-04-24 09:18:59.000000000","message":"so this means we effectively retry codes \u003e\u003d 500\nmaybe finer control on this, but good for now, thanks!","commit_id":"8adb7e1a045c667dd97456d06bd74d74a4da2787"}],"releasenotes/notes/image-download-retries-65ac31fe4328e438.yaml":[{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"951fa9a5745a3460ea5f50884ae2a0d3b147b32d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Provides timeout and retries when establishing a connection to download"},{"line_number":5,"context_line":"    an image in the ``standby`` extension. The default timeout is 60 seconds"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"1f493fa4_11e04596","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":5},"updated":"2020-04-24 00:51:50.000000000","message":"More like a feature tbh","commit_id":"1791e0c1df99a35dd95079fa6659d7af399d577e"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"aab4a3ae7327d9ac560ffbee78e8e6f707334c3b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Provides timeout and retries when establishing a connection to download"},{"line_number":5,"context_line":"    an image in the ``standby`` extension. The default timeout is 60 seconds"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"1f493fa4_38927e4c","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":5},"in_reply_to":"1f493fa4_11e04596","updated":"2020-04-24 07:49:32.000000000","message":"yeah, debatable considering that we\u0027re introducing new config parameters.\nI wonder if we should\u0027ve split the patch in two parts (fix then parameters), if the idea is to backport it.","commit_id":"1791e0c1df99a35dd95079fa6659d7af399d577e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b0f672ceef39139971290f69fe7325b69dab7b25","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Provides timeout and retries when establishing a connection to download"},{"line_number":5,"context_line":"    an image in the ``standby`` extension. The default timeout is 60 seconds"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"1f493fa4_133685e7","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":5},"in_reply_to":"1f493fa4_38927e4c","updated":"2020-04-24 08:20:20.000000000","message":"We\u0027ve backported tons of parameters like that, it\u0027s not a problem from stable branch perspective. Bug fixes can have knobs to tune them.\n\nIt is this weird case of bug/feature, but the core idea is to fix a condition (download getting stuck) rather than providing operators a new behavior to use (e.g. software RAID).","commit_id":"1791e0c1df99a35dd95079fa6659d7af399d577e"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"6d02750e52b0474bed30c70511da191270ac61e1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Provides timeout and retries when establishing a connection to download"},{"line_number":5,"context_line":"    an image in the ``standby`` extension. Reduces probability of an image"},{"line_number":6,"context_line":"    download getting stuck in the event of network problems."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1f493fa4_7370a9dd","line":4,"range":{"start_line":4,"start_character":32,"end_line":4,"end_character":33},"updated":"2020-04-24 09:18:59.000000000","message":"and retry interval","commit_id":"8adb7e1a045c667dd97456d06bd74d74a4da2787"}]}
