)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"863f30395602bf9f1b8fb723d00c3f7f3f1a05eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f6702695_77ffa11e","updated":"2026-06-11 17:08:05.000000000","message":"Couple of comments.","commit_id":"d9257ddef232bf15aed7dc700fa2fa39ffc20116"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"96db9e5bb14eb251224f3f936121c2fd641ead28","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3657e063_e3e2980d","updated":"2026-06-17 20:52:04.000000000","message":"LGTM, thank you Goutham. Great addition and most scenarios are covered. We can hash out the remaining details in the implementation.","commit_id":"d9257ddef232bf15aed7dc700fa2fa39ffc20116"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"57caa65475dad1821da8e49e705d6435d44de1c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ad53d401_20c4a458","updated":"2026-06-18 13:12:25.000000000","message":"Let\u0027s get this in. Thanks for working on this spec, Goutham!","commit_id":"d9257ddef232bf15aed7dc700fa2fa39ffc20116"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a51d29b77ba638a27509a32ca5c941fff2c98c0a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5b461fc9_382b9dd4","updated":"2026-06-16 11:01:31.000000000","message":"Thanks Goutham for the replies. I think I am good with the spec.","commit_id":"d9257ddef232bf15aed7dc700fa2fa39ffc20116"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5f323f0d57332fe42a08ce96d3d1ebb9ca856858","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1b566fbf_eae50106","updated":"2026-06-15 17:26:18.000000000","message":"Thanks anoop, responses inline","commit_id":"d9257ddef232bf15aed7dc700fa2fa39ffc20116"}],"specs/release_independent/service-startup-reconciliation.rst":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"863f30395602bf9f1b8fb723d00c3f7f3f1a05eb","unresolved":true,"context_lines":[{"line_number":141,"context_line":"share instances), the reconciler retries the corresponding driver"},{"line_number":142,"context_line":"delete call. Delete operations are expected to be idempotent: if the"},{"line_number":143,"context_line":"resource was already removed, the driver should succeed or indicate"},{"line_number":144,"context_line":"the resource is gone. On success, mark ``deleted``. On failure, set"},{"line_number":145,"context_line":"``error_deleting`` (or ``error`` for share servers)."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"**Mark error (all resource types)**"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"cdc3b5fc_4909e4d1","line":145,"range":{"start_line":144,"start_character":52,"end_line":145,"end_character":52},"updated":"2026-06-11 17:08:05.000000000","message":"So this will not be force deleted? but the attempt to redelete on every cycle and still fail if something goes wrong on driver side?","commit_id":"d9257ddef232bf15aed7dc700fa2fa39ffc20116"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a51d29b77ba638a27509a32ca5c941fff2c98c0a","unresolved":false,"context_lines":[{"line_number":141,"context_line":"share instances), the reconciler retries the corresponding driver"},{"line_number":142,"context_line":"delete call. Delete operations are expected to be idempotent: if the"},{"line_number":143,"context_line":"resource was already removed, the driver should succeed or indicate"},{"line_number":144,"context_line":"the resource is gone. On success, mark ``deleted``. On failure, set"},{"line_number":145,"context_line":"``error_deleting`` (or ``error`` for share servers)."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"**Mark error (all resource types)**"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"b9a27586_cd48b36e","line":145,"range":{"start_line":144,"start_character":52,"end_line":145,"end_character":52},"in_reply_to":"a8602456_4e41b1be","updated":"2026-06-16 11:01:31.000000000","message":"Acknowledged.","commit_id":"d9257ddef232bf15aed7dc700fa2fa39ffc20116"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5f323f0d57332fe42a08ce96d3d1ebb9ca856858","unresolved":false,"context_lines":[{"line_number":141,"context_line":"share instances), the reconciler retries the corresponding driver"},{"line_number":142,"context_line":"delete call. Delete operations are expected to be idempotent: if the"},{"line_number":143,"context_line":"resource was already removed, the driver should succeed or indicate"},{"line_number":144,"context_line":"the resource is gone. On success, mark ``deleted``. On failure, set"},{"line_number":145,"context_line":"``error_deleting`` (or ``error`` for share servers)."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"**Mark error (all resource types)**"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"a8602456_4e41b1be","line":145,"range":{"start_line":144,"start_character":52,"end_line":145,"end_character":52},"in_reply_to":"cdc3b5fc_4909e4d1","updated":"2026-06-15 17:26:18.000000000","message":"Yes, it wouldn\u0027t be automatically force deleted because we don\u0027t understand the failure - we\u0027ll log it though; administrators (by virtue of default RBAC) can trigger the force deletion if they need to. By transitioning a resource out of the \"deleting\" state, we\u0027ve prevented a future reconciliation.. \n\nWe can reconsider this if folks prefer retries.. but, reconciliation only happens at startup.. I\u0027ve added \"Periodic reconciliation loop\" to the alternatives discussion..","commit_id":"d9257ddef232bf15aed7dc700fa2fa39ffc20116"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"863f30395602bf9f1b8fb723d00c3f7f3f1a05eb","unresolved":true,"context_lines":[{"line_number":200,"context_line":"``ensuring`` status; this reconciliation processes shares in"},{"line_number":201,"context_line":"transient statuses. Neither will act on a resource the other is"},{"line_number":202,"context_line":"handling. The reconciliation thread starts after"},{"line_number":203,"context_line":"``ensure_driver_resources()`` completes, but the two can also run"},{"line_number":204,"context_line":"independently (e.g., if the ensure shares API is invoked later)"},{"line_number":205,"context_line":"without interference."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"Active/Active HA coordination"}],"source_content_type":"text/x-rst","patch_set":1,"id":"468d6314_66ebc6a8","line":204,"range":{"start_line":203,"start_character":41,"end_line":204,"end_character":13},"updated":"2026-06-11 17:08:05.000000000","message":"Will this create race conditions between the ensure share using states that are being updated by reconciliation thread?","commit_id":"d9257ddef232bf15aed7dc700fa2fa39ffc20116"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5f323f0d57332fe42a08ce96d3d1ebb9ca856858","unresolved":true,"context_lines":[{"line_number":200,"context_line":"``ensuring`` status; this reconciliation processes shares in"},{"line_number":201,"context_line":"transient statuses. Neither will act on a resource the other is"},{"line_number":202,"context_line":"handling. The reconciliation thread starts after"},{"line_number":203,"context_line":"``ensure_driver_resources()`` completes, but the two can also run"},{"line_number":204,"context_line":"independently (e.g., if the ensure shares API is invoked later)"},{"line_number":205,"context_line":"without interference."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"Active/Active HA coordination"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba228f9d_d40af38d","line":204,"range":{"start_line":203,"start_character":41,"end_line":204,"end_character":13},"in_reply_to":"468d6314_66ebc6a8","updated":"2026-06-15 17:26:18.000000000","message":"it shouldn\u0027t. They both look at different resources based on the statuses. \"ensuring\" is a transitional state that\u0027ll not be handled within this new reconciliation logic.\n\nDo you mean a race condition during reconciliation? So something going from \"creating\" to \"available\" and getting picked up by \"ensure_driver_resources\"? (if that happens, it\u0027s not going to break anything)","commit_id":"d9257ddef232bf15aed7dc700fa2fa39ffc20116"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a51d29b77ba638a27509a32ca5c941fff2c98c0a","unresolved":false,"context_lines":[{"line_number":200,"context_line":"``ensuring`` status; this reconciliation processes shares in"},{"line_number":201,"context_line":"transient statuses. Neither will act on a resource the other is"},{"line_number":202,"context_line":"handling. The reconciliation thread starts after"},{"line_number":203,"context_line":"``ensure_driver_resources()`` completes, but the two can also run"},{"line_number":204,"context_line":"independently (e.g., if the ensure shares API is invoked later)"},{"line_number":205,"context_line":"without interference."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"Active/Active HA coordination"}],"source_content_type":"text/x-rst","patch_set":1,"id":"16ae0361_2ce39fe8","line":204,"range":{"start_line":203,"start_character":41,"end_line":204,"end_character":13},"in_reply_to":"ba228f9d_d40af38d","updated":"2026-06-16 11:01:31.000000000","message":"Acknowledged","commit_id":"d9257ddef232bf15aed7dc700fa2fa39ffc20116"}]}
