Re: [PATCH v3] scsi: iscsi: Fix multiple iscsi session unbind event sent to userspace
From: wenchao hao
Date: Sun Aug 14 2022 - 13:01:01 EST
On Fri, Aug 12, 2022 at 12:06 PM Mike Christie
<michael.christie@xxxxxxxxxx> wrote:
>
> On 8/1/22 10:47 PM, Wenchao Hao wrote:
> > I found an issue that kernel would send ISCSI_KEVENT_UNBIND_SESSION
> > for multiple times which should be fixed.
> >
> > This patch introduce target_state in iscsi_cls_session to make
> > sure session would send only one ISCSI_KEVENT_UNBIND_SESSION.
> >
> > But this would break issue fixed in commit 13e60d3ba287 ("scsi: iscsi:
> > Report unbind session event when the target has been removed"). The issue
> > is iscsid died for any reason after it send unbind session to kernel, once
> > iscsid restart again, it loss kernel's ISCSI_KEVENT_UNBIND_SESSION event.
> >
> > Now kernel think iscsi_cls_session has already sent an
> > ISCSI_KEVENT_UNBIND_SESSION event and would not send it any more. Which
> > would cause userspace unable to logout. Actually the session is in
> > invalid state(it's target_id is INVALID), iscsid should not sync this
> > session in it's restart.
> >
> > So we need to check session's target state during iscsid restart,
> > if session is in unbound state, do not sync this session and perform
> > session teardown. It's reasonable because once a session is unbound, we
> > can not recover it any more(mainly because it's target id is INVALID)
> >
>
> I think we are ok now. Do you have a link to the userspace parts so
> I can make sure we have everything covered now?
I updated the PR on github: https://github.com/open-iscsi/open-iscsi/pull/339