8

I had seen that Tridion UI is displaying the error

Not enough Storage to complete this action.

I checked the event log of Tridion and I see a series of errors

  • The number of render failures has exceeded its specified failure limit of 0.
  • Not enough storage is available to complete this operation.

Log associated to number of render failures can be found below. I have searched in net but could not find any information on this. This issue is reoccurring in the environment. What could be the reason. Any suggestions to fix it.

We are using Windows Server 2008 R2, and Tridion 2011 Sp1.

Component: Tridion.ContentManager.Publishing Errorcode: 0 User: NT AUTHORITY\SYSTEM

StackTrace Information Details:   
    at Tridion.ContentManager.Interop.TDS._Page.Render(String renderInstruction)    
    at Tridion.ContentManager.Publishing.Legacy.Rendering.PageRenderer.Render(ResolvedItem resolvedItem, PublishInstruction instruction, PublicationTarget target, RenderedItem renderedItem, RenderContext context)    
    at Tridion.ContentManager.Publishing.Rendering.RenderEngine.Render(ResolvedItem resolvedItem, PublishInstruction instruction, PublicationTarget target, RenderContext context)    
    at Tridion.ContentManager.Publishing.Rendering.RenderEngine.Render(ResolvedItem resolvedItem, PublishInstruction instruction, PublicationTarget target)    
    at Tridion.ContentManager.Publishing.Handling.DefaultPublishTransactionHandler.RenderAndPackage(ResolvedItem resolvedItem, PublishInstruction instruction, PublicationTarget target, List`1 processedItems, PublishTransaction publishTransaction, TransportPackage transportPackage)
    at Tridion.ContentManager.Publishing.Handling.DefaultPublishTransactionHandler.RenderAndPackage(ResolvedItem resolvedItem, PublishInstruction instruction, PublicationTarget target, List`1 processedItems, PublishTransaction publishTransaction, TransportPackage transportPackage)
    at Tridion.ContentManager.Publishing.Handling.DefaultPublishTransactionHandler.HandlePublishRequest(PublishTransaction publishTransaction)
    at Tridion.ContentManager.Publishing.Handling.DefaultPublishTransactionHandler.ProcessPublishTransaction(PublishTransaction publishTransaction)
    at Tridion.ContentManager.Publishing.Publisher.QueueMessageHandler.HandleMessage()
7
  • Lots of possibilities here. Typically these types of issues tend to be related to some sort of memory issue such as a com+ process hitting the max allowable memory for a process. Which version of Tridion are you running? Which version of windows? Have you checked the memory usage of the processes on the server(s) running the CME and publishing services? Commented Feb 22, 2013 at 6:20
  • Hi We are using Windows Server 2008 R2, and Tridion 2011 Sp1. yes the Memory and CPU Spike during Rendering the page.
    – Ajo Mathew
    Commented Feb 22, 2013 at 6:26
  • How much physical memory does this server have? Check how much free disk space you have available on both your content manager and content delivery servers. The error about not enough storage usually relates to not having enough available disk space on one of your servers. Commented Feb 22, 2013 at 7:21
  • 1
    does everything work fine for a while after restarting and then start failing? If so you might have a memory leak somewhere in your publishing code and eventually you get to the point where there isn't enough memory left to allocate the space needed for the publisher to render the content. I hesitate to recommend this as an answer but one thing you can do is set com+ services to auto recyle when they reach 1 gig of memory usage. It doesn't solve the underlying issue but could help short term. Commented Feb 22, 2013 at 9:04
  • 1
    We ran into memory issues when our content manager or publishing servers only had 4GB of memory. I would recommend having around 8GB of memory for these servers. Also, as people have already suggested, adding the COM+ memory recycling helped us to reduce publishing render issues. We set our recycling limit to 500MB. Commented Feb 22, 2013 at 9:53

1 Answer 1

8

You are mentioning two completely different errors here, which might have a relation in the end.

The number of render failures error is one triggered by a Publish Transaction which contains multiple render actions. Something like Publishing a Structure Group, you are then Publishing all Pages in that Structure groups, which will lead to multiple Pages being rendered in that single Publish Transaction. If some of those Pages fail rendering (a template error for instance), you will generate a render failure. By default the number of render failures allowed in a Publish Transaction is 0 (it can be increased in the Advanced tab of the Publish dialog).

So simply put, this error was just telling you something went wrong in the render action of a Page or Component. If you double click the Publish Transaction in the Publish Queue, you can open it and see the details in the Processed Items tab.

Now onwards to the other error, Not enough Storage to complete this action.. That is one I haven't seen myself before, but judging from the comments and you mentioning it was resolved by restarting the services, I think you might have been running into a COM+ memory issue.

First thing to make sure is that you have enough resources on the server, or if it is a heavily used server (a lot of active users and/or a high Publishing load), you might consider out scaling the Publisher to a separate machine, so you don;t have to share resources between the UI and Publishing.

Then next you could look at configuring application recycling for the SDL Tridion Content Manager COM+ application. In the console tree of the Component Services administrative tool, right-click the COM+ server application you want to be recycled and then click Properties.

On the Pooling & Recycling tab, you can enter a value for Memory Limit (KB). A valid value would be something less than 10% of your total amount of memory, a bit depending on the usage of that server. This is something you might have to tune, so it might take several tries/changes to get it right. One important thing to understand is, that once the COM+ application reaches the specified memory limit, it will start the recycling process. That means it will stop taking calls in the current process and start a new one. The memory of the process which is about to be recycled cannot be released instantaneously, so it might take some time for it to be all freed up. So it could happen that at some point you have two or even tree processes active at one time, which means you should have an adequate amount of memory for all those in your server (which is why you do not want to set the memory limit too high).

Don't bother with the Lifetime Limit or Expiration Timeout, they are not really relevant because of how this COM+ application is used.

As for the possible relation between these two errors, a failure in a Template render process, can lead to an unfinished process which could even lead to a memory leak. But even without a memory leak, there will still be memory in use which might not be released instantly. So the render failure could have just been the trigger for the other error. Although more likely it could also have been your Publish Transaction which by default caches, and thus requires more memory than a Publish Transaction which contains only a single item.

One last remark, 4GB of memory for a Tridion server I now a days consider on the low side. Certainly of that machine is running the Publisher too. It's a bit depending on whether this is a dev or a production server, and how much it is being used of course, but I would consider doubling the amount of memory in that machine or consider outscaling the publisher.

1
  • Thanks for the answer. I will have to set COM+ recycling settings and check how it goes. We will consider your advise to increase System memory of Tridion server. We have separate Publisher and deployer
    – Ajo Mathew
    Commented Feb 22, 2013 at 10:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.