)]}'
{"releasenotes/notes/eventlet-monkey-patch-5f734ef581aa550e.yaml":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d07a8de572d3f1c2cde00c2d6604d9b195464626","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    that reconnection will work properly. When threads \u003e 1, it is not"},{"line_number":17,"context_line":"    guaranteed that the thread that reconnects to rabbitmq will be the same"},{"line_number":18,"context_line":"    thread where the new request arrives. If the thread is not the same, the"},{"line_number":19,"context_line":"    new request will wait for the old, closed connection from the earlier, when"},{"line_number":20,"context_line":"    the wsgi app was paused and idle, and then eventually fail with a"},{"line_number":21,"context_line":"    ``MessagingTimeout`` error. So, it is necessary to have the wsgi app"},{"line_number":22,"context_line":"    configured with ``threads\u003d1`` for reconnection to work properly."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_78df9f68","line":19,"range":{"start_line":19,"start_character":62,"end_line":19,"end_character":65},"updated":"2019-05-30 01:42:25.000000000","message":"delete","commit_id":"c21b0495d9feeb8486924baabacb446e6292afe3"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"02f02340a736f4d25562391058a882922a8eb225","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    that reconnection will work properly. When threads \u003e 1, it is not"},{"line_number":17,"context_line":"    guaranteed that the thread that reconnects to rabbitmq will be the same"},{"line_number":18,"context_line":"    thread where the new request arrives. If the thread is not the same, the"},{"line_number":19,"context_line":"    new request will wait for the old, closed connection from the earlier, when"},{"line_number":20,"context_line":"    the wsgi app was paused and idle, and then eventually fail with a"},{"line_number":21,"context_line":"    ``MessagingTimeout`` error. So, it is necessary to have the wsgi app"},{"line_number":22,"context_line":"    configured with ``threads\u003d1`` for reconnection to work properly."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9fb8cfa7_7fe5b3a7","line":19,"range":{"start_line":19,"start_character":62,"end_line":19,"end_character":65},"in_reply_to":"9fb8cfa7_a2a3614f","updated":"2019-06-06 18:14:56.000000000","message":"Thanks Ken. I\u0027ll change this paragraph to try and paraphrase what you\u0027ve said since there could be multiple ways this could under eventlet + uWSGI/mod_wsgi.","commit_id":"c21b0495d9feeb8486924baabacb446e6292afe3"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"1da7689ec444b5b99b4a0d06dc5c0946ba641d4e","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    that reconnection will work properly. When threads \u003e 1, it is not"},{"line_number":17,"context_line":"    guaranteed that the thread that reconnects to rabbitmq will be the same"},{"line_number":18,"context_line":"    thread where the new request arrives. If the thread is not the same, the"},{"line_number":19,"context_line":"    new request will wait for the old, closed connection from the earlier, when"},{"line_number":20,"context_line":"    the wsgi app was paused and idle, and then eventually fail with a"},{"line_number":21,"context_line":"    ``MessagingTimeout`` error. So, it is necessary to have the wsgi app"},{"line_number":22,"context_line":"    configured with ``threads\u003d1`` for reconnection to work properly."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_bba3d1ff","line":19,"range":{"start_line":19,"start_character":62,"end_line":19,"end_character":65},"in_reply_to":"bfb3d3c7_78df9f68","updated":"2019-05-30 02:36:46.000000000","message":"Also might need to change this paragraph based on what Iain explained about how oslo.messaging uses two threads for a message, one for sending and one for replying. The issue might be that in the threads \u003e 1 case, if the thread that sends the message is not the same thread meant to reply, the reply thread might still be asleep/paused/whatever and in that case we never get our reply. When threads\u003d1, we are guaranteed to have the same awake thread send and reply. I don\u0027t know how to be 100% sure about this though. I\u0027ll try to get kgiusti to review this too.","commit_id":"c21b0495d9feeb8486924baabacb446e6292afe3"},{"author":{"_account_id":8770,"name":"Ken Giusti","email":"kgiusti@gmail.com","username":"kgiusti"},"change_message_id":"6c79c710c18ca13625d3ed53e87809a61a6bb181","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    that reconnection will work properly. When threads \u003e 1, it is not"},{"line_number":17,"context_line":"    guaranteed that the thread that reconnects to rabbitmq will be the same"},{"line_number":18,"context_line":"    thread where the new request arrives. If the thread is not the same, the"},{"line_number":19,"context_line":"    new request will wait for the old, closed connection from the earlier, when"},{"line_number":20,"context_line":"    the wsgi app was paused and idle, and then eventually fail with a"},{"line_number":21,"context_line":"    ``MessagingTimeout`` error. So, it is necessary to have the wsgi app"},{"line_number":22,"context_line":"    configured with ``threads\u003d1`` for reconnection to work properly."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9fb8cfa7_a2a3614f","line":19,"range":{"start_line":19,"start_character":62,"end_line":19,"end_character":65},"in_reply_to":"bfb3d3c7_bba3d1ff","updated":"2019-06-03 15:06:57.000000000","message":"I know that having multiple threads use the same oslo.messaging transport does allow any thread to re-create the connection.  However oslo.messaging does use threads internally - in addition to the heartbeat thread - for other things.  It may still fail in other ways if run under eventlet with and app that violates eventlets threading guarantees.","commit_id":"c21b0495d9feeb8486924baabacb446e6292afe3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d07a8de572d3f1c2cde00c2d6604d9b195464626","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    multiple cells to be serialized instead of running in parallel and this"},{"line_number":29,"context_line":"    may be undesirable in a large deployment with multiple cells, for"},{"line_number":30,"context_line":"    performance reasons."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Please see the following related bugs for more details:"},{"line_number":33,"context_line":"    https://bugs.launchpad.net/nova/+bug/1825584"},{"line_number":34,"context_line":"    https://bugs.launchpad.net/nova/+bug/1829062"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_b83f5785","line":31,"updated":"2019-05-30 01:42:25.000000000","message":"there are is at least one other workaround which is to run the nova-api without a wsgi server.\n\ne.g. use the setuptools consol script and run  nova-api with the built in python web server. this will still monkey patch the api but it will not have the reconnection issue as it will not be suspended.\n\nnot that the standalone nova-api sript does not have the same  perfomce as when it is executed under a wsgi server like uwsgi however in this configuration you can still deploy it behind a webserver like apache or nginx can be configured as a revers proxy to hanel termination of ssl loadblancing over multiple nova-api instance to achive the desired level of perfomance.","commit_id":"c21b0495d9feeb8486924baabacb446e6292afe3"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"02f02340a736f4d25562391058a882922a8eb225","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    multiple cells to be serialized instead of running in parallel and this"},{"line_number":29,"context_line":"    may be undesirable in a large deployment with multiple cells, for"},{"line_number":30,"context_line":"    performance reasons."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Please see the following related bugs for more details:"},{"line_number":33,"context_line":"    https://bugs.launchpad.net/nova/+bug/1825584"},{"line_number":34,"context_line":"    https://bugs.launchpad.net/nova/+bug/1829062"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9fb8cfa7_3f965bf2","line":31,"in_reply_to":"bfb3d3c7_07371e01","updated":"2019-06-06 18:14:56.000000000","message":"Ack, yes, good reminder. Will add that running the eventlet wsgi server is another good workaround.","commit_id":"c21b0495d9feeb8486924baabacb446e6292afe3"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"1da7689ec444b5b99b4a0d06dc5c0946ba641d4e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    multiple cells to be serialized instead of running in parallel and this"},{"line_number":29,"context_line":"    may be undesirable in a large deployment with multiple cells, for"},{"line_number":30,"context_line":"    performance reasons."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Please see the following related bugs for more details:"},{"line_number":33,"context_line":"    https://bugs.launchpad.net/nova/+bug/1825584"},{"line_number":34,"context_line":"    https://bugs.launchpad.net/nova/+bug/1829062"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_db7fa563","line":31,"in_reply_to":"bfb3d3c7_b83f5785","updated":"2019-05-30 02:36:46.000000000","message":"Is this the same as or different than running the eventlet wsgi servers that come with nova?\n\nhttps://github.com/openstack/nova/blob/master/nova/cmd/api_os_compute.py\n\nhttps://github.com/openstack/nova/blob/c6218428e9b29a2c52808ec7d27b4b21aadc0299/nova/cmd/api_metadata.py\n\nhttps://github.com/openstack/nova/blob/c6218428e9b29a2c52808ec7d27b4b21aadc0299/nova/cmd/api.py","commit_id":"c21b0495d9feeb8486924baabacb446e6292afe3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a6bb488b7741053defe15f312dc595789f8eb1ec","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    multiple cells to be serialized instead of running in parallel and this"},{"line_number":29,"context_line":"    may be undesirable in a large deployment with multiple cells, for"},{"line_number":30,"context_line":"    performance reasons."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    Please see the following related bugs for more details:"},{"line_number":33,"context_line":"    https://bugs.launchpad.net/nova/+bug/1825584"},{"line_number":34,"context_line":"    https://bugs.launchpad.net/nova/+bug/1829062"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bfb3d3c7_07371e01","line":31,"in_reply_to":"bfb3d3c7_db7fa563","updated":"2019-05-30 09:31:00.000000000","message":"its the same.\n\nthe console script entry points point to the main funciont of those moduels\n\nhttps://github.com/openstack/nova/blob/master/setup.cfg#L56-L58","commit_id":"c21b0495d9feeb8486924baabacb446e6292afe3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"418f9d43289640be34dc8ac78ca7957b79dfe9bf","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    So, it is necessary to have the wsgi app configured with ``threads\u003d1`` for"},{"line_number":24,"context_line":"    reconnection to work properly."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    If running with ``threads\u003d1`` is not an option in a particular environment,"},{"line_number":27,"context_line":"    there are two other workarounds:"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    * Use the eventlet wsgi server instead of uWSGI or mod_wsgi, or"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa7e38b_e5435fae","line":26,"updated":"2019-09-20 14:25:03.000000000","message":"Is disabling the rabbit heartbeat threshold an option?\n\nhttps://docs.openstack.org/nova/latest/configuration/config.html#oslo_messaging_rabbit.heartbeat_timeout_threshold\n\nI was just thinking about this because of this recent bug:\n\nhttps://bugs.launchpad.net/nova/+bug/1844152","commit_id":"74254d8b7952c1a1b28f415c515c39bcce217369"},{"author":{"_account_id":23561,"name":"iain MacDonnell","email":"iain.macdonnell@oracle.com","username":"imacdonn"},"change_message_id":"5a7da5d0ab76db2bc117a1a7f466daec3f4dbe53","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    So, it is necessary to have the wsgi app configured with ``threads\u003d1`` for"},{"line_number":24,"context_line":"    reconnection to work properly."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    If running with ``threads\u003d1`` is not an option in a particular environment,"},{"line_number":27,"context_line":"    there are two other workarounds:"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    * Use the eventlet wsgi server instead of uWSGI or mod_wsgi, or"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa7e38b_5f09d3da","line":26,"in_reply_to":"3fa7e38b_e5435fae","updated":"2019-09-21 00:34:39.000000000","message":"\u003e Is disabling the rabbit heartbeat threshold an option?\n \nI don\u0027t think so. Not doing heartbeats isn\u0027t going to make the connection any less dead - it\u0027ll just make it certain that the death won\u0027t be noticed until we try to use the connection, where now it may or may not be noticed, depending on threading. There are two aspects to the problem - the noisy messages (disabling heartbeats would solve that, I suppose), and attempting to use a dead connection, which causes messages to get blackholed...","commit_id":"74254d8b7952c1a1b28f415c515c39bcce217369"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"418f9d43289640be34dc8ac78ca7957b79dfe9bf","unresolved":false,"context_lines":[{"line_number":36,"context_line":"      may be undesirable in a large deployment with multiple cells, for"},{"line_number":37,"context_line":"      performance reasons."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    Please see the following related bugs for more details:"},{"line_number":40,"context_line":"    https://bugs.launchpad.net/nova/+bug/1825584"},{"line_number":41,"context_line":"    https://bugs.launchpad.net/nova/+bug/1829062"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa7e38b_852b8be9","line":41,"range":{"start_line":39,"start_character":4,"end_line":41,"end_character":48},"updated":"2019-09-20 14:25:03.000000000","message":"nit: Did you intend for this to render as a single line?\n\nhttps://99bf2271056ae706db89-afd92f42827c905443f6faed27a01096.ssl.cf2.rackcdn.com/662095/4/check/build-openstack-releasenotes/a622987/docs/stein.html#known-issues\n\nOr did you want a list format?","commit_id":"74254d8b7952c1a1b28f415c515c39bcce217369"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"438153516e02bf20e4dc7165d8ebafa4e57da649","unresolved":false,"context_lines":[{"line_number":36,"context_line":"      may be undesirable in a large deployment with multiple cells, for"},{"line_number":37,"context_line":"      performance reasons."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    Please see the following related bugs for more details:"},{"line_number":40,"context_line":"    https://bugs.launchpad.net/nova/+bug/1825584"},{"line_number":41,"context_line":"    https://bugs.launchpad.net/nova/+bug/1829062"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa7e38b_88adb7ea","line":41,"range":{"start_line":39,"start_character":4,"end_line":41,"end_character":48},"in_reply_to":"3fa7e38b_852b8be9","updated":"2019-09-24 03:16:46.000000000","message":"Ah no, didn’t intend for this to be a single line. Wanted line breaks or something like a list. Bullet points would work too. I can update this tomorrow or of course you are welcome to update. I’m on the road this week and next so I won’t be able to get to things as quickly.","commit_id":"74254d8b7952c1a1b28f415c515c39bcce217369"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cc33fc557c41e60be628f375b18ea2f0d187c58a","unresolved":false,"context_lines":[{"line_number":36,"context_line":"      may be undesirable in a large deployment with multiple cells, for"},{"line_number":37,"context_line":"      performance reasons."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    Please see the following related bugs for more details:"},{"line_number":40,"context_line":"    https://bugs.launchpad.net/nova/+bug/1825584"},{"line_number":41,"context_line":"    https://bugs.launchpad.net/nova/+bug/1829062"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa7e38b_85e835e2","line":41,"range":{"start_line":39,"start_character":4,"end_line":41,"end_character":48},"in_reply_to":"3fa7e38b_88adb7ea","updated":"2019-09-24 13:44:54.000000000","message":"Done","commit_id":"74254d8b7952c1a1b28f415c515c39bcce217369"}]}
