)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"357acfcb7bee9f0c4395b11f59faf04dcf3eb95d","unresolved":true,"context_lines":[{"line_number":36,"context_line":"     channel.close() because channel.is_closing\u003dTrue causes"},{"line_number":37,"context_line":"     dispatch_method() to drop all non-Close/CloseOk frames."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This was discovered during Cinder graceful shutdown testing where an"},{"line_number":40,"context_line":"RPC cast (create_volume) was lost during a rolling update simulation."},{"line_number":41,"context_line":"The message was sent to the backend-specific topic queue while both"},{"line_number":42,"context_line":"old and new services overlapped. Neither service processed it, leaving"},{"line_number":43,"context_line":"the volume stuck in \u0027creating\u0027 status indefinitely."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Fix: Call consumer.cancel(tag) for each registered consumer in"},{"line_number":46,"context_line":"stop_consuming(). This sends Basic.Cancel to the broker, which"},{"line_number":47,"context_line":"immediately stops message delivery and requeues any unacknowledged"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"6f58518d_7a1c9c56","line":44,"range":{"start_line":39,"start_character":0,"end_line":44,"end_character":0},"updated":"2026-06-25 21:37:19.000000000","message":"How does the consumer.cancel() helped here? I think Cinder scheduler always sends the volume creation request to a particular host (topic + host name), and other hosts (running cinder-volume service), even if they are listening to the same topic, cannot process it. So, whether consumer.cancel() is called during stop() or not, the volume creation request will timeout if the cinder-volume service on that host is not up within the RPC timeout. I mean old and new service does not server the same message of create_volume, create_volume request has to be made again if new service want to halde it.\n\nI am not against of calling canceling the consumer line during stop() but that will only help when messages are send to topic and not to particular host, means where there are multiple consumer presents and message can be avoided to send to shutting down consumer. For example, nova-conductor case where any of the nova-conductor worker can server the message from nova-compute. In that case, consumer.cancel() will really help to avoid the message timeout.\n\nThis is really good catch and fix but I would like to get clarification on cinder create_volume case. Accordingly you can add the info in commit message about it will fix the shared queue/multiple consumer case and not the single consumer case.","commit_id":"ef1ca0221078ec39d91115191bda70f7523bac9b"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"50fffff3dba1b5dd6d5503ec43a1162a36d48671","unresolved":true,"context_lines":[{"line_number":36,"context_line":"     channel.close() because channel.is_closing\u003dTrue causes"},{"line_number":37,"context_line":"     dispatch_method() to drop all non-Close/CloseOk frames."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This was discovered during Cinder graceful shutdown testing where an"},{"line_number":40,"context_line":"RPC cast (create_volume) was lost during a rolling update simulation."},{"line_number":41,"context_line":"The message was sent to the backend-specific topic queue while both"},{"line_number":42,"context_line":"old and new services overlapped. Neither service processed it, leaving"},{"line_number":43,"context_line":"the volume stuck in \u0027creating\u0027 status indefinitely."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Fix: Call consumer.cancel(tag) for each registered consumer in"},{"line_number":46,"context_line":"stop_consuming(). This sends Basic.Cancel to the broker, which"},{"line_number":47,"context_line":"immediately stops message delivery and requeues any unacknowledged"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7672c817_636c1ecc","line":44,"range":{"start_line":39,"start_character":0,"end_line":44,"end_character":0},"in_reply_to":"6f58518d_7a1c9c56","updated":"2026-10-06 20:07:06.000000000","message":"The use case is when Cinder adds graceful shutdown.  The idea is that cinder would put a running cinder volume service into a drain mode, to allow it\u0027s running volume operations to continue to completion while another cinder volume service starts up to take over the work.  The new cinder volume service would be servicing the same host and volumes as the one in drain.  Think k8s environment, where a pod is rescheduled to a different host.","commit_id":"ef1ca0221078ec39d91115191bda70f7523bac9b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c2554f73defbf664e4cda6684bea274e41930b60","unresolved":false,"context_lines":[{"line_number":36,"context_line":"     channel.close() because channel.is_closing\u003dTrue causes"},{"line_number":37,"context_line":"     dispatch_method() to drop all non-Close/CloseOk frames."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This was discovered during Cinder graceful shutdown testing where an"},{"line_number":40,"context_line":"RPC cast (create_volume) was lost during a rolling update simulation."},{"line_number":41,"context_line":"The message was sent to the backend-specific topic queue while both"},{"line_number":42,"context_line":"old and new services overlapped. Neither service processed it, leaving"},{"line_number":43,"context_line":"the volume stuck in \u0027creating\u0027 status indefinitely."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Fix: Call consumer.cancel(tag) for each registered consumer in"},{"line_number":46,"context_line":"stop_consuming(). This sends Basic.Cancel to the broker, which"},{"line_number":47,"context_line":"immediately stops message delivery and requeues any unacknowledged"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"b319ee82_bfb42b53","line":44,"range":{"start_line":39,"start_character":0,"end_line":44,"end_character":0},"in_reply_to":"7672c817_636c1ecc","updated":"2026-10-08 03:12:30.000000000","message":"I see so it is bringing the volume service on same host instead of host itself going down. make sense, thanks for the additional info.\n\nIt seems there is one bug reported for nova graceful shutdown also where we are seeing message coming after stop also - https://bugs.launchpad.net/nova/+bug/2169804\n\nmaybe this is related or maynot be if nova bug is not about message came after stop().","commit_id":"ef1ca0221078ec39d91115191bda70f7523bac9b"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5c8654d3c95c1929c3c79e7228d236aaa1da5bec","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ed4d804d_6e0dca7a","updated":"2026-10-07 03:04:26.000000000","message":"The change looks good to me. I do not vote my +A until gmaan agrees with the answer provided.\n\nI suppose that we need this for the new graceful shutdown support, but in case this could help existing implementations then we might want a bug and backports.\n\nIt may make sense to add functional tests to verify this behavior but I\u0027m OK with leaving that for potential follow-up.","commit_id":"ef1ca0221078ec39d91115191bda70f7523bac9b"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"51e9358b490eb70227d9d4af31280613c278d939","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7c596b94_e2715ae9","updated":"2026-04-25 05:02:39.000000000","message":"The logic makes sense to me","commit_id":"ef1ca0221078ec39d91115191bda70f7523bac9b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c2554f73defbf664e4cda6684bea274e41930b60","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"70791a4e_aca91666","updated":"2026-10-08 03:12:30.000000000","message":"lgtm, thanks for more info. Can you please add a releasenotes also about this fix. It seems nova graceful shutdown also hitting this issue or may hit in future so publishing this fix in release notes will be helpful.","commit_id":"ef1ca0221078ec39d91115191bda70f7523bac9b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"357acfcb7bee9f0c4395b11f59faf04dcf3eb95d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4d32ae84_333d2f1c","updated":"2026-06-25 21:37:19.000000000","message":"this is really nice and deep fix. thanks for that. One comment in commit msg to get clarification of your use case. Mostly to clarify about what all cases it will solve and not the single consumer/cinder create volume case.","commit_id":"ef1ca0221078ec39d91115191bda70f7523bac9b"}]}
