Draft: delay_for_handle_lease_break converts lease-break-ACK timeout into STATUS_ACCESS_DENIED on CLOSE

delay_for_handle_lease_break_send() blocks an SMB2 CLOSE when the handle had INITIAL_DELETE_ON_CLOSE set, when the target file has a H-lease by a different open.

The server waits up to OPLOCK_BREAK_TIMEOUT (35s) for that other client to ACK the lease break. If the ACK doesn't arrive in time, the code remaps NT_STATUS_IO_TIMEOUT to NT_STATUS_ACCESS_DENIED and fails the close.

The problem is that we set a timeout on the req from delay_for_handle_lease_break_send() which has the same timeout, but is setup shorty before, the actualy lease-break timeout setup in fsp_lease_update().

https://bugzilla.samba.org/show_bug.cgi?id=16232

Merge request reports

Loading
Loading