Hi Volker, 

I'll be helping you with this issue.

Will get back to you as soon as I have questions or answers.

Thanks!

Sebastian


Sebastian Canevari | Escalation Engineer | US-CSS Developer Support Core (DSC) 
Protocol Team
P +1 469 775 7849 
One Microsoft Way, 98052, Redmond, WA, USA http://support.microsoft.com


-----Original Message-----
From: [email protected] [mailto:[email protected]] On 
Behalf Of Volker Lendecke
Sent: Tuesday, October 22, 2013 4:47 AM
To: Interoperability Documentation Help
Cc: [email protected]; [email protected]
Subject: [cifs-protocol] [MS-SMB2] 3.3.5.22.1 NT_STATUS_REQUEST_NOT_ACCEPTED?

Hi!

While investigating oplocks I wrote a little test leading to the attached 
trace, which surprised me a bit.

This test is running against Windows 2012 server.

In frame 56 I get an exclusive oplock.

In frame 57 I try to open the file a second time on a different connection, 
asking for an exclusive oplock again, create disposition as OPEN_IF.

Frame 60 is the expected break response, breaking to level2.
This break response is not replied to immediately.

In frame 63 I try to open the file a third time on a third connection, asking 
for an exclusive oplock with create disposition OVERWRITE_IF. To my 
understanding this should trigger a break to none.

In frame 66 I reply to the break response in frame 60, breaking to what was 
asked in frame 60: Level2.

Frame 67 is what I find surprising and what I can not find in the 
documentation: I get a STATUS_REQUEST_NOT_ACCEPTED.
According to [MS-SMB2], this only is sent in response to a lease break, not an 
oplock break.

Although there was a REQUEST_NOT_ACCEPTED, the immediate reply to the pending 
opens shows me that some processing of the break response must have happened, I 
just don't find in [MS-SMB2] what exactly happened.

Can you explain the sequence that happens in response to Frame 66? How does 
STATUS_REQUEST_NOT_ACCEPTED happen and how does the server do its further 
processing? In particular, what oplock level does the handle that got the 
oplock break have after this sequence.

I can easily reproduce and slightly modify the test. If for example in frame 66 
I break to "no oplock", I get a NT_STATUS_OK in frame 67. But the client that 
got the break can't know that frame 63 happened.

Thanks,

Volker Lendecke
PFIF member, Samba Team

--
SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9 AG Göttingen, HRB 2816, GF: Dr. 
Johannes Loxen http://www.sernet.de, mailto:[email protected]
_______________________________________________
cifs-protocol mailing list
[email protected]
https://lists.samba.org/mailman/listinfo/cifs-protocol

Reply via email to