)]}'
{"specs/rocky/approved/abort-live-migration-in-queued-status.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3bd0f480a8a2f59371a6fc31dd9b779aa07eb922","unresolved":false,"context_lines":[{"line_number":67,"context_line":"  the current ``eventlet.spawn_n()`` + python ``Semaphore`` implementation."},{"line_number":68,"context_line":"  The size of the Thread Pool will be limited by"},{"line_number":69,"context_line":"  ``CONF.max_concurrent_live_migrations``. When a live migration request"},{"line_number":70,"context_line":"  came in, we submit the ``_do_live_migration`` calls to the pool, and it"},{"line_number":71,"context_line":"  will return a ``Future`` object, we will use that later. If the pool is"},{"line_number":72,"context_line":"  full, the new comming request will be blocked and kept in ``queued``"},{"line_number":73,"context_line":"  status."}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_93629d3d","line":70,"range":{"start_line":70,"start_character":2,"end_line":70,"end_character":6},"updated":"2018-04-12 16:02:45.000000000","message":"comes","commit_id":"21a9f34b41b2e5c9348314084f65c70f2f406c1a"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"efdbf51588ff25314a5bb9f3618da42607616c8f","unresolved":false,"context_lines":[{"line_number":67,"context_line":"  the current ``eventlet.spawn_n()`` + python ``Semaphore`` implementation."},{"line_number":68,"context_line":"  The size of the Thread Pool will be limited by"},{"line_number":69,"context_line":"  ``CONF.max_concurrent_live_migrations``. When a live migration request"},{"line_number":70,"context_line":"  came in, we submit the ``_do_live_migration`` calls to the pool, and it"},{"line_number":71,"context_line":"  will return a ``Future`` object, we will use that later. If the pool is"},{"line_number":72,"context_line":"  full, the new comming request will be blocked and kept in ``queued``"},{"line_number":73,"context_line":"  status."}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_37ba8fc0","line":70,"range":{"start_line":70,"start_character":2,"end_line":70,"end_character":6},"in_reply_to":"bf659307_93629d3d","updated":"2018-04-13 01:24:52.000000000","message":"Done","commit_id":"21a9f34b41b2e5c9348314084f65c70f2f406c1a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3bd0f480a8a2f59371a6fc31dd9b779aa07eb922","unresolved":false,"context_lines":[{"line_number":69,"context_line":"  ``CONF.max_concurrent_live_migrations``. When a live migration request"},{"line_number":70,"context_line":"  came in, we submit the ``_do_live_migration`` calls to the pool, and it"},{"line_number":71,"context_line":"  will return a ``Future`` object, we will use that later. If the pool is"},{"line_number":72,"context_line":"  full, the new comming request will be blocked and kept in ``queued``"},{"line_number":73,"context_line":"  status."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* Add a new ``_waiting_live_migration`` variable to the ``ComputeManager``"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_d31d75be","line":72,"range":{"start_line":72,"start_character":16,"end_line":72,"end_character":23},"updated":"2018-04-12 16:02:45.000000000","message":"s/comming//","commit_id":"21a9f34b41b2e5c9348314084f65c70f2f406c1a"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"efdbf51588ff25314a5bb9f3618da42607616c8f","unresolved":false,"context_lines":[{"line_number":69,"context_line":"  ``CONF.max_concurrent_live_migrations``. When a live migration request"},{"line_number":70,"context_line":"  came in, we submit the ``_do_live_migration`` calls to the pool, and it"},{"line_number":71,"context_line":"  will return a ``Future`` object, we will use that later. If the pool is"},{"line_number":72,"context_line":"  full, the new comming request will be blocked and kept in ``queued``"},{"line_number":73,"context_line":"  status."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* Add a new ``_waiting_live_migration`` variable to the ``ComputeManager``"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_57bdc3b4","line":72,"range":{"start_line":72,"start_character":16,"end_line":72,"end_character":23},"in_reply_to":"bf659307_d31d75be","updated":"2018-04-13 01:24:52.000000000","message":"Done","commit_id":"21a9f34b41b2e5c9348314084f65c70f2f406c1a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3bd0f480a8a2f59371a6fc31dd9b779aa07eb922","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"* The rpcapi interface will be modified to take migration object as parameter"},{"line_number":120,"context_line":"  thus we can make decision whether we can send rpc calls depend on target"},{"line_number":121,"context_line":"  compute version and migration status, we will still send migration.uuid in"},{"line_number":122,"context_line":"  the rpc call."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"* We will also add a cleanup to the pool when the compute manager is"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_b3cc8135","line":121,"range":{"start_line":121,"start_character":69,"end_line":121,"end_character":73},"updated":"2018-04-12 16:02:45.000000000","message":"migration.id:\n\nhttps://github.com/openstack/nova/blob/cbd67030d0a5c34e24da2d87363f0f46940462ca/nova/compute/api.py#L4314","commit_id":"21a9f34b41b2e5c9348314084f65c70f2f406c1a"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"efdbf51588ff25314a5bb9f3618da42607616c8f","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"* The rpcapi interface will be modified to take migration object as parameter"},{"line_number":120,"context_line":"  thus we can make decision whether we can send rpc calls depend on target"},{"line_number":121,"context_line":"  compute version and migration status, we will still send migration.uuid in"},{"line_number":122,"context_line":"  the rpc call."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"* We will also add a cleanup to the pool when the compute manager is"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_17b3cbea","line":121,"range":{"start_line":121,"start_character":69,"end_line":121,"end_character":73},"in_reply_to":"bf659307_b3cc8135","updated":"2018-04-13 01:24:52.000000000","message":"Hmm, yeah, since we can only do it in one cell now, so id will be OK I guess.","commit_id":"21a9f34b41b2e5c9348314084f65c70f2f406c1a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3bd0f480a8a2f59371a6fc31dd9b779aa07eb922","unresolved":false,"context_lines":[{"line_number":121,"context_line":"  compute version and migration status, we will still send migration.uuid in"},{"line_number":122,"context_line":"  the rpc call."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"* We will also add a cleanup to the pool when the compute manager is"},{"line_number":125,"context_line":"  shutting down. This can simply be done by calling"},{"line_number":126,"context_line":"  ``ThreadPoolExecutor.shutdown(wait\u003dFalse)``."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Alternatives"},{"line_number":129,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_1389adc8","line":126,"range":{"start_line":124,"start_character":0,"end_line":126,"end_character":46},"updated":"2018-04-12 16:02:45.000000000","message":"I\u0027m not sure if we want to add any more details to this per discussion here:\n\nhttps://review.openstack.org/#/c/536722/10/specs/rocky/approved/abort-live-migration-in-queued-status.rst@120\n\nI think some of that is just going to be trial-and-error during implementation. We know we don\u0027t want to block the shutdown of the service on queued migrations, so we want to set those migrations to \u0027cancelled\u0027 status, cancel() the queue Future so the pool shutdown doesn\u0027t block on it, and then we should be good. So I think the steps during cleanup_host are:\n\n1. shutdown the pool so we don\u0027t get new requests\n2. for any queued migrations, set the migration status to \u0027cancelled\u0027.\n3. cancel the future (Future.cancel()).\n\nSteps 2 and 3 might be interchangeable, I\u0027m not sure.","commit_id":"21a9f34b41b2e5c9348314084f65c70f2f406c1a"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"efdbf51588ff25314a5bb9f3618da42607616c8f","unresolved":false,"context_lines":[{"line_number":121,"context_line":"  compute version and migration status, we will still send migration.uuid in"},{"line_number":122,"context_line":"  the rpc call."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"* We will also add a cleanup to the pool when the compute manager is"},{"line_number":125,"context_line":"  shutting down. This can simply be done by calling"},{"line_number":126,"context_line":"  ``ThreadPoolExecutor.shutdown(wait\u003dFalse)``."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Alternatives"},{"line_number":129,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_37dfef0d","line":126,"range":{"start_line":124,"start_character":0,"end_line":126,"end_character":46},"in_reply_to":"bf659307_1389adc8","updated":"2018-04-13 01:24:52.000000000","message":"I can add them, just for easy reading while implementation :)","commit_id":"21a9f34b41b2e5c9348314084f65c70f2f406c1a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3bd0f480a8a2f59371a6fc31dd9b779aa07eb922","unresolved":false,"context_lines":[{"line_number":202,"context_line":"* Modify the rpcapi interface to take migration object as parameter"},{"line_number":203,"context_line":"  thus we can make decision whether we can send rpc calls depend on"},{"line_number":204,"context_line":"  target compute version and migration status."},{"line_number":205,"context_line":"* Modify the Novaclient to handle the new microversion."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"Dependencies"},{"line_number":208,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_d3e0159a","line":205,"range":{"start_line":205,"start_character":9,"end_line":205,"end_character":23},"updated":"2018-04-12 16:02:45.000000000","message":"python-novaclient","commit_id":"21a9f34b41b2e5c9348314084f65c70f2f406c1a"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"efdbf51588ff25314a5bb9f3618da42607616c8f","unresolved":false,"context_lines":[{"line_number":202,"context_line":"* Modify the rpcapi interface to take migration object as parameter"},{"line_number":203,"context_line":"  thus we can make decision whether we can send rpc calls depend on"},{"line_number":204,"context_line":"  target compute version and migration status."},{"line_number":205,"context_line":"* Modify the Novaclient to handle the new microversion."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"Dependencies"},{"line_number":208,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf659307_57e2a3d6","line":205,"range":{"start_line":205,"start_character":9,"end_line":205,"end_character":23},"in_reply_to":"bf659307_d3e0159a","updated":"2018-04-13 01:24:52.000000000","message":"Done","commit_id":"21a9f34b41b2e5c9348314084f65c70f2f406c1a"}]}
