)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"61c341db80043227542f88e9c186264848fdab96","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5f4aef53_97e7c09c","updated":"2025-01-09 14:08:14.000000000","message":"\"we said in the upstream nova meeting we would prefer to first accept https://blueprints.launchpad.net/nova/+spec/distributed-host-discovery\"\n\nref: https://review.opendev.org/c/openstack/nova-specs/+/936389\n\n---\n\nAssuming that above will take-over this proposal, let\u0027s push that one, at least it has same initial consensus","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"a2ba8e90605336ffa14ba493a4af9c7020216f1d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"438ca3c2_0ab102ac","updated":"2025-05-14 09:53:24.000000000","message":"Thanks for submitting this spec, could you please add the link to the BP in the commit msg.","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"39feb1c5eb53601f06a2e9c0314a0b41d77fced5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"184c9c2c_0ea7efe4","in_reply_to":"5f4aef53_97e7c09c","updated":"2025-01-09 14:10:42.000000000","message":"lol, disregard that, lost-in-specs","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"ec75900f080fef486a4c99a80f3183eca1300ee0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2f4b901e_85ee4d19","updated":"2025-05-14 13:06:41.000000000","message":"Shall I request 2 minor changes:\n- Usually BP are requested in the form of `Related to blueprint vtpm-live-migration` in the commit msg so in your case: `Related to blueprint graceful-compute-shutdown`\n- Can you add a topic (branch) graceful-compute-shutdown for this spec.","commit_id":"14ba1c46f6ed2bcb2060c99748b9b86d78993929"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"14ecd7638019737338725d73f8b99c34f2445659","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"0e2a31f3_d8beae33","updated":"2025-10-20 18:31:05.000000000","message":"Adding some comment inline but let\u0027s discuss it in PTG","commit_id":"8d8a38328bfe300a726eae7308f5389fa5915973"}],"specs/2025.1/approved/graceful-compute-shutdown.rst":[{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"f4ec28922e1d95165fb4557f89869bf610ef0417","unresolved":true,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* I want to safely shutdown nova-compute services during maintenance"},{"line_number":33,"context_line":"* I want in-progress instance builds to be complete before shutdown"},{"line_number":34,"context_line":"* I want to avoid manual cleanup of failed instance builds"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"As a user:"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"798d0ba4_7ff14094","line":34,"updated":"2025-01-09 17:24:18.000000000","message":"This graceful shutdown is really helpful for the nova-compute\u0027s code update or config update case.\n\nOperator can disable nova-compute in advance in case of scheduled single hypervisor maintenance, e.g. hardware error. But a config update needs to be applied quickly. When the number of hypervisor is so big, over 1,000 HV, it\u0027s difficult to run the in advance disable operation to all hypervisor one by one.","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"4b3d4d069ec9b55333c88a8ba45d11913c9594ae","unresolved":true,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* I want to safely shutdown nova-compute services during maintenance"},{"line_number":33,"context_line":"* I want in-progress instance builds to be complete before shutdown"},{"line_number":34,"context_line":"* I want to avoid manual cleanup of failed instance builds"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"As a user:"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"15c2b4f6_61b30cb7","line":34,"in_reply_to":"798d0ba4_7ff14094","updated":"2025-01-09 17:29:27.000000000","message":"also consider a case when you control hypervisor but not workloads (VMs), selling VMs to customers","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"67ca0b2ceb5493cf5ffaf00452d9d284555c9afb","unresolved":true,"context_lines":[{"line_number":43,"context_line":"Implement graceful shutdown behavior for nova-compute using the"},{"line_number":44,"context_line":"following approach:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"1. Create a dedicated thread pool for instance spawning operations:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"   * Use eventlet.GreenPool for managing concurrent builds"},{"line_number":49,"context_line":"   * Size pool according to the max_concurrent_builds config option"}],"source_content_type":"text/x-rst","patch_set":3,"id":"e260e4b3_fef88c0c","line":46,"updated":"2024-12-05 16:18:27.000000000","message":"could you be a bit more specific of what operations is moved to the pool? If the pool is on the compute manager level then \"instance spawn\" is not something the compute manager knows about. E.g. an interface attach can also take time, but it is not a spawn operation not even on the virt driver level.","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d2c94f7042b8449632d18bf30b2f28a31824ea83","unresolved":true,"context_lines":[{"line_number":43,"context_line":"Implement graceful shutdown behavior for nova-compute using the"},{"line_number":44,"context_line":"following approach:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"1. Create a dedicated thread pool for instance spawning operations:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"   * Use eventlet.GreenPool for managing concurrent builds"},{"line_number":49,"context_line":"   * Size pool according to the max_concurrent_builds config option"}],"source_content_type":"text/x-rst","patch_set":3,"id":"de5914fe_108b3097","line":46,"in_reply_to":"268b9978_3eafc4da","updated":"2025-01-08 15:48:12.000000000","message":"\u003e seems like approach is very similar here https://review.opendev.org/c/openstack/nova/+/666245\n\u003e \n\u003e any idea why this ended up in limbo?\n\nAs far as I see @dms@danplanet.com had some comments about the interaction between the build_semaphore and the thread pool in https://review.opendev.org/c/openstack/nova/+/666245/20#message-8ba855107700a39a70c7d5e52ebd66310c00e705\n\nAnd @m@amadev.ru had comments about cleaning up after shutdown while instances waiting for vif plugged events via RPC at https://review.opendev.org/c/openstack/nova/+/666245/20#message-a133ce05aa0cfa321bc0351b1b68aed9db40f254\n\nI\u0027m not sure these issues where eventually resolved in that series or not.\n\n\u003e \"_locked_do_build_and_run_instance\" operation\n\nSo this will be a partial solution as not only the locked_do_build_and_run_instance operation can take a long time preventing a clean shutdown, but also migration, resize, shelve_offload, but even interface attach can take long time.","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"14ecd7638019737338725d73f8b99c34f2445659","unresolved":true,"context_lines":[{"line_number":43,"context_line":"Implement graceful shutdown behavior for nova-compute using the"},{"line_number":44,"context_line":"following approach:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"1. Create a dedicated thread pool for instance spawning operations:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"   * Use eventlet.GreenPool for managing concurrent builds"},{"line_number":49,"context_line":"   * Size pool according to the max_concurrent_builds config option"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9286ee68_b65b365a","line":46,"in_reply_to":"de5914fe_108b3097","updated":"2025-10-20 18:31:05.000000000","message":"++ on gibi point on considering the other in-progress operations also.\n\nTaking care of the new instance build request is one good candidate but not limited. At least, there should be a clear mention in this spec about what all operations will be handle as part of graceful shutdown.\n\nI am starting the list of things to handle (which is not complete but can be extended). I am ok to spread the implementation in phases if subset of list is preffered to implement on priorty). Also, some implementation ideas:\n\n1. Freeze the new operations (new instance as well as any new action/operation on existing instances):\n   1.1) No new instance:\n   - Reject incoming new instance buid request - covered in current spec\n   - My suggestion is to reject the request at API/scheduler level. Instead of rejecting the request at compute build operation level, we should update the service status to \u0027disabled\u0027 so that scheudler will filter out that node for scheduling the instance. If instance is requested with force host then also we can handle that at API level to see if host is not scheduled for shutdown.\n\n   1.2) No new action/operation on existing instances on shutdown-scheduled compute node:\n   - Reject the actions/operations by adding a flag (or some existying field if we can reuse) on all existing/in-progress instances DB to indicate that this instance is on host which scheduled to be shutdown so any operation on those instances are not accepted.\n   - Or we can monitor the InstanceAction from DB but there might be some operation which are not part of instance action.\n\n2. Graceful wait for ongoing operations:\n   2.1) Wait to finish in-progress instance creation:\n   - Covered in current spec\n   \n   2.2) Wait to finish any action/operations on existing instances (on that comupute node):\n   - monitor task_state (or InstanceAction) for all existing instances and if any task is going on then wait (until graceful shutdown timeout). Not sure we set task_state for attaching inrterface/volume but that can be exteneded.","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"798ae8bdc6f2e9724beb27fb0a028f02b4c5d978","unresolved":true,"context_lines":[{"line_number":43,"context_line":"Implement graceful shutdown behavior for nova-compute using the"},{"line_number":44,"context_line":"following approach:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"1. Create a dedicated thread pool for instance spawning operations:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"   * Use eventlet.GreenPool for managing concurrent builds"},{"line_number":49,"context_line":"   * Size pool according to the max_concurrent_builds config option"}],"source_content_type":"text/x-rst","patch_set":3,"id":"268b9978_3eafc4da","line":46,"in_reply_to":"e260e4b3_fef88c0c","updated":"2024-12-05 20:20:32.000000000","message":"\"_locked_do_build_and_run_instance\" operation\n\nseems like approach is very similar here https://review.opendev.org/c/openstack/nova/+/666245\n\nany idea why this ended up in limbo?","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bd46719c6f7598331b876da768cf8ddb962be8fd","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"1. Create a dedicated thread pool for instance spawning operations:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"   * Use eventlet.GreenPool for managing concurrent builds"},{"line_number":49,"context_line":"   * Size pool according to the max_concurrent_builds config option"},{"line_number":50,"context_line":"   * Track all spawning operations in this pool"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"b2a96950_10ae52fe","line":48,"updated":"2024-12-09 23:42:24.000000000","message":"we are trying to avoid new ueage of eventlet so im not sure this is a good idea.\nwe could use an executor form futurist but we dhoudl not directly use greenppols.\n\nallso boot is not the only rpc we need to medeate.\n\nwe can start any instance action durign the graceful shut down liek volume attch or resize.","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"14ecd7638019737338725d73f8b99c34f2445659","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"1. Create a dedicated thread pool for instance spawning operations:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"   * Use eventlet.GreenPool for managing concurrent builds"},{"line_number":49,"context_line":"   * Size pool according to the max_concurrent_builds config option"},{"line_number":50,"context_line":"   * Track all spawning operations in this pool"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"472902bd_0f9610fd","line":48,"in_reply_to":"1fe411b3_9c4686ba","updated":"2025-10-20 18:31:05.000000000","message":"++ on not using eventlet. \n\nInstead of monitoring counter per task, we can monitor the in-progress task on existing instances from task_state and reject all incoming new actions/operation.","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"f4ec28922e1d95165fb4557f89869bf610ef0417","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"1. Create a dedicated thread pool for instance spawning operations:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"   * Use eventlet.GreenPool for managing concurrent builds"},{"line_number":49,"context_line":"   * Size pool according to the max_concurrent_builds config option"},{"line_number":50,"context_line":"   * Track all spawning operations in this pool"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1fe411b3_9c4686ba","line":48,"in_reply_to":"b2a96950_10ae52fe","updated":"2025-01-09 17:24:18.000000000","message":"One idea is to introduce in-progress task counter instead of counting thread, IMO. When a task starts which should be tracked by the graceful shutdown, nova-compute increments the counter and nova-compute decrements the counter at end of the task. The graceful shutdown procedure keeps watching the counter, then the graceful shutdown ends if the counter is equal to 0.","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"67ca0b2ceb5493cf5ffaf00452d9d284555c9afb","unresolved":true,"context_lines":[{"line_number":52,"context_line":"2. Add graceful shutdown handling:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"   * Set compute_stopping flag when shutdown begins"},{"line_number":55,"context_line":"   * Reject new build requests during shutdown"},{"line_number":56,"context_line":"   * Wait for in-progress spawns to complete"},{"line_number":57,"context_line":"   * Respect graceful_shutdown_timeout from oslo.service"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"b778a192_bceb434a","line":55,"updated":"2024-12-05 16:18:27.000000000","message":"That is problematic. It will lead to failed VM lifecycle operations. I rather prevent nova-compute to take the new request from the message queue. So the request will be there to consume after the nova-compute restart.","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d2c94f7042b8449632d18bf30b2f28a31824ea83","unresolved":true,"context_lines":[{"line_number":52,"context_line":"2. Add graceful shutdown handling:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"   * Set compute_stopping flag when shutdown begins"},{"line_number":55,"context_line":"   * Reject new build requests during shutdown"},{"line_number":56,"context_line":"   * Wait for in-progress spawns to complete"},{"line_number":57,"context_line":"   * Respect graceful_shutdown_timeout from oslo.service"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"991dcb24_f0266691","line":55,"in_reply_to":"02455498_25668a66","updated":"2025-01-08 15:48:12.000000000","message":"We talked about in the past investigating what it takes to be able to stop consuming new RPC messages from the messag bus selectively. I.e. we want to stop consuming new build requests (and other VM lifecycle operations) while still be able to do RPC calls from the compute back to the conductor and get the response back to access the DB to finish the ongoing operations. So I suggest that if you have the time then look into this direction.","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"14ecd7638019737338725d73f8b99c34f2445659","unresolved":true,"context_lines":[{"line_number":52,"context_line":"2. Add graceful shutdown handling:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"   * Set compute_stopping flag when shutdown begins"},{"line_number":55,"context_line":"   * Reject new build requests during shutdown"},{"line_number":56,"context_line":"   * Wait for in-progress spawns to complete"},{"line_number":57,"context_line":"   * Respect graceful_shutdown_timeout from oslo.service"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"19845620_27b42133","line":55,"in_reply_to":"1ba76ec2_436cacb5","updated":"2025-10-20 18:31:05.000000000","message":"One idea I mentoned in my above comment that disable the comoute service to that no new build request will be coming there.","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"f4ec28922e1d95165fb4557f89869bf610ef0417","unresolved":true,"context_lines":[{"line_number":52,"context_line":"2. Add graceful shutdown handling:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"   * Set compute_stopping flag when shutdown begins"},{"line_number":55,"context_line":"   * Reject new build requests during shutdown"},{"line_number":56,"context_line":"   * Wait for in-progress spawns to complete"},{"line_number":57,"context_line":"   * Respect graceful_shutdown_timeout from oslo.service"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ba76ec2_436cacb5","line":55,"in_reply_to":"991dcb24_f0266691","updated":"2025-01-09 17:24:18.000000000","message":"I imagine the waiting in-progress task is done after or in the middle of the service stop operation, `nova.service.Service.stop()`. So the nova-compute\u0027s RPC server is already terminated and doesn\u0027t consume new messages during the garaceful shutdown period.","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"798ae8bdc6f2e9724beb27fb0a028f02b4c5d978","unresolved":true,"context_lines":[{"line_number":52,"context_line":"2. Add graceful shutdown handling:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"   * Set compute_stopping flag when shutdown begins"},{"line_number":55,"context_line":"   * Reject new build requests during shutdown"},{"line_number":56,"context_line":"   * Wait for in-progress spawns to complete"},{"line_number":57,"context_line":"   * Respect graceful_shutdown_timeout from oslo.service"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"02455498_25668a66","line":55,"in_reply_to":"b778a192_bceb434a","updated":"2024-12-05 20:20:32.000000000","message":"yea, this makes sense","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"67ca0b2ceb5493cf5ffaf00452d9d284555c9afb","unresolved":true,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"   * Set compute_stopping flag when shutdown begins"},{"line_number":55,"context_line":"   * Reject new build requests during shutdown"},{"line_number":56,"context_line":"   * Wait for in-progress spawns to complete"},{"line_number":57,"context_line":"   * Respect graceful_shutdown_timeout from oslo.service"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"3. Modify build_and_run_instance to:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"232e08a4_2f6a013e","line":56,"updated":"2024-12-05 16:18:27.000000000","message":"This also needs to be detailed out more. What happens e.g. with an in progress live migration?","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":37442,"name":"Serhii Ivanov","email":"evasive.gyron@gmail.com","username":"s3rj1k"},"change_message_id":"798ae8bdc6f2e9724beb27fb0a028f02b4c5d978","unresolved":true,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"   * Set compute_stopping flag when shutdown begins"},{"line_number":55,"context_line":"   * Reject new build requests during shutdown"},{"line_number":56,"context_line":"   * Wait for in-progress spawns to complete"},{"line_number":57,"context_line":"   * Respect graceful_shutdown_timeout from oslo.service"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"3. Modify build_and_run_instance to:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"295d767d_a6bd45a1","line":56,"in_reply_to":"232e08a4_2f6a013e","updated":"2024-12-05 20:20:32.000000000","message":"similar to this https://review.opendev.org/c/openstack/nova/+/666245\nonly handles instance creation\n\ngiven that there multiple similar attempts over the years (almost 5 years already) to fix this, should we go with a more generic spec proposal here?","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d2c94f7042b8449632d18bf30b2f28a31824ea83","unresolved":true,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"   * Set compute_stopping flag when shutdown begins"},{"line_number":55,"context_line":"   * Reject new build requests during shutdown"},{"line_number":56,"context_line":"   * Wait for in-progress spawns to complete"},{"line_number":57,"context_line":"   * Respect graceful_shutdown_timeout from oslo.service"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"3. Modify build_and_run_instance to:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c3d98b85_5b0a3015","line":56,"in_reply_to":"295d767d_a6bd45a1","updated":"2025-01-08 15:48:12.000000000","message":"It is a hard question. In the last year or so I got my fair share of motivation to eventually have the graceful shutdown story solved in nova due to the fact that I worked on a k8s based installer for nova in https://github.com/openstack-k8s-operators/nova-operator. So I\u0027m exposed to similar problems than you. However the priorities changed in a way that I was not able to do the RPC investigation I mentioned in my above comments yet. I still believe that if that direction is viable that could give us a better solution overall.","commit_id":"4ad1041c87b582096f48506318764f9318600cda"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"14ecd7638019737338725d73f8b99c34f2445659","unresolved":true,"context_lines":[{"line_number":155,"context_line":"Assignee(s)"},{"line_number":156,"context_line":"-----------"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Primary assignee:"},{"line_number":159,"context_line":"  None"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Other contributors:"},{"line_number":162,"context_line":"  None"},{"line_number":163,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"9d6382d0_a1ee1529","line":160,"range":{"start_line":158,"start_character":0,"end_line":160,"end_character":0},"updated":"2025-10-20 18:31:05.000000000","message":"we need to have at least one assignee on this. Something we can discussed in coming vPTG if implementation needs to be done by someone other than spec author.","commit_id":"8d8a38328bfe300a726eae7308f5389fa5915973"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"14ecd7638019737338725d73f8b99c34f2445659","unresolved":true,"context_lines":[{"line_number":183,"context_line":"Minimal testing changes are required:"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"* Adopt existing tests to the new workflow"},{"line_number":186,"context_line":"* Add a test that creates an instance and shuts down the compute"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Documentation Impact"},{"line_number":189,"context_line":"\u003d\u003d\u003d\u003d\u003d\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":"78f4df02_c5664f9e","line":186,"range":{"start_line":186,"start_character":6,"end_line":186,"end_character":13},"updated":"2025-10-20 18:31:05.000000000","message":"just to clarify that we need to add functional tests because tempest tests cannot touch the compute service so it is not testable in tempest. We can think of some test in whitebox-tempest-plugin though.","commit_id":"8d8a38328bfe300a726eae7308f5389fa5915973"}]}
