[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ms-cifs
Subject:    Re: oplock prob?/.Net won't compile "on the net"? (Q255252/uSoft:no net drv projs)
From:       Tom Rodman <cifs () TRODMAN ! COM>
Date:       2003-06-23 21:16:02
[Download RAW message or body]

Synopsis: OPLOCK break notification/response...STATUS_SHARING_VIOLATION

Please take a look at the packet capture test results from last Friday,
any comments or help would be appreciated:

Network DOESITMATTER Telecommunications analyst Aabhas XXXXX
and I ran a test (~25 sec network packet capture) to examine a
particular repeatable file contention problem; we run into it during
our nightly software builds.  The test ran well; the "makehm"
command failed twice as we had hoped.

background: w/r to our build processes \\c7mkes109\scm is a remote SMB
share.  c7mkes109 and c7mkes123 are both multiprocessor compaq servers
running w2k server w/sp3. The file access problem is triggered by the
following Microsoft "makehm" commands from the following makefile -
\\c7mkes109\scm\prep\wscontrols_v5.3toss\wsc_mcommand_ctrl\commandctrl.mak:
  <snip>
  echo // Commands (ID_* and IDM_*) >>"hlp\$(TargetName).hm"
  makehm ID_,HID_,0x10000 IDM_,HIDM_,0x10000 resource.h >>"hlp\$(TargetName).hm"
  echo // Prompts (IDP_*) >>"hlp\$(TargetName).hm"
  makehm IDP_,HIDP_,0x30000 resource.h >>"hlp\$(TargetName).hm"
  echo // Resources (IDR_*) >>"hlp\$(TargetName).hm"
  makehm IDR_,HIDR_,0x20000 resource.h >>"hlp\$(TargetName).hm"
  echo // Dialogs (IDD_*) >>"hlp\$(TargetName).hm"
  makehm IDD_,HIDD_,0x20000 resource.h >>"hlp\$(TargetName).hm"
  echo // Frame Controls (IDW_*) >>"hlp\$(TargetName).hm"
  makehm IDW_,HIDW_,0x50000 resource.h >>"hlp\$(TargetName).hm"
  <snip>

The first "makehm" always works.  All makehm commands can be made
to work if we "sleep" 20 seconds between makehm invocations.
When makehm fails, it just echoes out it's "usage/help message".

# ====================================================================
# Analysis of 25 sec Packet Capture June 20 Test Data
# (used Ethereal to generate text data I've analyzed)
# ====================================================================

Per Ethereal packet capture report, notice 1196 OPLOCK requests during
the ~25 second capture:

  bash-2.05b$ cmd /c cd
  C:\TEMP
  bash-2.05b$ date
  Mon Jun 23 09:35:19 CDT 2003
  bash-2.05b$ egrep 'Requesting OPLOCK' c7mke123_pc1.txt|wc -l
     1196

Aabhas suggested I look at (among other frames) Frame 20967.  I've
dumped out selected portions of the Ethereal packet capture report
for Frames 20908-20909, 20967-20973 - pls see these after my "sig".

  Frame 20908:
    our "build engine" c7mkes123 requests exclusive Batch Oplock for
    file resource.h - the file makehm needs

  Frame 20909 (Jun 20, 2003 12:59:19.153999000):
    c7mkes109 Oplock level: Batch oplock granted (2); (FID: 0xc0dc)

  Frame 20967 (Jun 20, 2003 12:59:19.180999000):
    c7mkes123 requests
    an exclusive Batch Oplock for file resource.h - the file makehm needs

  Frame 20968 (Jun 20, 2003 12:59:19.181999000):
    our file server c7mkes109 is apparently notifying our "build engine" c7mkes123
    to break it's Oplock on "FID: 0xc0dc"

  Frame 20969 (Jun 20, 2003 12:59:19.181999000)
    c7mkes123 does a "Oplock Break: This is an oplock break notification/response"
    for FID: 0xc0dc

  Frame 20971 (Jun 20, 2003 12:59:20.182999000)
    c7mkes109 responds:
       "Response to: 20967
          SMB Command: NT Create AndX (0xa2)
          NT Status: STATUS_SHARING_VIOLATION (0xc0000043)"

Will someone please analyze Frames 20908-20909, 20967-20973 - perhaps
correcting misunderstandings I may have shown in this e-mail?

Most importantly - could we eliminate these STATUS_SHARING_VIOLATION (0xc0000043)
errors by tuning or eliminating OPLOCKS on our server or build engines?

If anyone wants the original paket capture data, pls e-mail me.

--
regards,
Tom Rodman
pls run for my address:
  perl -e 'print unpack("u", "\.\=\$\!T\<F\]D\;6\%N\+F\-O\;0H\`");'

PS
  I have several sections of interest below - please take a look.
  The first section is the most crucial.
  One supplemental section is an "overview of NT Status from SMB commands".

# ====================================================================
# selected frames w/more detail, showing BATCH OPLOCK request and
# sharing violation
# <ethereal used to generate packet report>:
# ====================================================================

  Frame 20908
  <snip>
      Source: c7mkes123.mke.cg.jci.com (10.10.11.236)
      Destination: c7mkes109.mke.cg.jci.com (10.10.11.221)
  <snip>
          Response in: 20909
          SMB Command: NT Create AndX (0xa2)
          NT Status: STATUS_SUCCESS (0x00000000)
  <snip>
             .... .... .... .... .... .... .... .1.. = Batch Oplock: Requesting BATCH OPLOCK
             .... .... .... .... .... .... .... ..1. = Exclusive Oplock: Requesting OPLOCK
  <snip>
          File Name: \prep\wscontrols_v5.3toss\wsc_mcommand_ctrl\resource.h

  Frame 20909
  <snip>
      Source: c7mkes109.mke.cg.jci.com (10.10.11.221)
      Destination: c7mkes123.mke.cg.jci.com (10.10.11.236)
  <snip>
          Response to: 20908
          SMB Command: NT Create AndX (0xa2)
          NT Status: STATUS_SUCCESS (0x00000000)
  <snip>
          Oplock level: Batch oplock granted (2)
          FID: 0xc0dc
          Create action: Open (if file exists open it, else fail) (1)
          Created: Jun  4, 2003 09:56:18.599958419
          Last Access: Jun 20, 2003 13:07:48.633827209
          Last Write: May 30, 2003 00:02:52.000000000
  <snip>
              .... .... .... .... .... .... .... ...1 = Read Only: This file is READ ONLY
  <MANY FRAMES SNIPPED>

  Frame 20966
  <snip>
      Source: c7mkes109.mke.cg.jci.com (10.10.11.221)
      Destination: c7mkes123.mke.cg.jci.com (10.10.11.236)
  <snip>
      Source port: nbsession (139)
      Destination port: 1107 (1107)
      Sequence number: 2084973415
      Next sequence number: 2084973495
      Acknowledgement number: 437020072
  <snip>
          Response to: 20965
          SMB Command: Transaction2 (0x32)
          NT Status: STATUS_SUCCESS (0x00000000)
  <snip>
             1... .... = Request/Response: Message is a response to the client/redirector
  <snip>
          Subcommand: QUERY_FS_INFORMATION (0x0003)
  <snip>
                  .... .... .... .... .... .... .... ...1 =
  +                   Case Sensitive Search: This FS supports CA SE SENSITIVE SEARCHes
                  .... .... .... .... .... .... .... ..1. =
  +                   Case Preserving: This FS supports CASE PRE SERVED NAMES
                  .... .... .... .... .... .... .... .1.. =
  +                   Persistent ACLs: This FS supports PERSISTE NT ACLs
                  .... .... .... .... .... .... .... 1... =
  +                   Compression: This FS supports COMPRESSED F ILES
                  .... .... .... .... .... .... ...1 .... =
  +                   Volume Quotas: This FS supports VOLUME QUO TAS
                  .... .... .... .... .... .... ..1. .... =
  +                   Mounted: This FS is on a MOUNTED DEVICE
                  .... .... .... .... 0... .... .... .... =
  +                   Compressed: This FS is NOT on a compressed volume
              Max name length: 255
              Label Length: 8
              FS Name: NTFS

  Frame 20967
  <snip>
      Source: c7mkes123.mke.cg.jci.com (10.10.11.236)
      Destination: c7mkes109.mke.cg.jci.com (10.10.11.221)
  <snip>
      Source port: 1107 (1107)
      Destination port: nbsession (139)
      Sequence number: 437020072
      Next sequence number: 437020270
      Acknowledgement number: 2084973495
  <snip>
          Response in: 20971
          SMB Command: NT Create AndX (0xa2)
          NT Status: STATUS_SUCCESS (0x00000000)
  <snip>
              0... .... = Request/Response: Message is a request to the server
  <snip>
              .... .... .... .... .... .... .... .1.. = Batch Oplock: Requesting BATCH OPLOCK
              .... .... .... .... .... .... .... ..1. = Exclusive Oplock: Requesting OPLOCK
  <snip>
          File Name: \prep\wscontrols_v5.3toss\wsc_mcommand_ctrl\resource.h

  Frame 20968
  <snip>
      Source: c7mkes109.mke.cg.jci.com (10.10.11.221)
      Destination: c7mkes123.mke.cg.jci.com (10.10.11.236)
  <snip>
      Source port: nbsession (139)
      Destination port: 1107 (1107)
      Sequence number: 2084973495
      Next sequence number: 2084973550
      Acknowledgement number: 437020270
  <snip>
          SMB Command: Locking AndX (0x24)
          Error Class: Success (0x00)
          Reserved: 00
          Error Code: No Error
  <snip>
              0... .... = Request/Response: Message is a request to the server
  <snip>
      Locking AndX Request (0x24)
  <snip>
              .... ..1. = Oplock Break: This is an oplock break notification/response
  <snip>
          Oplock Level: Level 2 oplock currently held by client (1)
          Timeout: Return immediately (0)
  <snip>

  Frame 20969
  <snip>
      Source: c7mkes123.mke.cg.jci.com (10.10.11.236)
      Destination: c7mkes109.mke.cg.jci.com (10.10.11.221)
  <snip>
      Source port: 1107 (1107)
      Destination port: nbsession (139)
      Sequence number: 437020270
      Next sequence number: 437020325
      Acknowledgement number: 2084973550
  <snip>
          SMB Command: Locking AndX (0x24)
          NT Status: STATUS_SUCCESS (0x00000000)
  <snip>
              0... .... = Request/Response: Message is a request to the server
  <snip>
      Locking AndX Request (0x24)
          Word Count (WCT): 8
          AndXCommand: No further commands (0xff)
          Reserved: 00
          AndXOffset: 57054
          FID: 0xc0dc
          Lock Type: 0x12
              ...1 .... = Large Files: Large file locking format requested
              .... 0... = Cancel: Don't cancel outstanding lock request
              .... .0.. = Change: Don't change lock type
              .... ..1. = Oplock Break: This is an oplock break notification/response
              .... ...0 = Shared: This is an exclusive lock
          Oplock Level: Level 2 oplock currently held by client (1)
  <note: "Wait indefinitely">
          Timeout: Wait indefinitely (-1)
          Number of Unlocks: 0
          Number of Locks: 0
          Byte Count (BCC): 0

  Frame 20970
  <snip>
      Source: c7mkes109.mke.cg.jci.com (10.10.11.221)
      Destination: c7mkes123.mke.cg.jci.com (10.10.11.236)
  <snip>
      Source port: nbsession (139)
      Destination port: 1107 (1107)
      Sequence number: 2084973550
      Acknowledgement number: 437020325
      Header length: 20 bytes
      Flags: 0x0010 (ACK)
  <just a TCP ACK, no NETBIOS or SMB stuff,snip>

  <notice Frames 20970 and 20971 have same Sequence number and Acknowledgement number>
  Frame 20971
  <snip>
      Source: c7mkes109.mke.cg.jci.com (10.10.11.221)
      Destination: c7mkes123.mke.cg.jci.com (10.10.11.236)
  <snip>
      Source port: nbsession (139)
      Destination port: 1107 (1107)
      Sequence number: 2084973550
      Next sequence number: 2084973589
      Acknowledgement number: 437020325
  <snip>
          Response to: 20967
          SMB Command: NT Create AndX (0xa2)
          NT Status: STATUS_SHARING_VIOLATION (0xc0000043)
  <snip>
              1... .... = Request/Response: Message is a response to the client/redirector
  <snip>

  Frame 20972
  <snip>
      Source: c7mkes123.mke.cg.jci.com (10.10.11.236)
      Destination: c7mkes109.mke.cg.jci.com (10.10.11.221)
  <snip>
      Source port: 1107 (1107)
      Destination port: nbsession (139)
      Sequence number: 437020325
      Next sequence number: 437020447
      Acknowledgement number: 2084973589
  <snip>
          Response in: 20973
          SMB Command: Write AndX (0x2f)
          NT Status: STATUS_SUCCESS (0x00000000)
  <snip>
              0... .... = Request/Response: Message is a request to the server
  <snip>
          AndXOffset: 57054
          FID: 0x0131
          Offset: 5410
          Reserved: FFFFFFFF
          Write Mode: 0x0000
  <snip>
          Data Length: 54
          Data Offset: 64
          High Offset: 0
          Byte Count (BCC): 55
          Padding: EE
          File Data: 4D6963726F736F667420285229204865...

  Frame 20973
  <snip>
      Source: c7mkes109.mke.cg.jci.com (10.10.11.221)
      Destination: c7mkes123.mke.cg.jci.com (10.10.11.236)
  <snip>
          Response to: 20972
          SMB Command: Write AndX (0x2f)
          NT Status: STATUS_SUCCESS (0x00000000)
  <snip>
      Write AndX Response (0x2f)
          Word Count (WCT): 6
          AndXCommand: No further commands (0xff)
          Reserved: 00
          AndXOffset: 47
          FID: 0x0131
          Count: 54
          Remaining: 65535
  <snip>

# ====================================================================
# Overview of SMB commands that ran during entire capture:
# ====================================================================

  > 11:23:53 Mon Jun 23 0j tty0 /drv/c/TEMP
  > ws011206 adm_tsr > egrep 'SMB Command:|Subcommand:' c7mke123_pc1.txt |sort|uniq -c
      346         SMB Command: Close (0x04)
       94         SMB Command: Delete (0x06)
       58         SMB Command: Locking AndX (0x24)
     2476         SMB Command: NT Create AndX (0xa2)
       58         SMB Command: NT Transact (0xa0)
      416         SMB Command: Read AndX (0x2e)
        2         SMB Command: Session Setup AndX (0x73)
    15517         SMB Command: Transaction2 (0x32)
        4         SMB Command: Tree Connect AndX (0x75)
     1459         SMB Command: Write AndX (0x2f)
       10         Subcommand: <UNKNOWN> since request packet wasn't seen
     2159         Subcommand: FIND_FIRST2 (0x0001)
        2         Subcommand: GET_DFS_REFERRAL (0x0010)
      630         Subcommand: QUERY_FILE_INFORMATION (0x0007)
     1088         Subcommand: QUERY_FS_INFORMATION (0x0003)
    11562         Subcommand: QUERY_PATH_INFORMATION (0x0005)
       66         Subcommand: SET_FILE_INFORMATION (0x0008)

# ====================================================================
# overview of NT Status from SMB commands
# ====================================================================
> 08:41:53 Mon Jun 23 1j tty0 /drv/c/TEMP
> ws011206 adm_tsr > egrep 'NT Status: ' c7mke123_pc1.txt |sort |uniq -c
      1         NT Status: STATUS_ACCESS_DENIED (0xc0000022)
      1         NT Status: STATUS_DFS_UNAVAILABLE (0xc000026d)
    142         NT Status: STATUS_NO_SUCH_FILE (0xc000000f)
   2129         NT Status: STATUS_OBJECT_NAME_NOT_FOUND (0xc0000034)
    700         NT Status: STATUS_OBJECT_PATH_NOT_FOUND (0xc000003a)
      2         NT Status: STATUS_SHARING_VIOLATION (0xc0000043)
  17421         NT Status: STATUS_SUCCESS (0x00000000)

# ====================================================================
# misc
# ====================================================================

Notice there are two STATUS_SHARING_VIOLATION (0xc0000043)
errors:

  bash-2.05b$ date
  Mon Jun 23 10:10:08 CDT 2003
  bash-2.05b$ egrep -i -2   violation c7mke123_pc1.txt
          Response to: 20967
          SMB Command: NT Create AndX (0xa2)
          NT Status: STATUS_SHARING_VIOLATION (0xc0000043)
          Flags: 0x98
              1... .... = Request/Response: Message is a response to the client/redirector
  --
          Response to: 21093
          SMB Command: NT Create AndX (0xa2)
          NT Status: STATUS_SHARING_VIOLATION (0xc0000043)
          Flags: 0x98
              1... .... = Request/Response: Message is a response to the client/redirector

FYI: the following frames contain the string "resource.h":

  15528 (Subcommand: QUERY_PATH_INFORMATION)
  15530 (Subcommand: QUERY_PATH_INFORMATION)
  15552 (Subcommand: QUERY_PATH_INFORMATION)
  15554 (Subcommand: QUERY_PATH_INFORMATION)
  20908 (SMB Command: NT Create AndX )
  20967 (SMB Command: NT Create AndX)
  21034 (SMB Command: NT Create AndX)
  21093 (SMB Command: NT Create AndX)
  21164 (SMB Command: NT Create AndX)
  22092 (SMB Command: NT Create AndX)
  23922 (SMB Command: NT Create AndX)

# ====================================================================
# proof that makehm error *did* occur during test
# ====================================================================
  > 13:30:34 Mon Jun 23 0j tty0 //c7mkes109/scm/prep/wscontrols_v5.3toss/wsc_mcommand_ctrl
  > ws011206 adm_tsr > egrep -2 'makehm.*:' pcr_make.out
  Microsoft (R) Help Maintainence Utility   Version 6.00
  Copyright (c) Microsoft Corp. 1992-1998. All rights reserved.
  makehm: error: unable to open file "resource.h".
  makehm usage:
    makehm <from>,<to>,<add>... <resource.h> [output.hm]
      <from>,<to>,<add> fields must appear as one argument and
  --
  Microsoft (R) Help Maintainence Utility   Version 6.00
  Copyright (c) Microsoft Corp. 1992-1998. All rights reserved.
  makehm: error: unable to open file "resource.h".
  makehm usage:
    makehm <from>,<to>,<add>... <resource.h> [output.hm]
      <from>,<to>,<add> fields must appear as one argument and
  > 13:30:47 Mon Jun 23 0j tty0 //c7mkes109/scm/prep/wscontrols_v5.3toss/wsc_mcommand_ctrl
  > ws011206 adm_tsr > ls -l pcr_make.out
  -r-xr-xr-x+   1 Administ SCM_ES_S     8786 Jun 20 13:08 pcr_make.out*

----------------------------------------------------------------
Users Guide http://discuss.microsoft.com/archives/mailfaq.asp
contains important info including how to unsubscribe.  Save time, search
the archives at http://discuss.microsoft.com/archives/index.html
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic