Can't create new PowerPoint file from SharePoint Doclib with check-out enforced / deadlocking!

Brass Contributor

Hi Everyone

 

We are facing a interesting issue with one of our customers, who can't create new PowerPoint files in SharePoint 2016 with Office Online Server (On-Prem!). Do you have any idea on how to fix it, maybe?

 

Basics (On-Prem):

SharePoint 2016 > FP1/June 2017 CU > Multiple Web Apps, HTTPS
Office Online Server > June 2017 Update > Farm with two nodes, WOPIZone external-https

Kemp > NLB, FW, Proxy

 

Authentication: 

Basic > Forms Auth for external users and NLB

NTLM > Integrated Auth for Clients

Web Apps are oviously using Claims. 

 

Issue Description: 

Can't create new PowerPoint files from SharePoint doclib menu, with enforced checkout activated on list. File is created, but somehow can't be opend by PowerPoint viewer, because of a locking issue. It looks like the file gets created, checked out and then it's locked for opening. All under the current and the same user context. So the users sees and error that the file can't be openend for editing after creation and are getting depressed When going back to list and opening file, all works ok. 

 

Facts: 

 

  • When checkout is not enforced on SharePoint list and automatic versioning is on, it works with no problems
  • Office Online Server supports enforced check-out, but no coauth if enabled ad whole file is checked out and not parts
  • Also it works for othere relevant Office file formats - the issue is just with PPTX.
  • It works on the the test environment with a more or less similar configuration. 
  • The issue exists in alle web applications and all site collections, so it's a global thing

 

What I can see in the ULS log:

 

SPApplicationAuthenticationModule: Incoming token does not contain an actor.

WOPI (CheckFile) Proof Data: AccessToken Hash '-428635993' [1036 bytes], URL WOPI (CheckFile) Proof Data: AccessToken Hash '-428635993' [1036 bytes], URL 
Did not find token claim in token. ClaimType: 'scope'.

The file "Presentation.pptx" was checked out by user "i:0#.w|" for editing
SPRequest.GetFileLock: UserPrincipalName=i:0).w|USERID, AppPrincipalName= ,bstrUrl=SHAREPOINT SITE ,bstrWebRelDocUrl=Presentation.pptx ,lockType=1 ,lockId=29358ec1-e813-4793-8e70-ed0344e7b73c ,minutes=30

File exception: Microsoft.SharePoint.SPException: File "Presentation.pptx" wurde von i:0#.w|USERNAME checked out for editing --->  
 at Microsoft.SharePoint.Library.SPRequestInternalClass.GetFileLock(String bstrUrl, String bstrWebRelDocUrl, Int32 lockType, String lockId, Int32 minutes)   
 at Microsoft.SharePoint.Library.SPRequest.GetFileLock(String bstrUrl, String bstrWebRelDocUrl, Int32 lockType, String lockId, Int32 minutes)     -
 -- End of inner exception stack trace ---   
 at Microsoft.SharePoint.SPGlobal.HandleComException(COMException comEx)   
 at Microsoft.SharePoint.Library.SPRequest.GetFileLock(String bstrUrl, String bstrWebRelDocUrl, Int32 lockType, String lockId, Int32 minutes)   
 at Microsoft.SharePoint.SPFile.Lock(SPLockType lockType, String lockId, TimeSpan timeout)

 

 

 

I have tons more of debug information. ULS, Fiddler traces and so on. If you have any idea what the cause could be, I'm ready to share more ;)

 

Thx - Marcel

 

 

 

Later on, we see a deadlock 

 

 

 

 

 

 

 
6 Replies

The fiddler trace says, that there is a server error (500) happening, when accessing the powerpoint viewer svc. In the OOS ULS I can see the following:

 

JoinCoauthoringAndGetSharedRemoteServiceLocation: [JoinCoauthResponse.RequestError: FileAlreadyCheckedOutOnServer] [GetTruthResponse.RequestError: Deprecated_DependentOnlyOnSuccessRequestFailed]

JoinCoauthoringAndGetSharedRemoteServiceLocation: [JoinCoauthResponse.RequestError: FileAlreadyCheckedOutOnServer] [GetTruthResponse.RequestError: Deprecated_DependentOnlyOnSuccessRequestFailed]

JoinCoauthoring: Trying to join coauthoring failed to acquire the schema lockWebSession::ProcessRequest caught an exception Microsoft.Office.Server.Powerpoint.Pipe.Core.RequireExclusiveLockException: need to acquire exclusive lock

EditSession::PPTGetTruth:srsLocation is null currently, retry to get srsLocation:

 

àhm.. CoAuth we dont want, thats one of the reasons, why we enforce checkout - so why it seems to try to do coauth here and fails? 

 

I know, we can forcibly disable coauth via Powershell: WebApplication.WebService.DisableCoauthoring

 

Tried, but no effect. Looks somehow like there is an authentication issue?

In the WIndows Eventlog of OOS, we see the rest of the error trace. The WS failing doing it's work. But why? I can open PowerPoint from OOS directly, but somth with the SP integration sucks.

 

WebHost failed to process a request.
 Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/51166205
 Exception: System.ServiceModel.ServiceActivationException: The service '/p/ppt/view.svc' cannot be activated due to an exception during compilation.  The exception message is: Could not find a base address that matches scheme http for the endpoint with binding CustomBinding. Registered base address schemes are [].. ---> System.InvalidOperationException: Could not find a base address that matches scheme http for the endpoint with binding CustomBinding. Registered base address schemes are [].
   at System.ServiceModel.ServiceHostBase.MakeAbsoluteUri(Uri relativeOrAbsoluteUri, Binding binding, UriSchemeKeyedCollection baseAddresses)
   at System.ServiceModel.Description.ConfigLoader.LoadServiceDescription(ServiceHostBase host, ServiceDescription description, ServiceElement serviceElement, Action`1 addBaseAddress, Boolean skipHost)
   at System.ServiceModel.ServiceHostBase.LoadConfigurationSectionInternal(ConfigLoader configLoader, ServiceDescription description, ServiceElement serviceSection)
   at System.ServiceModel.ServiceHostBase.ApplyConfiguration()
   at System.ServiceModel.ServiceHostBase.InitializeDescription(UriSchemeKeyedCollection baseAddresses)
   at System.ServiceModel.ServiceHost..ctor(Type serviceType, Uri[] baseAddresses)
   at Microsoft.Office.Server.Powerpoint.Web.Services.MultipleBaseAddressServiceHostFactory.CreateServiceHost(Type serviceType, Uri[] allBoundBaseAddresses)
   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)
   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(ServiceActivationInfo serviceActivationInfo, EventTraceActivity eventTraceActivity)
   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)
   --- End of inner exception stack trace ---
   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)
   at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath, EventTraceActivity eventTraceActivity)
 Process Name: w3wp
 Process ID: 8224

Hi,

Did you ever get to the bottom of this issue? I'm experiencing the same problem by the looks.

Thank you ... BmL

After some investiagtion Microsoft Support confirmed a bug and is working on a fix, which should be release on one of the next CU's for OOS. They were able to reproduce the same behaviour and a fix should come soon. As always, they couldn't say when. Let u know, when we see it fixed. 

@Marcel HaasI've the same problem and i also installed the last security update and did not solve the issue, do you ever find a solution for that?

 

Thx

@HeitorNereu I'm running into the same issue. Interesting that the comments went from 2017 to 2023. I wonder if the bug was recently reintroduced.