[OutDoc] [EspaceMetaModel] CorruptFile error and IIS crash

[OutDoc] [EspaceMetaModel] CorruptFile error and IIS crash

  
Forge Component
(23)
Published on 27 Sep by OutSystems
23 votes
Published on 27 Sep by OutSystems

After using EspaceMetaModel for generating XML of over 200 OMLs, I got a CorruptFile error


CorruptFile: CorruptFile    at OutSystems.Oml.Oml.LoadFromInner_ReadFile(Stream stream, Boolean recoverMode, String productKey)
   at OutSystems.Oml.Oml.LoadFrom(Stream stream, Boolean recoverMode, ObjectKey newKeyForClone, String productKey, Boolean skipUpgrade, IInformationForESpaceUpgrade informationForUpgrader)
   at OutSystems.Oml.Oml..ctor(Stream stream, Boolean recoverMode, ObjectKey newKeyForClone, String productKey, Boolean skipUpgrade, IInformationForESpaceUpgrade informationForUpgrader, Boolean useStorage)
   at ServiceStudio.Model.ESpace.OmlLoader.Load(Stream stream, Boolean recoverMode, ObjectKey newKeyForClone, String productKey, IInformationForESpaceUpgrade informationForUpgrader, Func`4 eSpaceConstructor, Boolean readOnly)
   at ServiceStudio.Model.ESpace.Load(Stream stream, String initialLastSavePath, Boolean isUnregisteredESpace, Boolean readOnlyMode, Boolean recoverMode, ObjectKey newKeyForClone, String productKey, Nullable`1 forceModifiedFlag, IInformationForESpaceUpgrade informationForUpgrader)
   at ServiceStudio.Model.ESpace.Load(Byte[] bytes, String initialLastSavePath, String productKey, Nullable`1 forceModifiedFlag, IInformationForESpaceUpgrade informationForUpgrader)
   at ServiceStudio.Model.ESpace.Load(Byte[] bytes, String productKey, IInformationForESpaceUpgrade informationForUpgrader)
   at OutSystems.NssEspaceMetaModel.EspaceMetaModelWorker.MssGetDocumentation(Byte[] ssOml, String& ssXml, String& ssErrorsXml)


From then on, every time I used GetDocumentation, I got the following error:


Could not load file or assembly 'System.Web.dll' or one of its dependencies. The filename or extension is too long.: Could not load file or assembly 'System.Web.dll' or one of its dependencies. The filename or extension is too long.    at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Activator.CreateInstance(String assemblyString, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(String assemblyName, String typeName)
   at System.AppDomain.CreateInstance(String assemblyName, String typeName)
   at System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName)
   at System.AppDomain.CreateAppDomainManager()
   at System.AppDomain.Setup(Object arg)
   at System.AppDomain.nCreateDomain(String friendlyName, AppDomainSetup setup, Evidence providedSecurityInfo, Evidence creatorsSecurityInfo, IntPtr parentSecurityDescriptor)
   at System.AppDomainManager.CreateDomainHelper(String friendlyName, Evidence securityInfo, AppDomainSetup appDomainInfo)
   at System.AppDomain.InternalCreateDomain(String friendlyName, Evidence securityInfo, AppDomainSetup info)
   at System.AppDomain.CreateDomain(String friendlyName, Evidence securityInfo, AppDomainSetup info)
   at OutSystems.NssEspaceMetaModel.CssEspaceMetaModel.InnerGetDocumentation(Byte[] ssOml, String& ssXml, String& ssErrorsXml)


In fact this error triggered so many times that crashed IIS and the entire environment went down!


Anyone else seen this issue? Does GetDocumentation generates temporary folders and subdirectories that could create very deep branches into the filesystem?