)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"69a7da8f31f930ee79b3d09dedcb6acdfeeeaac6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5afd7819_d65eb214","updated":"2022-04-01 09:56:03.000000000","message":"Does this mean that async/poll: 0 considered harmful in general?\n\nI thought such fire-and-forget(poll) sort of tasks are a standard pattern for things that might break ansible connectivity, like rebooting a server maybe...","commit_id":"0de10fd27ffdb1a77dcbe45ad81f472ff3e04133"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"752da8a1b1fe436994d8937d5f502a5e675d786e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"4e89bf4d_768fcb17","updated":"2022-04-01 09:52:14.000000000","message":"could you please specify what problem does this solve?","commit_id":"0de10fd27ffdb1a77dcbe45ad81f472ff3e04133"}],"common/deploy-steps-tasks.yaml":[{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"f1f2374ee4de50b727f96ae384e1bf91f487ef79","unresolved":true,"context_lines":[{"line_number":17,"context_line":"- name: Run puppet host configuration for step {{ step }}"},{"line_number":18,"context_line":"  become: true"},{"line_number":19,"context_line":"  async: 3600"},{"line_number":20,"context_line":"  poll: 0"},{"line_number":21,"context_line":"  when: enable_puppet|bool"},{"line_number":22,"context_line":"  shell: \u003e-"},{"line_number":23,"context_line":"    set -o pipefail;"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"2f45ee5f_0f725d69","side":"PARENT","line":20,"updated":"2022-03-31 20:23:55.000000000","message":"the value of async in some of these instances is that it starts all nodes in parallel, regardless of forks. as the tasks are running async, it is cheap to start all in parallel instead of relying on forks.","commit_id":"aa0cd8594f0ff059384b57c3c313ef085754d9a7"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"e378f9acfcd10574cc3a0ea6bb7fe046e618e634","unresolved":true,"context_lines":[{"line_number":17,"context_line":"- name: Run puppet host configuration for step {{ step }}"},{"line_number":18,"context_line":"  become: true"},{"line_number":19,"context_line":"  async: 3600"},{"line_number":20,"context_line":"  poll: 0"},{"line_number":21,"context_line":"  when: enable_puppet|bool"},{"line_number":22,"context_line":"  shell: \u003e-"},{"line_number":23,"context_line":"    set -o pipefail;"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"d8dbc804_507196c1","side":"PARENT","line":20,"in_reply_to":"2f45ee5f_0f725d69","updated":"2022-03-31 20:47:11.000000000","message":"In this case we\u0027re running one task, across potentially many machines, and then polling without running anything asynchronously in-between; so the task is blocking, obscuring results, and still subject to forks [0] (as well as SSH connection limitations).\n\n[0] https://docs.ansible.com/ansible/latest/user_guide/playbooks_async.html","commit_id":"aa0cd8594f0ff059384b57c3c313ef085754d9a7"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"95285d7bb3f4a352a27dcc607d8ed884fc045277","unresolved":true,"context_lines":[{"line_number":17,"context_line":"- name: Run puppet host configuration for step {{ step }}"},{"line_number":18,"context_line":"  become: true"},{"line_number":19,"context_line":"  async: 3600"},{"line_number":20,"context_line":"  poll: 0"},{"line_number":21,"context_line":"  when: enable_puppet|bool"},{"line_number":22,"context_line":"  shell: \u003e-"},{"line_number":23,"context_line":"    set -o pipefail;"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"54f9283d_9edf440f","side":"PARENT","line":20,"in_reply_to":"d8dbc804_507196c1","updated":"2022-04-01 09:53:02.000000000","message":"please submit a lp bug that explains that","commit_id":"aa0cd8594f0ff059384b57c3c313ef085754d9a7"}],"deployment/ovn/ovn-controller-container-puppet.yaml":[{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"8e063a5b50eef410456dfd95d1181e24d2847744","unresolved":true,"context_lines":[{"line_number":486,"context_line":"          loop: \"{{ groups[\u0027ovn_controller\u0027] }}\""},{"line_number":487,"context_line":"          delegate_to: \"{{ item }}\""},{"line_number":488,"context_line":"          async: {get_param: OVNControllerUpdateTimeout}"},{"line_number":489,"context_line":"          poll: 0"},{"line_number":490,"context_line":"          register: ovn_controller_update"},{"line_number":491,"context_line":"          ignore_errors: true"},{"line_number":492,"context_line":"          tripleo_container_manage:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"6214c937_f19f5cf0","side":"PARENT","line":489,"updated":"2022-04-01 09:57:21.000000000","message":"but here we do run tasks in between of the polling loop, so why would we want to remove async execution?","commit_id":"aa0cd8594f0ff059384b57c3c313ef085754d9a7"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"84987f393211ba0971a8d03a7c517f9f9d169772","unresolved":true,"context_lines":[{"line_number":486,"context_line":"          loop: \"{{ groups[\u0027ovn_controller\u0027] }}\""},{"line_number":487,"context_line":"          delegate_to: \"{{ item }}\""},{"line_number":488,"context_line":"          async: {get_param: OVNControllerUpdateTimeout}"},{"line_number":489,"context_line":"          poll: 0"},{"line_number":490,"context_line":"          register: ovn_controller_update"},{"line_number":491,"context_line":"          ignore_errors: true"},{"line_number":492,"context_line":"          tripleo_container_manage:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"ca7a1e63_9ce93bc9","side":"PARENT","line":489,"in_reply_to":"6214c937_f19f5cf0","updated":"2022-04-01 09:58:12.000000000","message":"...perhaps from another services/roles aggregated tasks for this step?","commit_id":"aa0cd8594f0ff059384b57c3c313ef085754d9a7"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"fab75bc26f8a00e26faa3a667eed9bce2ff7699c","unresolved":false,"context_lines":[{"line_number":486,"context_line":"          loop: \"{{ groups[\u0027ovn_controller\u0027] }}\""},{"line_number":487,"context_line":"          delegate_to: \"{{ item }}\""},{"line_number":488,"context_line":"          async: {get_param: OVNControllerUpdateTimeout}"},{"line_number":489,"context_line":"          poll: 0"},{"line_number":490,"context_line":"          register: ovn_controller_update"},{"line_number":491,"context_line":"          ignore_errors: true"},{"line_number":492,"context_line":"          tripleo_container_manage:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"2e050285_a34eefe0","side":"PARENT","line":489,"in_reply_to":"71242905_6e78a1c7","updated":"2022-04-01 14:46:52.000000000","message":"the point is what I explained in my first comment. If we have 1000 nodes, they are all running in parallel. Even though they were started in groups of forks, they are all fire and forget, so practically, they are all started near simultaneously and running in parallel.\n\nthe async_status then polls in groups of forks, waiting to see some finish, before checking new nodes for completeness as others finish. But still...all nodes are running in parallel. So they all finish at roughly the same time, and the async_status then all finish at roughly the same time, they are just checked in groups of forks. \n\nThis was proven in the scale lab where a performance improvement was seen. We can revisit dropping async for something else that offers better performance, but are reasoning needs to be clear. It does provide value with our current strategies.a","commit_id":"aa0cd8594f0ff059384b57c3c313ef085754d9a7"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"b19bf8b194292be8db95a0eb0af634bd401b61c9","unresolved":true,"context_lines":[{"line_number":486,"context_line":"          loop: \"{{ groups[\u0027ovn_controller\u0027] }}\""},{"line_number":487,"context_line":"          delegate_to: \"{{ item }}\""},{"line_number":488,"context_line":"          async: {get_param: OVNControllerUpdateTimeout}"},{"line_number":489,"context_line":"          poll: 0"},{"line_number":490,"context_line":"          register: ovn_controller_update"},{"line_number":491,"context_line":"          ignore_errors: true"},{"line_number":492,"context_line":"          tripleo_container_manage:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"ce979d2a_efca0dee","side":"PARENT","line":489,"in_reply_to":"ca7a1e63_9ce93bc9","updated":"2022-04-01 10:03:39.000000000","message":"Also according to the async docs https://docs.ansible.com/ansible/latest/user_guide/playbooks_async.html:\n\nIf you want to run multiple tasks in a playbook concurrently, use async with poll set to 0. When you set poll: 0, Ansible starts the task and immediately moves on to the next task without waiting for a result\n\nso, that wouldn\u0027t block as is, but it would as the changed code proposes","commit_id":"aa0cd8594f0ff059384b57c3c313ef085754d9a7"},{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"69bde690b3e511c6305cfa50ae502eda89d97f2b","unresolved":false,"context_lines":[{"line_number":486,"context_line":"          loop: \"{{ groups[\u0027ovn_controller\u0027] }}\""},{"line_number":487,"context_line":"          delegate_to: \"{{ item }}\""},{"line_number":488,"context_line":"          async: {get_param: OVNControllerUpdateTimeout}"},{"line_number":489,"context_line":"          poll: 0"},{"line_number":490,"context_line":"          register: ovn_controller_update"},{"line_number":491,"context_line":"          ignore_errors: true"},{"line_number":492,"context_line":"          tripleo_container_manage:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"71242905_6e78a1c7","side":"PARENT","line":489,"in_reply_to":"ce979d2a_efca0dee","updated":"2022-04-01 13:03:44.000000000","message":"it will block, just bellow, with the async_status.\nMeaning there\u0027s nothing in-between actually. We run the async, then go to the async_status, waiting for it to finish... What\u0027s the point actually?","commit_id":"aa0cd8594f0ff059384b57c3c313ef085754d9a7"}]}
