)]}'
{"/PATCHSET_LEVEL":[{"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":"b961d0dffc22a0ae52d306e9471824f3dee24685","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1275c162_7d48493a","updated":"2023-10-20 16:55:03.000000000","message":"Please also add a release note, as this could change behavior for operators.\n\nhttps://docs.openstack.org/ironic/latest/contributor/faq#create-a-new-release-note\n\nLots of examples in releasenotes/. If you want some help wording it, just toss up some idea, and I an happy to help polish it in gerrit. You will not need to include something for all the fields in the template -- just enough information so that if someone was upgrading, and hit one of these new limits, they\u0027d understand what is going on.","commit_id":"31b9fe267888aabddf5d52cecea7da3123d99167"},{"author":{"_account_id":36402,"name":"Boushra Sondos Bettir","display_name":"Boushra Sondos Bettir","email":"boushrab04@gmail.com","username":"boushrabettir"},"change_message_id":"c002d2a18b79434147a781b8103bffbf361ba589","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e16479d6_fa33afdf","in_reply_to":"1275c162_7d48493a","updated":"2023-10-21 05:22:32.000000000","message":"Are you inferring that in the PR commit message I use present tense? Or create a whole new release note?","commit_id":"31b9fe267888aabddf5d52cecea7da3123d99167"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2ea5cdf38fccbb968a5f8405b380e2ee1085bc31","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"800ccab3_a63875bb","updated":"2023-11-06 14:05:08.000000000","message":"Please add a release note.","commit_id":"84434c778a736539e349d421278cb4b3985d7f4a"}],"ironic_python_agent/config.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":"b961d0dffc22a0ae52d306e9471824f3dee24685","unresolved":true,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    cfg.IntOpt(\u0027ip_lookup_sleep\u0027,"},{"line_number":112,"context_line":"               min\u003d1,"},{"line_number":113,"context_line":"               max\u003d3600,"},{"line_number":114,"context_line":"               default\u003dint(APARAMS.get(\u0027ipa-ip-lookup-timeout\u0027, 10)),"},{"line_number":115,"context_line":"               help\u003d\u0027The amount of time to sleep between attempts \u0027"},{"line_number":116,"context_line":"                    \u0027to determine IP address. \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"b827cca4_6d9d5737","line":113,"updated":"2023-10-20 16:55:03.000000000","message":"This is likely much too long to wait in these cases; this would be waiting on a network event; such as spanning tree to converge, a port to be marked online, or something similar -- it\u0027s unlikely there\u0027s ever a situation you\u0027d want this as high as an hour. Maybe 120 seconds as a suggested max?\n\nAlso, the ip_lookup_sleep * ip_lookup_attempts must complete during Ironic\u0027s various deployment timeouts -- which is a signal that 86400*3600 seconds is too long for a max. https://opendev.org/openstack/ironic-python-agent/src/branch/master/ironic_python_agent/agent.py#L293 (note that set_agent_advertise_addr must occur before a lookup can happen; the typical agent flow is: startup -\u003e lookup -\u003e heartbeat -- and the heartbeats are what tells it to do the work).","commit_id":"31b9fe267888aabddf5d52cecea7da3123d99167"},{"author":{"_account_id":36402,"name":"Boushra Sondos Bettir","display_name":"Boushra Sondos Bettir","email":"boushrab04@gmail.com","username":"boushrabettir"},"change_message_id":"c002d2a18b79434147a781b8103bffbf361ba589","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    cfg.IntOpt(\u0027ip_lookup_sleep\u0027,"},{"line_number":112,"context_line":"               min\u003d1,"},{"line_number":113,"context_line":"               max\u003d3600,"},{"line_number":114,"context_line":"               default\u003dint(APARAMS.get(\u0027ipa-ip-lookup-timeout\u0027, 10)),"},{"line_number":115,"context_line":"               help\u003d\u0027The amount of time to sleep between attempts \u0027"},{"line_number":116,"context_line":"                    \u0027to determine IP address. \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"f4914409_8c78430c","line":113,"in_reply_to":"b827cca4_6d9d5737","updated":"2023-10-21 05:22:32.000000000","message":"Done","commit_id":"31b9fe267888aabddf5d52cecea7da3123d99167"},{"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":"b961d0dffc22a0ae52d306e9471824f3dee24685","unresolved":true,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    cfg.IntOpt(\u0027lookup_interval\u0027,"},{"line_number":136,"context_line":"               min\u003d0,"},{"line_number":137,"context_line":"               max\u003d14400,"},{"line_number":138,"context_line":"               default\u003dint(APARAMS.get(\u0027ipa-lookup-interval\u0027, 1)),"},{"line_number":139,"context_line":"               help\u003d\u0027The initial interval for retries on the initial \u0027"},{"line_number":140,"context_line":"                    \u0027lookup call to Ironic. The interval will be \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"8d7773d0_b645bdfe","line":137,"updated":"2023-10-20 16:55:03.000000000","message":"Again, probably too much as it has to fit inside the various Ironic deployment timeouts; likely 30-60 is a good max here since it\u0027s doubled on each failure (and would get huge very quickly)","commit_id":"31b9fe267888aabddf5d52cecea7da3123d99167"},{"author":{"_account_id":36402,"name":"Boushra Sondos Bettir","display_name":"Boushra Sondos Bettir","email":"boushrab04@gmail.com","username":"boushrabettir"},"change_message_id":"c002d2a18b79434147a781b8103bffbf361ba589","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    cfg.IntOpt(\u0027lookup_interval\u0027,"},{"line_number":136,"context_line":"               min\u003d0,"},{"line_number":137,"context_line":"               max\u003d14400,"},{"line_number":138,"context_line":"               default\u003dint(APARAMS.get(\u0027ipa-lookup-interval\u0027, 1)),"},{"line_number":139,"context_line":"               help\u003d\u0027The initial interval for retries on the initial \u0027"},{"line_number":140,"context_line":"                    \u0027lookup call to Ironic. The interval will be \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"fc1986f5_5a5f4b02","line":137,"in_reply_to":"8d7773d0_b645bdfe","updated":"2023-10-21 05:22:32.000000000","message":"Done","commit_id":"31b9fe267888aabddf5d52cecea7da3123d99167"},{"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":"b961d0dffc22a0ae52d306e9471824f3dee24685","unresolved":true,"context_lines":[{"line_number":252,"context_line":"                     \u0027to the bare metal inspection service.\u0027),"},{"line_number":253,"context_line":"    cfg.IntOpt(\u0027introspection_daemon_post_interval\u0027,"},{"line_number":254,"context_line":"               default\u003d300,"},{"line_number":255,"context_line":"               min\u003d0,"},{"line_number":256,"context_line":"               help\u003d\u0027The interval in seconds by which to transmit data to \u0027"},{"line_number":257,"context_line":"                    \u0027the bare metal introspection service when the \u0027"},{"line_number":258,"context_line":"                    \u0027``ironic-collect-introspection-data`` program is \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"0db34bad_daaa2f7c","line":255,"updated":"2023-10-20 16:55:03.000000000","message":"This must be nonzero; you can read how this works in inspect.py, but essentially it has a construct that\u0027s roughly like this:\n\nwhile true:\n  send inspection data;\n  sleep(this_configured_interval)\n\nso with a value of 0, this kind of daemonized-process would continually run and monopolize IPA\u0027s performance. I\u0027m unsure, but I\u0027d suggest a value of 15 as a reasonable minimum for this. \n\nThis is a case, actually, where setting a minimum *will* prevent a deployer from doing a bad thing, so this will be a good improvement","commit_id":"31b9fe267888aabddf5d52cecea7da3123d99167"},{"author":{"_account_id":36402,"name":"Boushra Sondos Bettir","display_name":"Boushra Sondos Bettir","email":"boushrab04@gmail.com","username":"boushrabettir"},"change_message_id":"c002d2a18b79434147a781b8103bffbf361ba589","unresolved":false,"context_lines":[{"line_number":252,"context_line":"                     \u0027to the bare metal inspection service.\u0027),"},{"line_number":253,"context_line":"    cfg.IntOpt(\u0027introspection_daemon_post_interval\u0027,"},{"line_number":254,"context_line":"               default\u003d300,"},{"line_number":255,"context_line":"               min\u003d0,"},{"line_number":256,"context_line":"               help\u003d\u0027The interval in seconds by which to transmit data to \u0027"},{"line_number":257,"context_line":"                    \u0027the bare metal introspection service when the \u0027"},{"line_number":258,"context_line":"                    \u0027``ironic-collect-introspection-data`` program is \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"147b3bfc_2d84abf5","line":255,"in_reply_to":"0db34bad_daaa2f7c","updated":"2023-10-21 05:22:32.000000000","message":"Done","commit_id":"31b9fe267888aabddf5d52cecea7da3123d99167"},{"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":"b961d0dffc22a0ae52d306e9471824f3dee24685","unresolved":true,"context_lines":[{"line_number":286,"context_line":"                    \u0027an image. Does not affect the whole download.\u0027),"},{"line_number":287,"context_line":"    cfg.IntOpt(\u0027image_download_connection_retries\u0027,"},{"line_number":288,"context_line":"               min\u003d0,"},{"line_number":289,"context_line":"               max\u003d900,"},{"line_number":290,"context_line":"               default\u003dAPARAMS.get(\u0027ipa-image-download-connection-retries\u0027, 9),"},{"line_number":291,"context_line":"               help\u003d\u0027How many times to retry the connection when downloading \u0027"},{"line_number":292,"context_line":"                    \u0027an image. Also retries on failure HTTP statuses.\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3cbd1491_124d545a","line":289,"updated":"2023-10-20 16:55:03.000000000","message":"Again, we have a situation where retries are multiplied by an interval (potentially 900 * 1800) -- these are likely too high. I would suggest lowering the maxes here at least by an order of magnitude.","commit_id":"31b9fe267888aabddf5d52cecea7da3123d99167"},{"author":{"_account_id":36402,"name":"Boushra Sondos Bettir","display_name":"Boushra Sondos Bettir","email":"boushrab04@gmail.com","username":"boushrabettir"},"change_message_id":"c002d2a18b79434147a781b8103bffbf361ba589","unresolved":false,"context_lines":[{"line_number":286,"context_line":"                    \u0027an image. Does not affect the whole download.\u0027),"},{"line_number":287,"context_line":"    cfg.IntOpt(\u0027image_download_connection_retries\u0027,"},{"line_number":288,"context_line":"               min\u003d0,"},{"line_number":289,"context_line":"               max\u003d900,"},{"line_number":290,"context_line":"               default\u003dAPARAMS.get(\u0027ipa-image-download-connection-retries\u0027, 9),"},{"line_number":291,"context_line":"               help\u003d\u0027How many times to retry the connection when downloading \u0027"},{"line_number":292,"context_line":"                    \u0027an image. Also retries on failure HTTP statuses.\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"51d6b9ba_b92d8a30","line":289,"in_reply_to":"3cbd1491_124d545a","updated":"2023-10-21 05:22:32.000000000","message":"Done","commit_id":"31b9fe267888aabddf5d52cecea7da3123d99167"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2ea5cdf38fccbb968a5f8405b380e2ee1085bc31","unresolved":true,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    cfg.IntOpt(\u0027lookup_interval\u0027,"},{"line_number":136,"context_line":"               min\u003d0,"},{"line_number":137,"context_line":"               max\u003d50,"},{"line_number":138,"context_line":"               default\u003dint(APARAMS.get(\u0027ipa-lookup-interval\u0027, 1)),"},{"line_number":139,"context_line":"               help\u003d\u0027The initial interval for retries on the initial \u0027"},{"line_number":140,"context_line":"                    \u0027lookup call to Ironic. The interval will be \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"13e2778b_805fb8bc","line":137,"updated":"2023-11-06 14:05:08.000000000","message":"I\u0027ve seen some operators run this as high as 90 seconds to wait for network re-convergence to complete.","commit_id":"84434c778a736539e349d421278cb4b3985d7f4a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2ea5cdf38fccbb968a5f8405b380e2ee1085bc31","unresolved":true,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    cfg.IntOpt(\u0027disk_wait_attempts\u0027,"},{"line_number":211,"context_line":"               min\u003d0,"},{"line_number":212,"context_line":"               max\u003d86400,"},{"line_number":213,"context_line":"               default\u003dAPARAMS.get(\u0027ipa-disk-wait-attempts\u0027, 10),"},{"line_number":214,"context_line":"               help\u003d\u0027The number of times to try and check to see if \u0027"},{"line_number":215,"context_line":"                    \u0027at least one suitable disk has appeared in inventory \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"fbb6c91a_69cb087f","line":212,"updated":"2023-11-06 14:05:08.000000000","message":"This is not time, it is attempts. This would likely result in failed operations if set to this value. I\u0027d constrain it lower. I am also unaware of anyone ever needing to change this option.","commit_id":"84434c778a736539e349d421278cb4b3985d7f4a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2ea5cdf38fccbb968a5f8405b380e2ee1085bc31","unresolved":true,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    cfg.IntOpt(\u0027disk_wait_delay\u0027,"},{"line_number":221,"context_line":"               min\u003d0,"},{"line_number":222,"context_line":"               max\u003d300,"},{"line_number":223,"context_line":"               default\u003dAPARAMS.get(\u0027ipa-disk-wait-delay\u0027, 3),"},{"line_number":224,"context_line":"               help\u003d\u0027How much time (in seconds) to wait between attempts \u0027"},{"line_number":225,"context_line":"                    \u0027to check if at least one suitable disk has appeared \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"949bd66b_fe99da5d","line":222,"updated":"2023-11-06 14:05:08.000000000","message":"Nit: setting beyond 30 is unlikely.","commit_id":"84434c778a736539e349d421278cb4b3985d7f4a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2ea5cdf38fccbb968a5f8405b380e2ee1085bc31","unresolved":true,"context_lines":[{"line_number":279,"context_line":"                     \u0027setting to be changed to True in memory.\u0027),"},{"line_number":280,"context_line":"    cfg.IntOpt(\u0027image_download_connection_timeout\u0027,"},{"line_number":281,"context_line":"               min\u003d1,"},{"line_number":282,"context_line":"               max\u003d600,"},{"line_number":283,"context_line":"               default\u003dAPARAMS.get("},{"line_number":284,"context_line":"                   \u0027ipa-image-download-connection-timeout\u0027, 60),"},{"line_number":285,"context_line":"               help\u003d\u0027The connection timeout (in seconds) when downloading \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"d0747ce1_bbd4259d","line":282,"updated":"2023-11-06 14:05:08.000000000","message":"This is 10 minutes for an open TCP syn call. We could likely lower it.","commit_id":"84434c778a736539e349d421278cb4b3985d7f4a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2ea5cdf38fccbb968a5f8405b380e2ee1085bc31","unresolved":true,"context_lines":[{"line_number":350,"context_line":"    cfg.IntOpt(\u0027http_request_timeout\u0027,"},{"line_number":351,"context_line":"               default\u003dAPARAMS.get(\u0027ipa-http-request-timeout\u0027, 30),"},{"line_number":352,"context_line":"               min\u003d1,"},{"line_number":353,"context_line":"               max\u003d300,"},{"line_number":354,"context_line":"               help\u003d\u0027Time in seconds to wait for an HTTP request TCP socket \u0027"},{"line_number":355,"context_line":"                    \u0027used by an API request to a remote service to enter \u0027"},{"line_number":356,"context_line":"                    \u0027a state where a request can be transmitted.\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"4011e591_5533b1b5","line":353,"updated":"2023-11-06 14:05:08.000000000","message":"nit: This likely could be lower. It is 5 minutes when I believe most HTTP RFCs don\u0027t expect this to be able to be held open more than like 2.5 minutes.","commit_id":"84434c778a736539e349d421278cb4b3985d7f4a"}]}
