Actions
Bug #14868
openSMB reconnect fails when previous session still disconnecting
Start date:
Due date:
% Done:
0%
Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
Description
If a client is fast enough coming back in for a reconnect after their connection drops, they can race with the tear-down of their old session, which can cause odd failures like not finding their durable handles during the reconnect.
It's non-trivial to reproduce, but happens on a fast machine & network if you do enough disconnect/reconnects (I think it happened when there was a network stack bug causing TCP drops fairly frequently.)
Updated by Gordon Ross 14 days ago
- Status changed from New to In Progress
Integrate this commit from github/Nexenta
commit 54d604f9c6eccd0eb3d3a0ce86bf31b721c33caa Author: Prashanth Badari <prbadari@tintri.com> Date: Wed Jan 13 04:45:53 2021 +0000 FIR-1506 SMB reconnect fails when previous session still disconnecting When TCP reset happens, wait for the trees to go away while we process the new session setup request which has the previous session id. Do no proceed with smb2_fsctl_odx_read when the request is not active. Reviewed by: Gordon Ross <gordon.ross@tintri.com> Reviewed by: Prashanth Badari <prbadari@tintri.com> Reviewed by: Suresh Jayaraman <sjayaraman@tintri.com> 2 0 usr/src/uts/common/fs/smbsrv/smb2_fsctl_odx.c 4 1 usr/src/uts/common/fs/smbsrv/smb2_fsctl_sparse.c 61 15 usr/src/uts/common/fs/smbsrv/smb_server.c 2 0 usr/src/uts/common/fs/smbsrv/smb_tree.c 49 0 usr/src/uts/common/fs/smbsrv/smb_user.c 3 0 usr/src/uts/common/smbsrv/smb_kproto.h 2 0 usr/src/uts/common/smbsrv/smb_ktypes.h
Actions