)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"9415835c2e3875731aa42741c5a6f8a93c7cab6c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Spec to add per instance timeout for LM"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add an API that allows operators to customize how long it takes for each"},{"line_number":10,"context_line":"live-migration operation to timeout, and if it would either fail or"},{"line_number":11,"context_line":"force-complete the operation."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I7265d1b8d3e293d34f295e995e514c5ef102874b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a30ddce_143e1eb8","line":10,"range":{"start_line":10,"start_character":60,"end_line":10,"end_character":64},"updated":"2017-03-08 19:51:47.000000000","message":"s/fail/abort","commit_id":"b75c43d20a940d29e71a1c2c3243dbb51a2f84d2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"9415835c2e3875731aa42741c5a6f8a93c7cab6c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Spec to add per instance timeout for LM"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add an API that allows operators to customize how long it takes for each"},{"line_number":10,"context_line":"live-migration operation to timeout, and if it would either fail or"},{"line_number":11,"context_line":"force-complete the operation."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I7265d1b8d3e293d34f295e995e514c5ef102874b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a30ddce_94512e11","line":10,"range":{"start_line":9,"start_character":46,"end_line":10,"end_character":24},"updated":"2017-03-08 19:51:47.000000000","message":"to customize time out for live migration operation","commit_id":"b75c43d20a940d29e71a1c2c3243dbb51a2f84d2"}],"specs/pike/approved/live-migration-per-instance-timeout.rst":[{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"9415835c2e3875731aa42741c5a6f8a93c7cab6c","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/live-migration-per-instance-timeout"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Add a new API to force complete any live-migration operation after a given"},{"line_number":14,"context_line":"timeout."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_25092e32","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":13},"updated":"2017-03-08 19:51:47.000000000","message":"Add a new micro version to live-migrate API?","commit_id":"b75c43d20a940d29e71a1c2c3243dbb51a2f84d2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"9415835c2e3875731aa42741c5a6f8a93c7cab6c","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/live-migration-per-instance-timeout"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Add a new API to force complete any live-migration operation after a given"},{"line_number":14,"context_line":"timeout."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_f4698abf","line":13,"range":{"start_line":13,"start_character":17,"end_line":13,"end_character":31},"updated":"2017-03-08 19:51:47.000000000","message":"Should be \u0027abort or force complete\u0027","commit_id":"b75c43d20a940d29e71a1c2c3243dbb51a2f84d2"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"47f8ba83229d0ffb6b379eb3b29daf0b4da6844f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"Add a new microversion to Live-Migrate Server API to add support for following"},{"line_number":36,"context_line":"parameters:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* ``timeout_interval`` - Optional parameter to specify time in seconds after"},{"line_number":39,"context_line":"  which nova will take actions on the given live-migration operation. This"},{"line_number":40,"context_line":"  will override the timer in config option"},{"line_number":41,"context_line":"  ``libvirt.live_migration_completion_timeout ``. Action will be based on"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_a3b40882","line":38,"updated":"2017-03-09 19:55:48.000000000","message":"nit...I think it\u0027d be better as just \"timeout\", or \"completion_timeout\".  The work \"interval\" usually implies something that happens more than once.","commit_id":"b75c43d20a940d29e71a1c2c3243dbb51a2f84d2"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"bd7bfab463b4dff17bcfc9a774c990b5799c0851","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  will override the timer in config option"},{"line_number":41,"context_line":"  ``libvirt.live_migration_completion_timeout ``. Action will be based on"},{"line_number":42,"context_line":"  other optional parameter listed below or config option"},{"line_number":43,"context_line":"  ``libvirt.live_migration_action_on_timeout`` config option. API parameter"},{"line_number":44,"context_line":"  will take precedence over config option."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* ``action_on_timeout`` - This optional parameter can be set to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_ffcfa37c","line":43,"updated":"2017-03-08 18:33:07.000000000","message":"while we\u0027re in here, do we want to consider enabling qemu auto-converge on a per-migration-request basis?","commit_id":"b75c43d20a940d29e71a1c2c3243dbb51a2f84d2"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"080d9d0e346c3a1d800883c9dc83e9ec5a916162","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  will override the timer in config option"},{"line_number":41,"context_line":"  ``libvirt.live_migration_completion_timeout ``. Action will be based on"},{"line_number":42,"context_line":"  other optional parameter listed below or config option"},{"line_number":43,"context_line":"  ``libvirt.live_migration_action_on_timeout`` config option. API parameter"},{"line_number":44,"context_line":"  will take precedence over config option."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* ``action_on_timeout`` - This optional parameter can be set to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_69f03768","line":43,"in_reply_to":"9a30ddce_ffcfa37c","updated":"2017-03-09 17:45:04.000000000","message":"@Chris: Not sure if we want to expose that level of details in the API, but lets wait on others for feedback.","commit_id":"b75c43d20a940d29e71a1c2c3243dbb51a2f84d2"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"47f8ba83229d0ffb6b379eb3b29daf0b4da6844f","unresolved":false,"context_lines":[{"line_number":43,"context_line":"  ``libvirt.live_migration_action_on_timeout`` config option. API parameter"},{"line_number":44,"context_line":"  will take precedence over config option."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* ``action_on_timeout`` - This optional parameter can be set to"},{"line_number":47,"context_line":"  ``force_complete`` or ``abort``. Nova will trigger the post-copy if enabled"},{"line_number":48,"context_line":"  or pause the VM to ensure it moves to destination if this parameter is set"},{"line_number":49,"context_line":"  to ``force_complete``. If set to ``abort``, live-migration will be aborted"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_a3424866","line":46,"range":{"start_line":46,"start_character":4,"end_line":46,"end_character":21},"updated":"2017-03-09 19:55:48.000000000","message":"nit...could be just \"timeout_action\" too.","commit_id":"b75c43d20a940d29e71a1c2c3243dbb51a2f84d2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"9415835c2e3875731aa42741c5a6f8a93c7cab6c","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"In the new microversion, minimum nova-compute service version in the deployment"},{"line_number":53,"context_line":"is checked for the support of new params else the requests fails at the API"},{"line_number":54,"context_line":"level. This is cover the upgrade cases where some compute nodes may not have"},{"line_number":55,"context_line":"been upgraded to the version that supports this new behavior."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_8519fa8a","line":54,"range":{"start_line":54,"start_character":7,"end_line":54,"end_character":20},"updated":"2017-03-08 19:51:47.000000000","message":"This covers*","commit_id":"b75c43d20a940d29e71a1c2c3243dbb51a2f84d2"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3db993aba609d1c53391d4dcfb3f6fdb221b8a59","unresolved":false,"context_lines":[{"line_number":27,"context_line":"---------"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"As an operator, I want flexibility to control per instance live-migration"},{"line_number":30,"context_line":"operation timeout and actions after that timer expires."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_534e4ec2","line":30,"updated":"2017-03-14 15:57:20.000000000","message":"For example...?\n\nI think we should include things like, operator knows these VMs usually only take 2 mins to live-migrate, so abort if it takes longer than that.\n\nThey know this one has to move, as the host needs to be rebooted, so force the live-migration it if it takes longer than 10 mins to live-migrate (i.e. pause the VM)","commit_id":"54b693e26371e6c7efb2306e63c9721248b54a31"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"80988609cfa7f8278417060f5e03e55dfd266c5d","unresolved":false,"context_lines":[{"line_number":27,"context_line":"---------"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"As an operator, I want flexibility to control per instance live-migration"},{"line_number":30,"context_line":"operation timeout and actions after that timer expires."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_b94bd9af","line":30,"in_reply_to":"3a1ff146_534e4ec2","updated":"2017-03-14 20:33:53.000000000","message":"Done","commit_id":"54b693e26371e6c7efb2306e63c9721248b54a31"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3db993aba609d1c53391d4dcfb3f6fdb221b8a59","unresolved":false,"context_lines":[{"line_number":38,"context_line":"* ``timeout`` - Optional parameter to specify time in seconds after which nova"},{"line_number":39,"context_line":"  will take actions on the given live-migration operation. This will override"},{"line_number":40,"context_line":"  the timer in config option ``libvirt.live_migration_completion_timeout``."},{"line_number":41,"context_line":"  Action will be based on other optional parameter listed below or config"},{"line_number":42,"context_line":"  option ``libvirt.live_migration_action_on_timeout`` config option. API"},{"line_number":43,"context_line":"  parameter will take precedence over config option."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* ``timeout_action`` - This optional parameter can be set to"},{"line_number":46,"context_line":"  ``force_complete`` or ``abort``. Nova will trigger the post-copy if enabled"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_9e2b6d33","line":43,"range":{"start_line":41,"start_character":2,"end_line":43,"end_character":52},"updated":"2017-03-14 15:57:20.000000000","message":"Ah, I think this bit probably wants to moved to the timeout_action.\n\nJust focus on how timeout overrides ``libvirt.live_migration_completion_timeout``","commit_id":"54b693e26371e6c7efb2306e63c9721248b54a31"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3db993aba609d1c53391d4dcfb3f6fdb221b8a59","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  the timer in config option ``libvirt.live_migration_completion_timeout``."},{"line_number":41,"context_line":"  Action will be based on other optional parameter listed below or config"},{"line_number":42,"context_line":"  option ``libvirt.live_migration_action_on_timeout`` config option. API"},{"line_number":43,"context_line":"  parameter will take precedence over config option."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* ``timeout_action`` - This optional parameter can be set to"},{"line_number":46,"context_line":"  ``force_complete`` or ``abort``. Nova will trigger the post-copy if enabled"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_b335c2f8","line":43,"updated":"2017-03-14 15:57:20.000000000","message":"What does this do to the time it takes to reach the max downtime of 500ms (or whatever they have chosen)? It feels like at timeout / 2 we should jump to the max downtime, and abandon the ramp up.\n\nMaybe thats over complicating things? Maybe we just abandon the ramp up if a user specifies a timeout?","commit_id":"54b693e26371e6c7efb2306e63c9721248b54a31"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"80988609cfa7f8278417060f5e03e55dfd266c5d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"* ``timeout`` - Optional parameter to specify time in seconds after which nova"},{"line_number":39,"context_line":"  will take actions on the given live-migration operation. This will override"},{"line_number":40,"context_line":"  the timer in config option ``libvirt.live_migration_completion_timeout``."},{"line_number":41,"context_line":"  Action will be based on other optional parameter listed below or config"},{"line_number":42,"context_line":"  option ``libvirt.live_migration_action_on_timeout`` config option. API"},{"line_number":43,"context_line":"  parameter will take precedence over config option."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* ``timeout_action`` - This optional parameter can be set to"},{"line_number":46,"context_line":"  ``force_complete`` or ``abort``. Nova will trigger the post-copy if enabled"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_39d609c6","line":43,"range":{"start_line":41,"start_character":2,"end_line":43,"end_character":52},"in_reply_to":"3a1ff146_9e2b6d33","updated":"2017-03-14 20:33:53.000000000","message":"Done","commit_id":"54b693e26371e6c7efb2306e63c9721248b54a31"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"80988609cfa7f8278417060f5e03e55dfd266c5d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  the timer in config option ``libvirt.live_migration_completion_timeout``."},{"line_number":41,"context_line":"  Action will be based on other optional parameter listed below or config"},{"line_number":42,"context_line":"  option ``libvirt.live_migration_action_on_timeout`` config option. API"},{"line_number":43,"context_line":"  parameter will take precedence over config option."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* ``timeout_action`` - This optional parameter can be set to"},{"line_number":46,"context_line":"  ``force_complete`` or ``abort``. Nova will trigger the post-copy if enabled"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_f9f2b16e","line":43,"in_reply_to":"3a1ff146_b335c2f8","updated":"2017-03-14 20:33:53.000000000","message":"This is complicated, lets talk in IRC as how to proceed.","commit_id":"54b693e26371e6c7efb2306e63c9721248b54a31"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3db993aba609d1c53391d4dcfb3f6fdb221b8a59","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  ``force_complete`` or ``abort``. Nova will trigger the post-copy if enabled"},{"line_number":47,"context_line":"  or pause the VM to ensure it moves to destination if this parameter is set"},{"line_number":48,"context_line":"  to ``force_complete``. If set to ``abort``, live-migration will be aborted"},{"line_number":49,"context_line":"  after timeout. API parameter will take precedence over config option."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"In the new microversion, minimum nova-compute service version in the deployment"},{"line_number":52,"context_line":"is checked for the support of new params else the requests fails at the API"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_de6de5cd","line":49,"updated":"2017-03-14 15:57:20.000000000","message":"Maybe talk about doing the abort of force_complete API. \n\nHmm I would move line 41-43 in here, i.e. say that timeout_action is overriding ``libvirt.live_migration_action_on_timeout``","commit_id":"54b693e26371e6c7efb2306e63c9721248b54a31"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"80988609cfa7f8278417060f5e03e55dfd266c5d","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  ``force_complete`` or ``abort``. Nova will trigger the post-copy if enabled"},{"line_number":47,"context_line":"  or pause the VM to ensure it moves to destination if this parameter is set"},{"line_number":48,"context_line":"  to ``force_complete``. If set to ``abort``, live-migration will be aborted"},{"line_number":49,"context_line":"  after timeout. API parameter will take precedence over config option."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"In the new microversion, minimum nova-compute service version in the deployment"},{"line_number":52,"context_line":"is checked for the support of new params else the requests fails at the API"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_5902e53f","line":49,"in_reply_to":"3a1ff146_de6de5cd","updated":"2017-03-14 20:33:53.000000000","message":"Done","commit_id":"54b693e26371e6c7efb2306e63c9721248b54a31"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3db993aba609d1c53391d4dcfb3f6fdb221b8a59","unresolved":false,"context_lines":[{"line_number":57,"context_line":"Alternatives"},{"line_number":58,"context_line":"------------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Keep using the existing options along with the ``force_complete`` migration"},{"line_number":61,"context_line":"API for each instance."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_bea589b6","line":60,"range":{"start_line":60,"start_character":47,"end_line":60,"end_character":65},"updated":"2017-03-14 15:57:20.000000000","message":"and abort","commit_id":"54b693e26371e6c7efb2306e63c9721248b54a31"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"80988609cfa7f8278417060f5e03e55dfd266c5d","unresolved":false,"context_lines":[{"line_number":57,"context_line":"Alternatives"},{"line_number":58,"context_line":"------------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Keep using the existing options along with the ``force_complete`` migration"},{"line_number":61,"context_line":"API for each instance."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_79ffa134","line":60,"range":{"start_line":60,"start_character":47,"end_line":60,"end_character":65},"in_reply_to":"3a1ff146_bea589b6","updated":"2017-03-14 20:33:53.000000000","message":"Done","commit_id":"54b693e26371e6c7efb2306e63c9721248b54a31"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3db993aba609d1c53391d4dcfb3f6fdb221b8a59","unresolved":false,"context_lines":[{"line_number":70,"context_line":"---------------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"A new microversion will be introduced to os-migrateLive API, which will take"},{"line_number":73,"context_line":"two additional and optional parameters ``timeout`` and ``timeout_action``."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Security impact"},{"line_number":76,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_7e9cf169","line":73,"updated":"2017-03-14 15:57:20.000000000","message":"Please give the json schema for the new API.","commit_id":"54b693e26371e6c7efb2306e63c9721248b54a31"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"80988609cfa7f8278417060f5e03e55dfd266c5d","unresolved":false,"context_lines":[{"line_number":70,"context_line":"---------------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"A new microversion will be introduced to os-migrateLive API, which will take"},{"line_number":73,"context_line":"two additional and optional parameters ``timeout`` and ``timeout_action``."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Security impact"},{"line_number":76,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_99fc5d40","line":73,"in_reply_to":"3a1ff146_7e9cf169","updated":"2017-03-14 20:33:53.000000000","message":"Done","commit_id":"54b693e26371e6c7efb2306e63c9721248b54a31"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"da90e4559b5ea829308783d0f28df8a4fc752e1a","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Notifications impact"},{"line_number":81,"context_line":"--------------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Add new notification for when we trigger the timeout."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Other end user impact"},{"line_number":86,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_d6178252","line":83,"range":{"start_line":83,"start_character":0,"end_line":83,"end_character":53},"updated":"2017-03-14 20:04:33.000000000","message":"It was already in the previous spec, why to add it again ?","commit_id":"54b693e26371e6c7efb2306e63c9721248b54a31"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3db993aba609d1c53391d4dcfb3f6fdb221b8a59","unresolved":false,"context_lines":[{"line_number":119,"context_line":"----------"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"* Add API to expose per operation force-timeout and actions"},{"line_number":122,"context_line":"* Add logic in libvirt to make use of these new paramters"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_be8ca936","line":122,"updated":"2017-03-14 15:57:20.000000000","message":"Nit: I think you want the reverse order here.","commit_id":"54b693e26371e6c7efb2306e63c9721248b54a31"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"80988609cfa7f8278417060f5e03e55dfd266c5d","unresolved":false,"context_lines":[{"line_number":119,"context_line":"----------"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"* Add API to expose per operation force-timeout and actions"},{"line_number":122,"context_line":"* Add logic in libvirt to make use of these new paramters"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_b9f91950","line":122,"in_reply_to":"3a1ff146_be8ca936","updated":"2017-03-14 20:33:53.000000000","message":"Done","commit_id":"54b693e26371e6c7efb2306e63c9721248b54a31"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f90acfc357864ac1b9c1cb084ba9d17abcf72378","unresolved":false,"context_lines":[{"line_number":125,"context_line":"Dependencies"},{"line_number":126,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"None"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_9e036d76","line":128,"updated":"2017-03-14 15:58:59.000000000","message":"I think you depend on the dependent spec, lets note that here, via the blueprint links.","commit_id":"54b693e26371e6c7efb2306e63c9721248b54a31"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"80988609cfa7f8278417060f5e03e55dfd266c5d","unresolved":false,"context_lines":[{"line_number":125,"context_line":"Dependencies"},{"line_number":126,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"None"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_d99415ea","line":128,"in_reply_to":"3a1ff146_9e036d76","updated":"2017-03-14 20:33:53.000000000","message":"Done","commit_id":"54b693e26371e6c7efb2306e63c9721248b54a31"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"445019a6bed49b42959cb42b4f13081d3e3a3030","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Add a new microversion to live-migrate API to abort or force complete any"},{"line_number":14,"context_line":"live-migration operation after a given timeout."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a1ced50_556d2b03","line":16,"updated":"2017-03-17 18:46:11.000000000","message":"Nit: blank space.","commit_id":"9d54b9d00008f1d92854a1e26d1e0d9561d0ebaf"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"445019a6bed49b42959cb42b4f13081d3e3a3030","unresolved":false,"context_lines":[{"line_number":23,"context_line":"to change the related config value to better fit and restart compute services"},{"line_number":24,"context_line":"which makes live-migration experience very unpleasant."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Second part of the problem is the rampup time to maximum downtime as specified"},{"line_number":27,"context_line":"in ``libvirt.live_migration_downtime``. Currently nova uses config options"},{"line_number":28,"context_line":"``live_migration_downtime_steps`` and ``live_migration_downtime_delay`` to"},{"line_number":29,"context_line":"to reach ``live_migration_downtime``. Idea over here is to try to move VM with"},{"line_number":30,"context_line":"minimum downtime and then keep on bumping downtime till we reach the maximum"},{"line_number":31,"context_line":"downtime for maximum possible liveness of VM. Problem is that in some cases we"},{"line_number":32,"context_line":"spend so much time in ramping up that VM is not left with enough time to move"},{"line_number":33,"context_line":"after ``live_migration_downtime`` is reached and main completion timeout"},{"line_number":34,"context_line":"``live_migration_completion_timeout`` expires after which live-migration"},{"line_number":35,"context_line":"operation is aborted. So we have to ensure VM have enough time after maximum"},{"line_number":36,"context_line":"downtime is reached and before completion timeout is hit."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Use Cases"},{"line_number":39,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a1ced50_b509ff33","line":36,"range":{"start_line":26,"start_character":0,"end_line":36,"end_character":57},"updated":"2017-03-17 18:46:11.000000000","message":"I find this a bit confusing, but I think I get what you are trying to say due to shared context.\n\nI would focus on the API. Something like:\n\nIf we specify and absolute timeout value, this will conflict with the way decide if a live-migration is able to complete. We slowly ramp up libvirt.live_migration_downtime to minimize the VM downtime. But we should ensure we reach the max downtime well before the timeout the admin has specified, to give the live-migration the best chance it can to succeed.\n\nDoes that make sense?","commit_id":"9d54b9d00008f1d92854a1e26d1e0d9561d0ebaf"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"445019a6bed49b42959cb42b4f13081d3e3a3030","unresolved":false,"context_lines":[{"line_number":41,"context_line":"* As an operator, I want the flexibility to control per instance live-migration"},{"line_number":42,"context_line":"  operation timeout and actions after that timer expires."},{"line_number":43,"context_line":"* Operators want to timebox live-migration operation on particular VM and abort"},{"line_number":44,"context_line":"  if it takes longer than that."},{"line_number":45,"context_line":"* Operators want to ensure that particular VM moves to destination, as the host"},{"line_number":46,"context_line":"  needs to be rebooted, so force the live-migration it if it takes longer than"},{"line_number":47,"context_line":"  certain time to live-migrate (i.e. pause the VM)."}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a1ced50_99043d16","line":44,"updated":"2017-03-17 18:46:11.000000000","message":"The key part I think, is operators know how long a typical instance takes to live migrate.","commit_id":"9d54b9d00008f1d92854a1e26d1e0d9561d0ebaf"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"445019a6bed49b42959cb42b4f13081d3e3a3030","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  needs to be rebooted, so force the live-migration it if it takes longer than"},{"line_number":47,"context_line":"  certain time to live-migrate (i.e. pause the VM)."},{"line_number":48,"context_line":"* Operators want to ensure that VM have enough time to move after"},{"line_number":49,"context_line":"  ``live_migration_downtime`` is reached."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Proposed change"},{"line_number":52,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a1ced50_7926a1bb","line":49,"updated":"2017-03-17 18:46:11.000000000","message":"This seems more like a set of observations than a set of use cases. If things don\u0027t fit into the use case, they should probably be mentioned in the problem description bit instead.\n\nI think these are the two use cases you are pointing at here:\n\n* operators know how long a live-migration for this type of VM should take, so it tells no so it can abort quicker.\n* operator really wants to move something, so after the typical timeout it wants for \"force\" the live-migration instead of aborting it.","commit_id":"9d54b9d00008f1d92854a1e26d1e0d9561d0ebaf"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"445019a6bed49b42959cb42b4f13081d3e3a3030","unresolved":false,"context_lines":[{"line_number":59,"context_line":"  the timer in the config option ``libvirt.live_migration_completion_timeout``."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* ``timeout_action`` - This optional parameter can be set to"},{"line_number":62,"context_line":"  ``force_complete`` or ``abort``. Nova will trigger the post-copy if enabled"},{"line_number":63,"context_line":"  or pause the VM to ensure it moves to destination if this parameter is set"},{"line_number":64,"context_line":"  to ``force_complete``. If set to ``abort``, live-migration will be aborted"},{"line_number":65,"context_line":"  after timeout. API parameter will take precedence over libvirt config option"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a1ced50_b97c9973","line":62,"range":{"start_line":62,"start_character":70,"end_line":62,"end_character":77},"updated":"2017-03-17 18:46:11.000000000","message":"enable and available.","commit_id":"9d54b9d00008f1d92854a1e26d1e0d9561d0ebaf"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"445019a6bed49b42959cb42b4f13081d3e3a3030","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  ``force_complete`` or ``abort``. Nova will trigger the post-copy if enabled"},{"line_number":63,"context_line":"  or pause the VM to ensure it moves to destination if this parameter is set"},{"line_number":64,"context_line":"  to ``force_complete``. If set to ``abort``, live-migration will be aborted"},{"line_number":65,"context_line":"  after timeout. API parameter will take precedence over libvirt config option"},{"line_number":66,"context_line":"  ``live_migration_action_on_timeout``."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"In the new microversion, minimum nova-compute service version in the deployment"},{"line_number":69,"context_line":"is checked for the support of new params else the requests fails at the API"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a1ced50_79822154","line":66,"range":{"start_line":65,"start_character":17,"end_line":66,"end_character":39},"updated":"2017-03-17 18:46:11.000000000","message":"I think the reverse is more important, if the parameter is not specified, the value of the config live_migration_action_on_timeout is used.","commit_id":"9d54b9d00008f1d92854a1e26d1e0d9561d0ebaf"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"445019a6bed49b42959cb42b4f13081d3e3a3030","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  ``live_migration_action_on_timeout``."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"In the new microversion, minimum nova-compute service version in the deployment"},{"line_number":69,"context_line":"is checked for the support of new params else the requests fails at the API"},{"line_number":70,"context_line":"level. This covers the upgrade cases where some compute nodes may not have"},{"line_number":71,"context_line":"been upgraded to the version that supports this new behavior."},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a1ced50_f9961193","line":69,"range":{"start_line":69,"start_character":59,"end_line":69,"end_character":64},"updated":"2017-03-17 18:46:11.000000000","message":"Lets be clear on the error, I assume its a 400 error.","commit_id":"9d54b9d00008f1d92854a1e26d1e0d9561d0ebaf"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"445019a6bed49b42959cb42b4f13081d3e3a3030","unresolved":false,"context_lines":[{"line_number":74,"context_line":"timeout in rampingup to maximum downtime and after that set downtime to"},{"line_number":75,"context_line":"``live_migration_downtime``. This will ensure VM will spend other half of"},{"line_number":76,"context_line":"completion timeout in moving with maximum downtime. It will increase chance of"},{"line_number":77,"context_line":"moving the VM to destination."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"NOTE: This rampup time proposal is for simplicity, plan is to work on follow up"},{"line_number":80,"context_line":"spec in next cycle to address the issues with more robust solution that will"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a1ced50_d9cf95ae","line":77,"updated":"2017-03-17 18:46:11.000000000","message":"Its worth noting this means the steps up are not smooth, the steps assume the usual ramp up time. We just override that logic when we hit half the timeout.","commit_id":"9d54b9d00008f1d92854a1e26d1e0d9561d0ebaf"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"445019a6bed49b42959cb42b4f13081d3e3a3030","unresolved":false,"context_lines":[{"line_number":76,"context_line":"completion timeout in moving with maximum downtime. It will increase chance of"},{"line_number":77,"context_line":"moving the VM to destination."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"NOTE: This rampup time proposal is for simplicity, plan is to work on follow up"},{"line_number":80,"context_line":"spec in next cycle to address the issues with more robust solution that will"},{"line_number":81,"context_line":"ensure live-migrate works out of the box for most of the cases. Refer to spec"},{"line_number":82,"context_line":"https://review.openstack.org/#/c/443339/."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Alternatives"},{"line_number":85,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a1ced50_99eefd20","line":82,"range":{"start_line":79,"start_character":0,"end_line":82,"end_character":41},"updated":"2017-03-17 18:46:11.000000000","message":"I would move this into alternatives.","commit_id":"9d54b9d00008f1d92854a1e26d1e0d9561d0ebaf"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"445019a6bed49b42959cb42b4f13081d3e3a3030","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        \"os-migrateLive\": {"},{"line_number":105,"context_line":"            \"host\": \"target-host\","},{"line_number":106,"context_line":"            \"block_migration\": \"auto\","},{"line_number":107,"context_line":"            \"timeout\": xx"},{"line_number":108,"context_line":"            \"timeout_action\": \"force_complete\" or \"abort\""},{"line_number":109,"context_line":"        }"},{"line_number":110,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a1ced50_b941f90d","line":107,"range":{"start_line":107,"start_character":23,"end_line":107,"end_character":25},"updated":"2017-03-17 18:46:11.000000000","message":"should this not be an integer?","commit_id":"9d54b9d00008f1d92854a1e26d1e0d9561d0ebaf"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"445019a6bed49b42959cb42b4f13081d3e3a3030","unresolved":false,"context_lines":[{"line_number":105,"context_line":"            \"host\": \"target-host\","},{"line_number":106,"context_line":"            \"block_migration\": \"auto\","},{"line_number":107,"context_line":"            \"timeout\": xx"},{"line_number":108,"context_line":"            \"timeout_action\": \"force_complete\" or \"abort\""},{"line_number":109,"context_line":"        }"},{"line_number":110,"context_line":"    }"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a1ced50_f94b7129","line":108,"range":{"start_line":108,"start_character":30,"end_line":108,"end_character":57},"updated":"2017-03-17 18:46:11.000000000","message":"I would keep the example as valid json, and just add the schema below.","commit_id":"9d54b9d00008f1d92854a1e26d1e0d9561d0ebaf"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"445019a6bed49b42959cb42b4f13081d3e3a3030","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"A new microversion will be introduced to os-migrateLive API, which will take"},{"line_number":113,"context_line":"two additional and optional parameters ``timeout`` and ``timeout_action``."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Security impact"},{"line_number":116,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a1ced50_59bc8505","line":113,"updated":"2017-03-17 18:46:11.000000000","message":"Can you please give the JSON schema for those parameters, so its clear.","commit_id":"9d54b9d00008f1d92854a1e26d1e0d9561d0ebaf"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"445019a6bed49b42959cb42b4f13081d3e3a3030","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Notifications impact"},{"line_number":121,"context_line":"--------------------"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Add new notification for when we trigger the timeout."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Other end user impact"},{"line_number":126,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a1ced50_795ea1ea","line":123,"range":{"start_line":123,"start_character":0,"end_line":123,"end_character":53},"updated":"2017-03-17 18:46:11.000000000","message":"I am not sure I would mess with the notifications. If you add one, we should describe what is in the payload. Lets look at that separately as a follow up.","commit_id":"9d54b9d00008f1d92854a1e26d1e0d9561d0ebaf"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1e1e33019e466a5de939c05928f5882824aef5a1","unresolved":false,"context_lines":[{"line_number":30,"context_line":"the VM would experience during live-migration."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"With current live-migrate API and config options, operators do not have any"},{"line_number":33,"context_line":"fine grain control on per instance live-migrate operations. If they want to"},{"line_number":34,"context_line":"treat any particular instance live-migrate operation different then they have"},{"line_number":35,"context_line":"to change the related config value to better fit and restart compute services"},{"line_number":36,"context_line":"which makes live-migration experience very unpleasant."}],"source_content_type":"text/x-rst","patch_set":16,"id":"dfeb2761_6e9ccd69","line":33,"updated":"2017-04-04 20:58:50.000000000","message":"s/any fine grain control on/fine-grained control over/","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"75144601795d5b66f06dc6247137bddf0af7e2b5","unresolved":false,"context_lines":[{"line_number":30,"context_line":"the VM would experience during live-migration."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"With current live-migrate API and config options, operators do not have any"},{"line_number":33,"context_line":"fine grain control on per instance live-migrate operations. If they want to"},{"line_number":34,"context_line":"treat any particular instance live-migrate operation different then they have"},{"line_number":35,"context_line":"to change the related config value to better fit and restart compute services"},{"line_number":36,"context_line":"which makes live-migration experience very unpleasant."}],"source_content_type":"text/x-rst","patch_set":16,"id":"dfeb2761_b496a84b","line":33,"in_reply_to":"dfeb2761_6e9ccd69","updated":"2017-04-04 22:18:28.000000000","message":"Done","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1e1e33019e466a5de939c05928f5882824aef5a1","unresolved":false,"context_lines":[{"line_number":33,"context_line":"fine grain control on per instance live-migrate operations. If they want to"},{"line_number":34,"context_line":"treat any particular instance live-migrate operation different then they have"},{"line_number":35,"context_line":"to change the related config value to better fit and restart compute services"},{"line_number":36,"context_line":"which makes live-migration experience very unpleasant."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Given the recent removal of the progress timeout, we have discussed with"},{"line_number":39,"context_line":"operators that they would like to customize the timeout per live-migration"}],"source_content_type":"text/x-rst","patch_set":16,"id":"dfeb2761_4e990977","line":36,"updated":"2017-04-04 20:58:50.000000000","message":"indeed.","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1e1e33019e466a5de939c05928f5882824aef5a1","unresolved":false,"context_lines":[{"line_number":54,"context_line":"``libvirt.live_migration_downtime_delay`` to decide how long to take before"},{"line_number":55,"context_line":"reaching ``libvirt.live_migration_downtime`` milliseconds of allowed VM"},{"line_number":56,"context_line":"downtime. Currently these configuration values must be carefully changed to it"},{"line_number":57,"context_line":"matches the value of ``libvirt.live_migration_completion_timeout``. If we allow"},{"line_number":58,"context_line":"operators to specify their own timeout value per live-migration operation, we"},{"line_number":59,"context_line":"must find a way to reconcile this with logic that ramps up the amount of"},{"line_number":60,"context_line":"allowed downtime before the live-migration is allowed to complete."}],"source_content_type":"text/x-rst","patch_set":16,"id":"dfeb2761_2e8c8534","line":57,"updated":"2017-04-04 20:58:50.000000000","message":"\"to it matches the value of\" doesn\u0027t make sense, and I\u0027m not entirely sure what you mean to say here? maybe \"until it matches the value of\"? Not sure...","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"75144601795d5b66f06dc6247137bddf0af7e2b5","unresolved":false,"context_lines":[{"line_number":54,"context_line":"``libvirt.live_migration_downtime_delay`` to decide how long to take before"},{"line_number":55,"context_line":"reaching ``libvirt.live_migration_downtime`` milliseconds of allowed VM"},{"line_number":56,"context_line":"downtime. Currently these configuration values must be carefully changed to it"},{"line_number":57,"context_line":"matches the value of ``libvirt.live_migration_completion_timeout``. If we allow"},{"line_number":58,"context_line":"operators to specify their own timeout value per live-migration operation, we"},{"line_number":59,"context_line":"must find a way to reconcile this with logic that ramps up the amount of"},{"line_number":60,"context_line":"allowed downtime before the live-migration is allowed to complete."}],"source_content_type":"text/x-rst","patch_set":16,"id":"dfeb2761_9493a45b","line":57,"in_reply_to":"dfeb2761_2e8c8534","updated":"2017-04-04 22:18:28.000000000","message":"Done","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1e1e33019e466a5de939c05928f5882824aef5a1","unresolved":false,"context_lines":[{"line_number":62,"context_line":"Use Cases"},{"line_number":63,"context_line":"---------"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"* Operators wants to patch a host and want to move all the VM\u0027s out of that"},{"line_number":66,"context_line":"  host. In this case they want to force a VM to move when timeout is reached"},{"line_number":67,"context_line":"  because they find the risk of possible needing to reboot the VM less"},{"line_number":68,"context_line":"  acceptable than pausing the VM to make it move."}],"source_content_type":"text/x-rst","patch_set":16,"id":"dfeb2761_0e91c14e","line":65,"updated":"2017-04-04 20:58:50.000000000","message":"s/wants to patch/want to patch/","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"75144601795d5b66f06dc6247137bddf0af7e2b5","unresolved":false,"context_lines":[{"line_number":62,"context_line":"Use Cases"},{"line_number":63,"context_line":"---------"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"* Operators wants to patch a host and want to move all the VM\u0027s out of that"},{"line_number":66,"context_line":"  host. In this case they want to force a VM to move when timeout is reached"},{"line_number":67,"context_line":"  because they find the risk of possible needing to reboot the VM less"},{"line_number":68,"context_line":"  acceptable than pausing the VM to make it move."}],"source_content_type":"text/x-rst","patch_set":16,"id":"dfeb2761_54999c76","line":65,"in_reply_to":"dfeb2761_0e91c14e","updated":"2017-04-04 22:18:28.000000000","message":"Done","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1e1e33019e466a5de939c05928f5882824aef5a1","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  operation with an option to cancel the operation when the timer expires."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* Operators want flexibility to force VM to move by pausing or triggering"},{"line_number":75,"context_line":"  post-copy."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Proposed change"},{"line_number":78,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":16,"id":"dfeb2761_ee81fdfc","line":75,"updated":"2017-04-04 20:58:50.000000000","message":"Not entirely sure this last use case is really a use case nor that it isn\u0027t entirely covered by the first two use cases. Probably good to just remove it.","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"75144601795d5b66f06dc6247137bddf0af7e2b5","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  operation with an option to cancel the operation when the timer expires."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* Operators want flexibility to force VM to move by pausing or triggering"},{"line_number":75,"context_line":"  post-copy."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Proposed change"},{"line_number":78,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":16,"id":"dfeb2761_348cd834","line":75,"in_reply_to":"dfeb2761_ee81fdfc","updated":"2017-04-04 22:18:28.000000000","message":"Done","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1e1e33019e466a5de939c05928f5882824aef5a1","unresolved":false,"context_lines":[{"line_number":86,"context_line":"  Note, unlike the configuration this is an absolute timeout, not one scaled up"},{"line_number":87,"context_line":"  to match the size of the VM."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* ``timeout_action`` - This optional parameter can be set to"},{"line_number":90,"context_line":"  ``force_complete`` or ``abort``. This will override the config option:"},{"line_number":91,"context_line":"  ``libvirt.live_migration_action_on_timeout``, that defaults to ``abort``."},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"dfeb2761_ce863914","line":89,"updated":"2017-04-04 20:58:50.000000000","message":"Another name for this parameter might be \"on_timeout\" so that it matches the similar config option.","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"75144601795d5b66f06dc6247137bddf0af7e2b5","unresolved":false,"context_lines":[{"line_number":86,"context_line":"  Note, unlike the configuration this is an absolute timeout, not one scaled up"},{"line_number":87,"context_line":"  to match the size of the VM."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* ``timeout_action`` - This optional parameter can be set to"},{"line_number":90,"context_line":"  ``force_complete`` or ``abort``. This will override the config option:"},{"line_number":91,"context_line":"  ``libvirt.live_migration_action_on_timeout``, that defaults to ``abort``."},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"dfeb2761_f481d0fc","line":89,"in_reply_to":"dfeb2761_ce863914","updated":"2017-04-04 22:18:28.000000000","message":"Done","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"07d5d7fa6f4fa6f2fa7a754cc49e2f0af9b5a053","unresolved":false,"context_lines":[{"line_number":90,"context_line":"  ``force_complete`` or ``abort``. This will override the config option:"},{"line_number":91,"context_line":"  ``libvirt.live_migration_action_on_timeout``, that defaults to ``abort``."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"To help upgrades, we return 400 for any requests that come in before all"},{"line_number":94,"context_line":"compute nodes have been upgraded to report at least the service version that"},{"line_number":95,"context_line":"matches when this feature was added."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"To address issue with ramp up time, we propose to spend half of the specified"},{"line_number":98,"context_line":"completion timeout ramping up to maximum downtime as normal. After that, we"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1a1ced50_bd7a5875","line":95,"range":{"start_line":93,"start_character":26,"end_line":95,"end_character":36},"updated":"2017-03-21 17:07:17.000000000","message":"Is this just for simplicity?  I think we technically only care about the source compute node service version since it\u0027s the one monitoring the migration.","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1e1e33019e466a5de939c05928f5882824aef5a1","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"To help upgrades, we return 400 for any requests that come in before all"},{"line_number":94,"context_line":"compute nodes have been upgraded to report at least the service version that"},{"line_number":95,"context_line":"matches when this feature was added."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"To address issue with ramp up time, we propose to spend half of the specified"},{"line_number":98,"context_line":"completion timeout ramping up to maximum downtime as normal. After that, we"}],"source_content_type":"text/x-rst","patch_set":16,"id":"dfeb2761_ae7f7513","line":95,"updated":"2017-04-04 20:58:50.000000000","message":"Probably worth being more explicit here and say \"we return 400 for any requests **containing either of the new timeout parameters** ...\"","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"bf868f8f30093113a9fe0dc8c5d0f4e1c63dfd4e","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"To help upgrades, we return 400 for any requests that come in before all"},{"line_number":94,"context_line":"compute nodes have been upgraded to report at least the service version that"},{"line_number":95,"context_line":"matches when this feature was added."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"To address issue with ramp up time, we propose to spend half of the specified"},{"line_number":98,"context_line":"completion timeout ramping up to maximum downtime as normal. After that, we"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1a1ced50_faf051ff","line":95,"in_reply_to":"1a1ced50_bd7a5875","updated":"2017-03-21 18:24:27.000000000","message":"Yes, simplicity is the goal. we use this flow in other specs as well, so want to be consistent.","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"ee8f6b1d905162008233a6c9b3ce3fc100ace2bb","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"To help upgrades, we return 400 for any requests that come in before all"},{"line_number":94,"context_line":"compute nodes have been upgraded to report at least the service version that"},{"line_number":95,"context_line":"matches when this feature was added."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"To address issue with ramp up time, we propose to spend half of the specified"},{"line_number":98,"context_line":"completion timeout ramping up to maximum downtime as normal. After that, we"}],"source_content_type":"text/x-rst","patch_set":16,"id":"ffe62b97_cf163756","line":95,"in_reply_to":"1a1ced50_faf051ff","updated":"2017-03-28 08:33:20.000000000","message":"I think it\u0027s OK, because during normal upgrade process source compute node wouldn\u0027t have such feature at that moment.","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"75144601795d5b66f06dc6247137bddf0af7e2b5","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"To help upgrades, we return 400 for any requests that come in before all"},{"line_number":94,"context_line":"compute nodes have been upgraded to report at least the service version that"},{"line_number":95,"context_line":"matches when this feature was added."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"To address issue with ramp up time, we propose to spend half of the specified"},{"line_number":98,"context_line":"completion timeout ramping up to maximum downtime as normal. After that, we"}],"source_content_type":"text/x-rst","patch_set":16,"id":"dfeb2761_d486cc13","line":95,"in_reply_to":"dfeb2761_ae7f7513","updated":"2017-04-04 22:18:28.000000000","message":"Done","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3afa28ab311f725046a325877c9352213b8df968","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"To help upgrades, we return 400 for any requests that come in before all"},{"line_number":94,"context_line":"compute nodes have been upgraded to report at least the service version that"},{"line_number":95,"context_line":"matches when this feature was added."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"To address issue with ramp up time, we propose to spend half of the specified"},{"line_number":98,"context_line":"completion timeout ramping up to maximum downtime as normal. After that, we"}],"source_content_type":"text/x-rst","patch_set":16,"id":"dfeb2761_e4a8078d","line":95,"in_reply_to":"ffe62b97_cf163756","updated":"2017-04-04 17:16:47.000000000","message":"You can have the API go first, so its possible, this just makes it clear thats not possible.","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1e1e33019e466a5de939c05928f5882824aef5a1","unresolved":false,"context_lines":[{"line_number":94,"context_line":"compute nodes have been upgraded to report at least the service version that"},{"line_number":95,"context_line":"matches when this feature was added."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"To address issue with ramp up time, we propose to spend half of the specified"},{"line_number":98,"context_line":"completion timeout ramping up to maximum downtime as normal. After that, we"},{"line_number":99,"context_line":"jump up to ``libvirt.live_migration_downtime``. This will ensure VM will spend"},{"line_number":100,"context_line":"half of the specified timeout with the best chance of letting live-migration"}],"source_content_type":"text/x-rst","patch_set":16,"id":"dfeb2761_8e7cb11f","line":97,"updated":"2017-04-04 20:58:50.000000000","message":"What is this \"issue with ramp up time\" that you speak of? I thought the timeout_seconds parameter was an absolute value, not a relative/weighted one like the configuration option live_migration_completion_timeout?","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"75144601795d5b66f06dc6247137bddf0af7e2b5","unresolved":false,"context_lines":[{"line_number":94,"context_line":"compute nodes have been upgraded to report at least the service version that"},{"line_number":95,"context_line":"matches when this feature was added."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"To address issue with ramp up time, we propose to spend half of the specified"},{"line_number":98,"context_line":"completion timeout ramping up to maximum downtime as normal. After that, we"},{"line_number":99,"context_line":"jump up to ``libvirt.live_migration_downtime``. This will ensure VM will spend"},{"line_number":100,"context_line":"half of the specified timeout with the best chance of letting live-migration"}],"source_content_type":"text/x-rst","patch_set":16,"id":"dfeb2761_b4e8e8e1","line":97,"in_reply_to":"dfeb2761_8e7cb11f","updated":"2017-04-04 22:18:28.000000000","message":"So issue is we want to make sure that VM gets enough time to move before completion timeout hits, if operators sets the completion timeout to a small number we should ensure that we don\u0027t spend all the time in ramping up. So plan is to spend half of completion timeout in ramping up and then just switch to max downtime for rest half of completion timeout. I know having all these timeouts and cfg value is confusing.","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"ee8f6b1d905162008233a6c9b3ce3fc100ace2bb","unresolved":false,"context_lines":[{"line_number":94,"context_line":"compute nodes have been upgraded to report at least the service version that"},{"line_number":95,"context_line":"matches when this feature was added."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"To address issue with ramp up time, we propose to spend half of the specified"},{"line_number":98,"context_line":"completion timeout ramping up to maximum downtime as normal. After that, we"},{"line_number":99,"context_line":"jump up to ``libvirt.live_migration_downtime``. This will ensure VM will spend"},{"line_number":100,"context_line":"half of the specified timeout with the best chance of letting live-migration"},{"line_number":101,"context_line":"complete without having to abort or force-complete."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Alternatives"},{"line_number":104,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"ffe62b97_fa541b00","line":101,"range":{"start_line":97,"start_character":0,"end_line":101,"end_character":51},"updated":"2017-03-28 08:33:20.000000000","message":"just for the sake of curiosity: why half, why not three quarters?)","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3afa28ab311f725046a325877c9352213b8df968","unresolved":false,"context_lines":[{"line_number":94,"context_line":"compute nodes have been upgraded to report at least the service version that"},{"line_number":95,"context_line":"matches when this feature was added."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"To address issue with ramp up time, we propose to spend half of the specified"},{"line_number":98,"context_line":"completion timeout ramping up to maximum downtime as normal. After that, we"},{"line_number":99,"context_line":"jump up to ``libvirt.live_migration_downtime``. This will ensure VM will spend"},{"line_number":100,"context_line":"half of the specified timeout with the best chance of letting live-migration"},{"line_number":101,"context_line":"complete without having to abort or force-complete."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Alternatives"},{"line_number":104,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"dfeb2761_a47f9f13","line":101,"range":{"start_line":97,"start_character":0,"end_line":101,"end_character":51},"in_reply_to":"ffe62b97_75900b44","updated":"2017-04-04 17:16:47.000000000","message":"So the setting only actually works on the next memory iteration after we update it, so its worth doing a touch sooner than you might first think.\n\nBut yeah, hoping to do a lot more testing on how best to tune that value.","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"d70291c7cbdfff7b53eeb8579b325256ddd60a10","unresolved":false,"context_lines":[{"line_number":94,"context_line":"compute nodes have been upgraded to report at least the service version that"},{"line_number":95,"context_line":"matches when this feature was added."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"To address issue with ramp up time, we propose to spend half of the specified"},{"line_number":98,"context_line":"completion timeout ramping up to maximum downtime as normal. After that, we"},{"line_number":99,"context_line":"jump up to ``libvirt.live_migration_downtime``. This will ensure VM will spend"},{"line_number":100,"context_line":"half of the specified timeout with the best chance of letting live-migration"},{"line_number":101,"context_line":"complete without having to abort or force-complete."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Alternatives"},{"line_number":104,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"ffe62b97_75900b44","line":101,"range":{"start_line":97,"start_character":0,"end_line":101,"end_character":51},"in_reply_to":"ffe62b97_fa541b00","updated":"2017-03-28 14:39:45.000000000","message":"So I followed a change from Pawel https://review.openstack.org/#/c/408002/. I think spending half time makes sense. But we would need more data to get the adequate number, so I will be working on a backlog spec to do that this cycle and further enhance LM strategy in next cycle. https://review.openstack.org/#/c/443339/","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1c0777e6a4bd63caa4d9e79c1558a39eb228c562","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    {"},{"line_number":148,"context_line":"        \"timeout_seconds\": {"},{"line_number":149,"context_line":"            \"type\": \"integer\","},{"line_number":150,"context_line":"            \"minimum\": 0"},{"line_number":151,"context_line":"        }"},{"line_number":152,"context_line":"    }"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"1a1ced50_0bac188b","line":150,"updated":"2017-03-21 12:04:33.000000000","message":"I wonder if we should have a higher minimum, although timouet_seconds\u003d0, timeout_action\u003d\"force_complete\" actually does make some sense.","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"07d5d7fa6f4fa6f2fa7a754cc49e2f0af9b5a053","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    {"},{"line_number":148,"context_line":"        \"timeout_seconds\": {"},{"line_number":149,"context_line":"            \"type\": \"integer\","},{"line_number":150,"context_line":"            \"minimum\": 0"},{"line_number":151,"context_line":"        }"},{"line_number":152,"context_line":"    }"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"1a1ced50_5dc4045e","line":150,"in_reply_to":"1a1ced50_0bac188b","updated":"2017-03-21 17:07:17.000000000","message":"Agreed, a timeout of 0 makes sense for the \"just get it over there now\" case.  A timeout of 1 doesn\u0027t really make sense though, but beyond that the line for what makes sense is somewhat arbitrary.","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"bf868f8f30093113a9fe0dc8c5d0f4e1c63dfd4e","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    {"},{"line_number":148,"context_line":"        \"timeout_seconds\": {"},{"line_number":149,"context_line":"            \"type\": \"integer\","},{"line_number":150,"context_line":"            \"minimum\": 0"},{"line_number":151,"context_line":"        }"},{"line_number":152,"context_line":"    }"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"1a1ced50_9ae2fd2d","line":150,"in_reply_to":"1a1ced50_5dc4045e","updated":"2017-03-21 18:24:27.000000000","message":"That is what I was thinking with 0, just trigger timeout_actions ASAP.","commit_id":"b984abdd9fc4ce734852d08f536db092afd04da6"}]}
