)]}'
{"etc/octavia.conf":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"a3dfdbbc81328062f1d8b073e1dd5ec0a680201e","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# Specify a timeout after which a gracefully shutdown server will exit. Zero"},{"line_number":20,"context_line":"# value means endless wait. (integer value)"},{"line_number":21,"context_line":"#graceful_shutdown_timeout \u003d 60"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"[api_settings]"},{"line_number":24,"context_line":"# bind_host \u003d 127.0.0.1"}],"source_content_type":"text/plain","patch_set":1,"id":"3fa7e38b_42375e00","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":31},"updated":"2019-09-26 15:41:28.000000000","message":"I guess the right place to add config option is octavia/common/config.py This file should be reconfigured from it.","commit_id":"c2a5700a8cc5b7db2b3d7e127f45371eb099dc38"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"dcdf1f4395fde4b6a5138264495996e3e234c99f","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# Specify a timeout after which a gracefully shutdown server will exit. Zero"},{"line_number":20,"context_line":"# value means endless wait. (integer value)"},{"line_number":21,"context_line":"#graceful_shutdown_timeout \u003d 60"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"[api_settings]"},{"line_number":24,"context_line":"# bind_host \u003d 127.0.0.1"}],"source_content_type":"text/plain","patch_set":1,"id":"3fa7e38b_a5765c6f","line":21,"range":{"start_line":21,"start_character":29,"end_line":21,"end_character":31},"updated":"2019-09-26 15:54:15.000000000","message":"We need to evaluate if 60 seconds is a good default or it should be changed to something different.","commit_id":"c2a5700a8cc5b7db2b3d7e127f45371eb099dc38"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"dcdf1f4395fde4b6a5138264495996e3e234c99f","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# Specify a timeout after which a gracefully shutdown server will exit. Zero"},{"line_number":20,"context_line":"# value means endless wait. (integer value)"},{"line_number":21,"context_line":"#graceful_shutdown_timeout \u003d 60"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"[api_settings]"},{"line_number":24,"context_line":"# bind_host \u003d 127.0.0.1"}],"source_content_type":"text/plain","patch_set":1,"id":"3fa7e38b_65be2400","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":31},"in_reply_to":"3fa7e38b_42375e00","updated":"2019-09-26 15:54:15.000000000","message":"+1. It seems this new intended option is not used anywhere.","commit_id":"c2a5700a8cc5b7db2b3d7e127f45371eb099dc38"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"b5f8157eb738e84189c92ec86ef96c6a5b6aa6dd","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# Specify a timeout after which a gracefully shutdown server will exit. Zero"},{"line_number":20,"context_line":"# value means endless wait. (integer value)"},{"line_number":21,"context_line":"#graceful_shutdown_timeout \u003d 60"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"[api_settings]"},{"line_number":24,"context_line":"# bind_host \u003d 127.0.0.1"}],"source_content_type":"text/plain","patch_set":1,"id":"3fa7e38b_cda5b6a3","line":21,"range":{"start_line":21,"start_character":29,"end_line":21,"end_character":31},"in_reply_to":"3fa7e38b_a5765c6f","updated":"2019-09-27 06:56:23.000000000","message":"graceful_shutdown_timeout is not an octavia config option but a cotyledon config option (see https://github.com/sileht/cotyledon/blob/master/cotyledon/oslo_config_glue.py#L29-L33). It controls the timeout of the .terminate() call.\nDefault value is set to 60 seconds by cotyledon.\n\nI added it in the configuration file to illustrate that updating this value may change Octavia service behaviors.\nDo you know any other place where I can add this option and description?","commit_id":"c2a5700a8cc5b7db2b3d7e127f45371eb099dc38"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"5ea8067b34ea6d097b13b5533a8e97f00d282763","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# Specify a timeout after which a gracefully shutdown server will exit. Zero"},{"line_number":20,"context_line":"# value means endless wait. (integer value)"},{"line_number":21,"context_line":"#graceful_shutdown_timeout \u003d 60"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"[api_settings]"},{"line_number":24,"context_line":"# bind_host \u003d 127.0.0.1"}],"source_content_type":"text/plain","patch_set":1,"id":"3fa7e38b_d77f7c63","line":21,"range":{"start_line":21,"start_character":29,"end_line":21,"end_character":31},"in_reply_to":"3fa7e38b_cda5b6a3","updated":"2019-09-27 10:35:55.000000000","message":"If you want to intoduce new option, please, add it in file octavia/common/config.py","commit_id":"c2a5700a8cc5b7db2b3d7e127f45371eb099dc38"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"d2fe1fa3014784464761ddd2f1c0bfdcd7eeeb2b","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# Specify a timeout after which a gracefully shutdown server will exit. Zero"},{"line_number":20,"context_line":"# value means endless wait. (integer value)"},{"line_number":21,"context_line":"#graceful_shutdown_timeout \u003d 60"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"[api_settings]"},{"line_number":24,"context_line":"# bind_host \u003d 127.0.0.1"}],"source_content_type":"text/plain","patch_set":1,"id":"3fa7e38b_e8c97925","line":21,"range":{"start_line":21,"start_character":29,"end_line":21,"end_character":31},"in_reply_to":"3fa7e38b_d77f7c63","updated":"2019-09-27 13:13:23.000000000","message":"I think I mis-explained my intentions here, this is not a new option, it was already available before my commit. It is used by one of our dependency modules (cotyledon), and the initialization code is called from https://opendev.org/openstack/octavia/src/commit/d7f0c819e376297989773c35f417fb3e0f2cd1e8/octavia/cmd/octavia_worker.py#L40","commit_id":"c2a5700a8cc5b7db2b3d7e127f45371eb099dc38"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"bbe5b998f7e868c3454706f003e247bdba861ff2","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# Specify a timeout after which a gracefully shutdown server will exit. Zero"},{"line_number":20,"context_line":"# value means endless wait. (integer value)"},{"line_number":21,"context_line":"#graceful_shutdown_timeout \u003d 60"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"[api_settings]"},{"line_number":24,"context_line":"# bind_host \u003d 127.0.0.1"}],"source_content_type":"text/plain","patch_set":1,"id":"3fa7e38b_0ed5fa43","line":21,"range":{"start_line":21,"start_character":29,"end_line":21,"end_character":31},"in_reply_to":"3fa7e38b_e8c97925","updated":"2019-09-27 16:20:56.000000000","message":"I think a problem here is that the config is auto generated. So you\u0027ll need to fix the generation.","commit_id":"c2a5700a8cc5b7db2b3d7e127f45371eb099dc38"}],"octavia/controller/queue/v1/consumer.py":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"5ea8067b34ea6d097b13b5533a8e97f00d282763","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self.server \u003d conf.host"},{"line_number":33,"context_line":"        self.endpoints \u003d []"},{"line_number":34,"context_line":"        self.access_policy \u003d dispatcher.DefaultRPCAccessPolicy"},{"line_number":35,"context_line":"        self.message_listener \u003d None"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def run(self):"},{"line_number":38,"context_line":"        LOG.info(\u0027Starting consumer...\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_b7a3e0ff","line":35,"updated":"2019-09-27 10:35:55.000000000","message":"I assume you need add here something like\n\n   self.graceful_shutdown_timeout \u003d CONF.controller_worker.graceful_shutdown_timeout","commit_id":"c2a5700a8cc5b7db2b3d7e127f45371eb099dc38"}],"releasenotes/notes/fix-worker-graceful-shutdown-c44b6797637aa1b3.yaml":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"adcf300d586867293b0b428d0431f9e13c7ccbc6","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix a bug that could interrupt resource creation when performing a graceful"},{"line_number":5,"context_line":"    shutdown of the controller worker and leave resources in a"},{"line_number":6,"context_line":"    PENDING_CREATE/PENDING_UPDATE/PENDING_DELETE provisioning status."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_451a08cc","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":69},"updated":"2019-09-26 16:10:12.000000000","message":"I run some testing on devstack with this change and it fixes the case if one loadbalancer is created/updated/failover during stop of worker, but if we have several operation running by worker, some of them still stay in PENDING state.\n\nThe piece of work to improve flow processing is have been started here https://storyboard.openstack.org/#!/story/2005072 and targeted for next release.","commit_id":"c2a5700a8cc5b7db2b3d7e127f45371eb099dc38"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"d2fe1fa3014784464761ddd2f1c0bfdcd7eeeb2b","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix a bug that could interrupt resource creation when performing a graceful"},{"line_number":5,"context_line":"    shutdown of the controller worker and leave resources in a"},{"line_number":6,"context_line":"    PENDING_CREATE/PENDING_UPDATE/PENDING_DELETE provisioning status."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_c8eb5d75","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":69},"in_reply_to":"3fa7e38b_37e370a6","updated":"2019-09-27 13:13:23.000000000","message":"Yes, it looks like 60 seconds is not enough.","commit_id":"c2a5700a8cc5b7db2b3d7e127f45371eb099dc38"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"b5f8157eb738e84189c92ec86ef96c6a5b6aa6dd","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix a bug that could interrupt resource creation when performing a graceful"},{"line_number":5,"context_line":"    shutdown of the controller worker and leave resources in a"},{"line_number":6,"context_line":"    PENDING_CREATE/PENDING_UPDATE/PENDING_DELETE provisioning status."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_8dc49e41","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":69},"in_reply_to":"3fa7e38b_451a08cc","updated":"2019-09-27 06:56:23.000000000","message":"You may have interrupted flows because of the 60 secs timeout, do you have the octavia-worker logs? It would be nice to have the duration between the first received SIGTERM and the termination of the worker, and between the start of the interrupted flow and the termination of the worker.\n\nThanks for working on this, it is an amazing job!","commit_id":"c2a5700a8cc5b7db2b3d7e127f45371eb099dc38"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"22bd2c7b0ce654958a7d02977a05b4ba823a49e6","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix a bug that could interrupt resource creation when performing a graceful"},{"line_number":5,"context_line":"    shutdown of the controller worker and leave resources in a"},{"line_number":6,"context_line":"    PENDING_CREATE/PENDING_UPDATE/PENDING_DELETE provisioning status."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_37e370a6","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":69},"in_reply_to":"3fa7e38b_5715cce3","updated":"2019-09-27 10:54:13.000000000","message":"Here is worker.log http://paste.openstack.org/show/779613/","commit_id":"c2a5700a8cc5b7db2b3d7e127f45371eb099dc38"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"d2fe1fa3014784464761ddd2f1c0bfdcd7eeeb2b","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix a bug that could interrupt resource creation when performing a graceful"},{"line_number":5,"context_line":"    shutdown of the controller worker and leave resources in a"},{"line_number":6,"context_line":"    PENDING_CREATE/PENDING_UPDATE/PENDING_DELETE provisioning status."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_e8f2d96f","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":69},"in_reply_to":"3fa7e38b_5715cce3","updated":"2019-09-27 13:13:23.000000000","message":"You\u0027re right, I will update the release note to add it","commit_id":"c2a5700a8cc5b7db2b3d7e127f45371eb099dc38"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"5ea8067b34ea6d097b13b5533a8e97f00d282763","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix a bug that could interrupt resource creation when performing a graceful"},{"line_number":5,"context_line":"    shutdown of the controller worker and leave resources in a"},{"line_number":6,"context_line":"    PENDING_CREATE/PENDING_UPDATE/PENDING_DELETE provisioning status."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_5715cce3","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":69},"in_reply_to":"3fa7e38b_8dc49e41","updated":"2019-09-27 10:35:55.000000000","message":"I just wanted to point out that it will be hard to find timeout that will suit all possible cases and although this change is a great improvement, we may still get PENDING resources left.","commit_id":"c2a5700a8cc5b7db2b3d7e127f45371eb099dc38"}],"tox.ini":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"97eef2eab64f8cbe755245ebc1beefb1a6fb79c2","unresolved":false,"context_lines":[{"line_number":127,"context_line":"         --namespace oslo.db \\"},{"line_number":128,"context_line":"         --namespace oslo.log \\"},{"line_number":129,"context_line":"         --namespace oslo.messaging \\"},{"line_number":130,"context_line":"         --namespace oslo.service.service \\"},{"line_number":131,"context_line":"         --namespace keystonemiddleware.auth_token"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"[testenv:genpolicy]"}],"source_content_type":"text/x-properties","patch_set":3,"id":"3fa7e38b_ff0fb82c","line":130,"updated":"2019-10-18 01:18:20.000000000","message":"Why do we add this? I don\u0027t see any new config we\u0027re doing in this section?","commit_id":"99028cb2c0e7288b6851b4662f5b8df9fa2f8eab"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"58598519442994cc11c08a8a850bb36ce559610b","unresolved":false,"context_lines":[{"line_number":127,"context_line":"         --namespace oslo.db \\"},{"line_number":128,"context_line":"         --namespace oslo.log \\"},{"line_number":129,"context_line":"         --namespace oslo.messaging \\"},{"line_number":130,"context_line":"         --namespace oslo.service.service \\"},{"line_number":131,"context_line":"         --namespace keystonemiddleware.auth_token"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"[testenv:genpolicy]"}],"source_content_type":"text/x-properties","patch_set":3,"id":"3fa7e38b_309d7657","line":130,"in_reply_to":"3fa7e38b_ff0fb82c","updated":"2019-10-18 14:57:45.000000000","message":"I added oslo.service.service in genconfig and docs because it generates config doc and sample config with the graceful_shutdown_timeout configuration value description.\nBut I found out that using \u0027cotyledon\u0027 namespace instead of \u0027oslo.service.service\u0027 is a better solution because we switched to cotyledon.\nUpdated in last patch set","commit_id":"99028cb2c0e7288b6851b4662f5b8df9fa2f8eab"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"d88c24dca1c057bbe592b3d332bc9ee0726f0f70","unresolved":false,"context_lines":[{"line_number":128,"context_line":"         --namespace oslo.log \\"},{"line_number":129,"context_line":"         --namespace oslo.messaging \\"},{"line_number":130,"context_line":"         --namespace keystonemiddleware.auth_token \\"},{"line_number":131,"context_line":"         --namespace cotyledon"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"[testenv:genpolicy]"},{"line_number":134,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3fa7e38b_0c8cb4d5","line":131,"updated":"2019-10-23 02:27:28.000000000","message":"Ok, but we\u0027re not actually using this section? You put the new option in \"[DEFAULT]\", not \"[cotyledon]\".","commit_id":"02fd186b454b35c8d66babe9427c6005fe10ae13"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"aba393e202be6bc7a749bb0dc6bbd508217f9e65","unresolved":false,"context_lines":[{"line_number":128,"context_line":"         --namespace oslo.log \\"},{"line_number":129,"context_line":"         --namespace oslo.messaging \\"},{"line_number":130,"context_line":"         --namespace keystonemiddleware.auth_token \\"},{"line_number":131,"context_line":"         --namespace cotyledon"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"[testenv:genpolicy]"},{"line_number":134,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3fa7e38b_b76d8b9a","line":131,"in_reply_to":"3fa7e38b_0c8cb4d5","updated":"2019-10-24 12:24:54.000000000","message":"\"--namespace cotyledon\" adds cotyledon options (such as graceful_shutdown_timeout) in the DEFAULT section (see https://github.com/sileht/cotyledon/blob/master/cotyledon/oslo_config_glue.py#L90)\n\nThe generated file starts with:\n\n\"\"\"\n[DEFAULT]\n\n#\n# From cotyledon\n#\n\n# Enables or disables logging values of all registered options when\n# starting a service (at DEBUG level). (boolean value)\n# Note: This option can be changed without restarting.\n#log_options \u003d true\n\n# Specify a timeout after which a gracefully shutdown server will\n# exit. Zero value means endless wait. (integer value)\n# Note: This option can be changed without restarting.\n#graceful_shutdown_timeout \u003d 60\n\"\"\"","commit_id":"02fd186b454b35c8d66babe9427c6005fe10ae13"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"3182e3bd0873c697304a0d3693dd01720310e0b2","unresolved":false,"context_lines":[{"line_number":128,"context_line":"         --namespace oslo.log \\"},{"line_number":129,"context_line":"         --namespace oslo.messaging \\"},{"line_number":130,"context_line":"         --namespace keystonemiddleware.auth_token \\"},{"line_number":131,"context_line":"         --namespace cotyledon"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"[testenv:genpolicy]"},{"line_number":134,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3fa7e38b_d024fb62","line":131,"in_reply_to":"3fa7e38b_b76d8b9a","updated":"2019-11-11 15:43:09.000000000","message":"... weird. Ok, guess that\u0027s a thing.","commit_id":"02fd186b454b35c8d66babe9427c6005fe10ae13"}]}
