Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Kevin Blake 23 posts 45 karma points
    Sep 01, 2011 @ 11:52
    Kevin Blake
    0

    OutOfMemoryException when transferring multiple nodes

    Running Umbraco 4.6.1 - I'm getting OutOfMemory exceptions when transferring multiple nodes (10-15 with images) via Courier to our staging site.

    Has anyone come across a similar problem, and/or has a simple workaround?  I'm hoping the answer isn't going to be to upgrade to 4.7 - but if that's the solution, so be it :)

    Exception of type 'System.OutOfMemoryException' was thrown.
    Error details

    System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. 
    at System.Net.ScatterGatherBuffers.AllocateMemoryChunk(Int32 newSize) 
    at System.Net.ScatterGatherBuffers.Write(Byte[] buffer, Int32 offset, Int32 count) 
    at System.Net.ConnectStream.InternalWrite(Boolean async, Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state) 
    at System.Net.ConnectStream.Write(Byte[] buffer, Int32 offset, Int32 size) 
    at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder) 
    at System.IO.StreamWriter.Write(Char[] buffer, Int32 index, Int32 count) 
    at System.Xml.XmlTextEncoder.WriteRaw(Char[] array, Int32 offset, Int32 count) 
    at System.Xml.XmlTextWriterBase64Encoder.WriteChars(Char[] chars, Int32 index, Int32 count) 
    at System.Xml.Base64Encoder.Encode(Byte[] buffer, Int32 index, Int32 count) 
    at System.Xml.XmlTextWriter.WriteBase64(Byte[] buffer, Int32 index, Int32 count) 
    at System.Xml.Serialization.XmlSerializationWriter.WriteElementStringRaw(String localName, String ns, Byte[] value, XmlQualifiedName xsiType) 
    at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterRepositoryWebservice.Write7_Resource(String n, String ns, Resource o, Boolean isNullable, Boolean needType) 
    at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterRepositoryWebservice.Write12_ResourceTransfer(String n, String ns, ResourceTransfer o, Boolean isNullable, Boolean needType) 
    at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterRepositoryWebservice.Write42_TransferResources(Object[] p) 
    at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer47.Serialize(Object objectToSerialize, XmlSerializationWriter writer) 
    at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id) 
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Serialize(SoapClientMessage message) 
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) 
    at Umbraco.Courier.RepositoryProviders.WebServiceProvider.RepositoryWebservice.TransferResources(ResourceTransfer[] resources, String user, String pass) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.RepositoryProviders\WebserviceProvider\webservice.cs:line 1094 
    at Umbraco.Courier.RepositoryProviders.CourierWebserviceRepositoryProvider.TransferResources(ResourceTransfer[] resources) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.RepositoryProviders\WebserviceProvider\CourierWebserviceRepositoryProvider.cs:line 286 
    at Umbraco.Courier.Core.ExtractionManager.ExtractItemResources(Item item, ResourceExtractionOrder order) 
    at Umbraco.Courier.Core.ExtractionManager.ExtractResources(ResourceExtractionOrder order) 
    at Umbraco.Courier.UI.Dialogs.CommitItem.TransferAndExtractOnSelectedRepo(String repo) 
    at Umbraco.Courier.UI.Dialogs.CommitItem.oneSteptransfer(Object sender, EventArgs e) 
    at System.Web.UI.WebControls.Button.OnClick(EventArgs e) 
    at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) 
    at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) 
    at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) 
    at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) 
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

    Hope you can help :)

  • Rich Green 2246 posts 4008 karma points
    Sep 01, 2011 @ 11:56
    Rich Green
    0

    Hi,

    What version of Courier are you using? Maybe grab a later version (2.1.1) from here http://nightly.umbraco.org/UmbracoCourier/

    Rich

  • Per Ploug 865 posts 3491 karma points MVP admin
    Sep 01, 2011 @ 12:18
    Per Ploug
    0

    What are you trying to transfer? Courier will serialize all your stuff in memory so it can take some resources, but it shouldn't ever require so much memory that you would run out, (one of my largest test revisions is about 8mb)

  • Kevin Blake 23 posts 45 karma points
    Sep 01, 2011 @ 12:21
    Kevin Blake
    0

    Each of those nodes do have some reasonably large source images associated with them (5-10mb)

    I'm using version 2.1, and (probably rather foolishly) running the local dev site under IIS Express, which may well be the problem.  Restarting the IIS Express process has made the problem go away, so most likely running into some memory limits there..

    I'll try the next large deployment through full IIS for comparison, but I suspect that's the problem.

    Thanks for your help :)

Please Sign in or register to post replies

Write your reply to:

Draft