dcache
dcache copied to clipboard
NFS write transfers stay in the door if file removed while being transferred
When the file is removed while being transferred, then NFS door will never receive CLOSE and the transfer stays in the NFS door. The following diagram visualizes the issue:
sequenceDiagram
client1->>+nfsDoor: CREATE 'foo'
nfsDoor-->>client1: OK
client1->>+nfsDoor: WRITE
nfsDoor-->>client1: OK
client2->>+nfsDoor: DELETE 'foo'
nfsDoor-->>client2: OK
client1->>+nfsDoor: GETATTR+CLOSE
nfsDoor-->>client1: File not found (GETATTR)
Arter receiving ENOENT client1 will not send CLOSE any more.