)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"5539b61e484c616abf2f0663d3c62becba250ec9","unresolved":true,"context_lines":[{"line_number":10,"context_line":"With this fix, we have enhanced it to handle multiple"},{"line_number":11,"context_line":"paths."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: If09b206f719645c1358868ae7ae1422982f732f5"},{"line_number":14,"context_line":"Signed-off-by: hemanthc \u003chemanthc@netapp.com\u003e"},{"line_number":15,"context_line":"Signed-off-by: Dr. Jens Harbott \u003charbott@osism.tech\u003e"},{"line_number":16,"context_line":"(cherry picked from commit 73496e3b2eb52722ef19ecc693a7313ef8cb4273)"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"2d88cac0_cbe8af35","line":13,"updated":"2026-09-17 03:23:26.000000000","message":"Please add Closes-Bug: 2121791 before the Change-Id.\n\nThe documenation already cites LP#2121791; the commit message does not","commit_id":"7c87536b3b3698c602e2e5a3f9e560211c007954"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"a4d02e9d4aad25447f579797f239adbc34ab910f","unresolved":true,"context_lines":[{"line_number":10,"context_line":"With this fix, we have enhanced it to handle multiple"},{"line_number":11,"context_line":"paths."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: If09b206f719645c1358868ae7ae1422982f732f5"},{"line_number":14,"context_line":"Signed-off-by: hemanthc \u003chemanthc@netapp.com\u003e"},{"line_number":15,"context_line":"Signed-off-by: Dr. Jens Harbott \u003charbott@osism.tech\u003e"},{"line_number":16,"context_line":"(cherry picked from commit 73496e3b2eb52722ef19ecc693a7313ef8cb4273)"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"b7a067b9_254b5792","line":13,"in_reply_to":"2d88cac0_cbe8af35","updated":"2026-09-25 09:28:45.000000000","message":"I\u0027m not sure one should edit cherry-picks like this, but feel free to amend the change if you deem it necessary","commit_id":"7c87536b3b3698c602e2e5a3f9e560211c007954"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"956d3fc8ca2389341c6d6e60d9c65960091af975","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ccd17bfa_3b9f65c2","updated":"2026-10-12 13:40:47.000000000","message":"I am ok to backport this, \nthis is a clean backport of the upstream fix.  and the functional change and unit test are correct NetApp NVMe/TCP now returns all target portals for multipath connections.\n\nthe remaining comments are metadata/docs improvements and should be addressed on master, not block this stable backport.","commit_id":"7c87536b3b3698c602e2e5a3f9e560211c007954"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"4206abb65f2a497eb930921485757e366a21e37d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"91d9002c_25d54f73","updated":"2026-09-12 11:42:15.000000000","message":"I hope that now that rc1 is done, there will be a bit more time for cinder reviewers to look at stable branches","commit_id":"7c87536b3b3698c602e2e5a3f9e560211c007954"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"9901f9e88d751cee8dfbce7e4a87e4eb894e9cb8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"84703d87_be1cda2b","updated":"2026-09-12 18:59:19.000000000","message":"LGTM. Thanks for the backporting. IMO this should be a high priority backport for NetApp driver.","commit_id":"7c87536b3b3698c602e2e5a3f9e560211c007954"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"f57a69a5560effd18a1c8ec4559b74f68198e3c7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5c530187_f3c20a83","updated":"2026-10-13 13:06:54.000000000","message":"Looks clean to me as well, in agreement with Amit.","commit_id":"7c87536b3b3698c602e2e5a3f9e560211c007954"},{"author":{"_account_id":23084,"name":"Bartosz Bezak","email":"bartosz@stackhpc.com","username":"b.bezak"},"change_message_id":"1a3c6a90f5c05aea35bd35009b5dde654b16c27c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"461560a6_347515ad","updated":"2026-09-08 08:53:30.000000000","message":"is there a plan of back porting this fix? It seems useful to land it into SLURP Gazpacho release","commit_id":"7c87536b3b3698c602e2e5a3f9e560211c007954"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"fd253926c6c635dd9d33ee8ee0d930161a1c2796","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5ded910a_110f478c","in_reply_to":"461560a6_347515ad","updated":"2026-09-11 01:40:36.000000000","message":"I don\u0027t understand the question, this change is the backport against 2026.1 aka Gazpacho?","commit_id":"7c87536b3b3698c602e2e5a3f9e560211c007954"},{"author":{"_account_id":23084,"name":"Bartosz Bezak","email":"bartosz@stackhpc.com","username":"b.bezak"},"change_message_id":"5f178ca3e1a6fb5504c53af87eea1e99ee36a559","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6d25831b_b8afc35b","in_reply_to":"5ded910a_110f478c","updated":"2026-09-11 07:12:07.000000000","message":"sorry, I meant: is there a plan of merging this actual patch here ;)","commit_id":"7c87536b3b3698c602e2e5a3f9e560211c007954"}],"cinder/volume/drivers/netapp/dataontap/nvme_library.py":[{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"5539b61e484c616abf2f0663d3c62becba250ec9","unresolved":true,"context_lines":[{"line_number":738,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":739,"context_line":"                data\u003dmsg % name)"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"        portals \u003d [(ip, self.NVME_PORT,"},{"line_number":742,"context_line":"                    self.NVME_TRANSPORT) for ip in target_portals]"},{"line_number":743,"context_line":"        data \u003d {"},{"line_number":744,"context_line":"            \"target_nqn\": str(target_nqn),"}],"source_content_type":"text/x-python","patch_set":1,"id":"8ef9b7cf_5c252d51","line":741,"updated":"2026-09-17 03:23:26.000000000","message":"This is the actual bug. The old code used target_portals[0] and\nput a one-element list into connection_info. os-brick only connects\nportals that Cinder advertises:\n\n  nova/virt/libvirt/volume/nvme.py connect_volume()\n    -\u003e os_brick NVMeOFConnector.connect_volume(connection_info[\u0027data\u0027])\n    -\u003e _connect_target() iterates target.portals\n       native MP: nvme connect every missing portal\n       no MP: break after the first successful connect\n       failed connects are logged and skipped (continue)\n\nEmpty target_portals is already rejected just above (736-739), so\nthis listcomp cannot run on []. NVME_PORT/NVME_TRANSPORT are still\nthe class constants 4420 / \"tcp\".\n\nNo new shared state and no new lock. terminate_connection does not\nread portals; it unmaps by host NQN under\nnetapp-terminate-nvme-connection-{volume.id}. Leave locking as-is\non this backport.","commit_id":"7c87536b3b3698c602e2e5a3f9e560211c007954"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"a4d02e9d4aad25447f579797f239adbc34ab910f","unresolved":true,"context_lines":[{"line_number":738,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":739,"context_line":"                data\u003dmsg % name)"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"        portals \u003d [(ip, self.NVME_PORT,"},{"line_number":742,"context_line":"                    self.NVME_TRANSPORT) for ip in target_portals]"},{"line_number":743,"context_line":"        data \u003d {"},{"line_number":744,"context_line":"            \"target_nqn\": str(target_nqn),"}],"source_content_type":"text/x-python","patch_set":1,"id":"573d5ac9_72c5a7f5","line":741,"in_reply_to":"8ef9b7cf_5c252d51","updated":"2026-09-25 09:28:45.000000000","message":"I don\u0027t understand the details of the cinder code enough to handle this, if you think the change needs to be amended for the backport, please do so yourself","commit_id":"7c87536b3b3698c602e2e5a3f9e560211c007954"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"5539b61e484c616abf2f0663d3c62becba250ec9","unresolved":true,"context_lines":[{"line_number":743,"context_line":"        data \u003d {"},{"line_number":744,"context_line":"            \"target_nqn\": str(target_nqn),"},{"line_number":745,"context_line":"            \"host_nqn\": host_nqn,"},{"line_number":746,"context_line":"            \"portals\": portals,"},{"line_number":747,"context_line":"            \"vol_uuid\": namespace_uuid"},{"line_number":748,"context_line":"        }"},{"line_number":749,"context_line":"        conn_info \u003d {\"driver_volume_type\": \"nvmeof\", \"data\": data}"}],"source_content_type":"text/x-python","patch_set":1,"id":"05cd677c_2abac563","line":746,"updated":"2026-09-17 03:23:26.000000000","message":"This portals list is what gets persisted for the life of the\nattachment.\n\nvolume/manager.py _connection_create() flattens conn_info[\u0027data\u0027]\nand returns it. volume/api.py attachment_update() then does:\n\n    attachment_ref.connection_info \u003d connection_info\n    attachment_ref.save()\n\ndb.volume_attached() never rewrites connection_info.\n\nNova stores that same dict on the BDM. Reconnect uses it directly\n(LibvirtNVMEVolumeDriver.connect_volume -\u003e connection_info[\u0027data\u0027]).\nFor the new attachment API, refresh_connection_info() only\nattachment_get()s the stored row; it does not call\ninitialize_connection again.\n\nSo: new attaches after this lands get all paths. Already-attached\nvolumes keep the old single portal until detach+attach (or a\nlegacy initialize_connection refresh). Please say that in the documentaiton.","commit_id":"7c87536b3b3698c602e2e5a3f9e560211c007954"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"a4d02e9d4aad25447f579797f239adbc34ab910f","unresolved":true,"context_lines":[{"line_number":743,"context_line":"        data \u003d {"},{"line_number":744,"context_line":"            \"target_nqn\": str(target_nqn),"},{"line_number":745,"context_line":"            \"host_nqn\": host_nqn,"},{"line_number":746,"context_line":"            \"portals\": portals,"},{"line_number":747,"context_line":"            \"vol_uuid\": namespace_uuid"},{"line_number":748,"context_line":"        }"},{"line_number":749,"context_line":"        conn_info \u003d {\"driver_volume_type\": \"nvmeof\", \"data\": data}"}],"source_content_type":"text/x-python","patch_set":1,"id":"7efb548f_0ddd0577","line":746,"in_reply_to":"05cd677c_2abac563","updated":"2026-09-25 09:28:45.000000000","message":"dito","commit_id":"7c87536b3b3698c602e2e5a3f9e560211c007954"}],"releasenotes/notes/bug-2121791-fixing-nvme-multipath-issue-389c393b6c4b33fc.yaml":[{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"5539b61e484c616abf2f0663d3c62becba250ec9","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    NetApp NVMe/TCP: Fixed multipath support for volume attachments"},{"line_number":7,"context_line":"    Previously, the NVMe over TCP driver only returned a single target"},{"line_number":8,"context_line":"    portal when initializing volume connections, even when multiple"},{"line_number":9,"context_line":"    paths were available on the NetApp array.This caused volumes"},{"line_number":10,"context_line":"    to attach using only one path, preventing proper multipath functionality."},{"line_number":11,"context_line":"    The initialize_connection method now returns all available target"},{"line_number":12,"context_line":"    portals, enabling native NVMe multipath to utilize all"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"2795c2df_337adb2a","line":9,"updated":"2026-09-17 03:23:26.000000000","message":"Typo: missing space in \"array.This\"","commit_id":"7c87536b3b3698c602e2e5a3f9e560211c007954"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"a4d02e9d4aad25447f579797f239adbc34ab910f","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    NetApp NVMe/TCP: Fixed multipath support for volume attachments"},{"line_number":7,"context_line":"    Previously, the NVMe over TCP driver only returned a single target"},{"line_number":8,"context_line":"    portal when initializing volume connections, even when multiple"},{"line_number":9,"context_line":"    paths were available on the NetApp array.This caused volumes"},{"line_number":10,"context_line":"    to attach using only one path, preventing proper multipath functionality."},{"line_number":11,"context_line":"    The initialize_connection method now returns all available target"},{"line_number":12,"context_line":"    portals, enabling native NVMe multipath to utilize all"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"925c73c3_0a262009","line":9,"in_reply_to":"2795c2df_337adb2a","updated":"2026-09-25 09:28:45.000000000","message":"again I\u0027m not sure whether it is appropriate to change this from the original, but feel free to go ahead","commit_id":"7c87536b3b3698c602e2e5a3f9e560211c007954"}]}
