Description of problem: Setup: Two targets are connected to MDS. One of which is available only if the other is removed permanently(a dynamic target is created). The MDS is connected to the initiator. Problem: After removing the first iscsi target only the dynamic target is sent to the initiator on a SendTargets respose. So it sets up a session for the new target. But the older session (stale session) still remains and login is unecessarily retried on a permanently removed target. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1. Make sure that all targets and iSCSI sessions are up. 2. Remove the target on MDS 3. Check the iSCSI sessions on the initiator. Actual results: The initiator tries to login into a permanently removed target. It does not tear down the older sessions Expected results: The initiator should tear down all the old sessions, once the new dicovery responds with dissimilar targets. Additional info:
Created attachment 122444 [details] Fix for the bug
Hey what is the reason for if session not alive test? + dlist_for_each_data(device_list, cldev, struct sysfs_class_device) { + sprintf(name, "host%d", host_list[i]); + if (!strncmp(cldev->name, name, strlen(name))) { + attr1 = sysfs_get_classdev_attr(cldev, + "session_established"); + sscanf(attr1->value, "%d", &session_alive); + if (!session_alive) {
No reply since December. Low priority. Does not happen frequently. We are not planning to address this in U4. Possibly in a later update.
Development Management has reviewed and declined this request. You may appeal this decision by reopening this request.