DocLib Item stays checked out after edit

358 Views Asked by At

here are steps of my problem:

  1. Go to custom DocumentLibrary (custom fields, custom ListForm with custom FieldIterator)
  2. Select one of existing on production Word documents (*.doc)
  3. Click "Edit document" in order to edit in a client Office application
  4. Edit doc and click save, look at progress bar of changes uploading...
  5. Close document, the view I`d opened before will be refreshed.

Problem:

  1. The item becomes checked out by Administrator. It does not matter what user you use to edit, you will always see checked out document under Administrator.
  2. Changes to document are applied time by time.

Results of my investigation:

I`ve loocked through Fiddler and found out this CellRequestFail error from CellStorage.svc:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body>
        <ResponseVersion Version="2" MinorVersion="0" xmlns="http://schemas.microsoft.com/sharepoint/soap/"/>
        <ResponseCollection WebUrl="http://kbstg.rt.ru" xmlns="http://schemas.microsoft.com/sharepoint/soap/">
            <Response Url="http://siteurl/Lists/DocumentationListInstance/02_D-link_DSL2640_UEBRUC2E_V2.doc" RequestToken="1" HealthScore="1">
                <SubResponse SubRequestToken="1" ErrorCode="Success" HResult="0">
                    <SubResponseData/>
                </SubResponse>
                <SubResponse SubRequestToken="2" ErrorCode="CellRequestFail" HResult="2147500037">
                    <SubResponseData Etag="&quot;{BB1B8453-5F6F-4D05-8210-E42DB21A6711},12&quot;" CoalesceHResult="0" ContainsHotboxData="False" HaveOnlyDemotionChanges="False">DAALAJ3PKfM5lAabFgMCAAAOAgYAAwUBbgIgAL+u/no9AyhInDE5d6/lgklaAggAZgIAADcBBwGLAQ==</SubResponseData>
                </SubResponse>
            </Response>
        </ResponseCollection>
    </s:Body>
</s:Envelope>

ULS Logs gave me:

ttidLogCellStg      Sub-request rtQueryChanges failed with error ICsiError: csierrBlobHeap_ClockReversed (0x266)

If I uploaded there any new document then all will be good. Even if I downloaded an problematic document and uploaded it after by creating new item then all will be fine again.

Updated:
I made some tests on a file, so I can say that ETag in the file properties is equal to ETag which figure in SubRequest.

1

There are 1 best solutions below

3
Jan Vanek On

This is the problem in MS-FSSHTTPS protocol. The protocol is responsible for file sync of Office documents between Office client (Word) and server (SharePoint). It should reduce the amount of data transferred between client and server. Better results are get for DOCX documents but it works also with DOC files. According to the protocol documentation:

Etag: A string that specifies a unique string value that gets updated every time the file contents are changed. The unique string gets updated irrespective of which protocol client updated the file contents in a co-authorable file. Anytime the protocol client specifies the Etag attribute in a cell sub request, the server MUST check to ensure that the Etag sent by the client matches the Etag specified for that file on the server. If there is a mismatch of Etag between the version specified by the client and version stored by the server, the protocol server MUST send an error code value set to "CellRequestFail" in the cell sub response message. The protocol server processes this value as specified in [RFC2616].

It seems that the ETAG metadata information is corrupted in your document.