Memories leak when creating SDL projects automatically.

For our business we are creating a lot of SDL projects automatically using a service which is using SDL API. The project that we created as a file which had been converted to sdlxliff and on which we performed pre-translation with memories that we have created using TMX.

Our problem is that the SDL version after SDL 2014 had introduced more memories leak which don’t allow us to upgrade to a new version because the service that is creating project is crashing. That is preventing us to use the functionality of SDL 2015.

What we identify is by just creating a project with a project template that has a size of 532Kb we are losing 4.5MG per project.

Is it possible to correct or find a bypass to this bug?

Parents Reply Children
  • In the previous version of SDL (SDL 2014 without service pack) we were able to create automatically SDL projects. But in later version of SDL our server was crashing because more and memory ram was taken until the server crash.

    We had performed several tests and we also test to create empty SDL project with the API and loading a template with a size 532KB. What we notice is that is the size of the project template that is important not what is inside.

    By watching the memory ram on our server we can clearly see a slop and that each time we create a SDL package we are taking ram from the server that is not getting release. After a point when the server has lost too much memory SDL is crashing but we don’t have the error OutoMemoryException.
  • In fact with an OutOfMemoryException after creating a number of SDL projects. The error is below:


    Problem with sdl creation 5989867_RO-EN:System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
    at System.Xml.Linq.XContainer.get_LastNode()
    at System.Xml.Linq.XContainer.<Nodes>d__0.MoveNext()
    at Sdl.Core.Settings.Implementation.Xml.Setting.WriteXml(XmlWriter writer)
    at Sdl.Core.Settings.Implementation.Xml.SettingsGroup.WriteXml(XmlWriter writer)
    at Sdl.Core.Settings.Implementation.Xml.SettingsBundle.WriteXml(XmlWriter writer)
    at Sdl.Core.Settings.Implementation.SettingsBundle.WriteXml(XmlWriter writer, Boolean includeInheritedSettings)
    at Sdl.ProjectApi.Implementation.Xml.SettingsBundle.SaveSettingsBundle(ISettingsBundle settingsBundle)
    at Sdl.ProjectApi.Implementation.SettingsBundlesList.SerializeSettingsBundle(Guid guid, ISettingsBundle settingsBundle)
    at Sdl.ProjectApi.Implementation.AbstractProjectConfiguration.set_Settings(ISettingsBundle value)
    at Sdl.ProjectApi.Implementation.Project.set_ProjectTemplate(IProjectTemplate value)
    at Sdl.ProjectApi.Implementation.ProjectServer.CreateNewProject(String projectName, Language sourceLanguage, Language[] targetLanguages, IProjectTemplate projectTemplate, String localDataFolder)
    at Sdl.ProjectAutomation.FileBased.FileBasedProject..ctor(ProjectInfo projectInfo, ProjectTemplateReference templateReference)
    at DGTRAD.SPTwistService.ClassSDL.createprojectjob(FileBasedProject newProject, String languagesource, String languagetarget, ProjectTemplateReference defaulttemplate, Boolean istwocolumns)
    Total time taken for createprojectjob: 33,4561706 sec
    starts to create project bis:5989867_RO-EN
    try to load project
    restart creation project
    ERROR: error error 404 the rest client file doesn't exist on the server : tradlabdas01:8088/.../ Failed to load project template from 'R:\SDL_projects\16_02_2016_17.20.39_5989867_RO-EN\Template_Project.sdltpl':
    Exception of type 'System.OutOfMemoryException' was thrown. ---> System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
    at System.Xml.XmlDocument.CreateTextNode(String text)
    at System.Xml.XmlLoader.LoadAttributeNode()
    at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)
    at System.Xml.XmlLoader.ReadCurrentNode(XmlDocument doc, XmlReader reader)
    at System.Xml.XmlDocument.ReadNode(XmlReader reader)
    at System.Xml.Serialization.XmlSerializationReader.ReadXmlNode(Boolean wrapped)
    at Sdl.ProjectApi.Implementation.XmlSerialization.ProjectTemplateSerialization.XmlSerializationReaderProjectTemplate.Read59_SettingsBundle(Boolean isNullable, Boolean checkType)
    at Sdl.ProjectApi.Implementation.XmlSerialization.ProjectTemplateSerialization.XmlSerializationReaderProjectTemplate.Read75_ProjectTemplate(Boolean isNullable, Boolean checkType)
    at Sdl.ProjectApi.Implementation.XmlSerialization.ProjectTemplateSerialization.XmlSerializationReaderProjectTemplate.Read76_ProjectTemplate()
    at Sdl.ProjectApi.Implementation.XmlSerialization.ProjectTemplateSerialization.ProjectTemplateSerializer.Deserialize(XmlSerializationReader reader)
    at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
    at System.Xml.Serialization.XmlSerializer.Deserialize(Stream stream)
    at Sdl.ProjectApi.Implementation.Xml.ProjectTemplate.Deserialize(String path)
    at Sdl.ProjectApi.Implementation.ProjectTemplate.Load(String projectTemplateFilePath)
    --- End of inner exception stack trace ---
    at Sdl.ProjectApi.Implementation.ProjectTemplate.Load(String projectTemplateFilePath)
    at Sdl.ProjectApi.Implementation.ProjectTemplate..ctor(ProjectServer server, String projectTemplateFilePath)
    at Sdl.ProjectApi.Implementation.ProjectServer.ImportProjectTemplate(String projectTemplateFilePath)
    at Sdl.ProjectAutomation.FileBased.FileBasedProject..ctor(ProjectInfo projectInfo, ProjectTemplateReference templateReference)
    at DGTRAD.SPTwistService.ClassSDL.RecreateProject(FileBasedProject newProject, String projectname, String sdlprojectpath, String languagesource, String languagetarget, Boolean istwocolumns, ProjectTemplateReference defaulttemplate)
    at DGTRAD.SPTwistService.ClassSDL.startjob(String projectname, TMParameter[] TMs, Pretranslation[] tmPretranslat, String languagesource, String languagetarget, String temptemplatepath, String[] docsToTranslate, String[] referenceDocs, UpdateMemory updateMemory, String urlresponse, String rqID, Boolean istwocolumns)