Hi,
I'm trying to update a connector in the environment of a user but the compilation for the QActions fails each time because of an OutOfMemoryException. The device has around 70% total memory usage and no significant memory usage of processes was found.
I also tried changing the version number of an existing functioning connector and this is giving me the same problem for the new version.
This is the error that I'm receiving:
2022/01/03 16:32:06.640|SLProtocol - 4420 - QMU99DELL01_ComSonics QAM Marker|19856|CManagedScript::Load|ERR|-1|Compilation failed for QAction 1
System.OutOfMemoryException: Insufficient memory to continue the execution of the program.
at System.Runtime.InteropServices.Marshal.AllocHGlobal(IntPtr cb)
at System.Reflection.Internal.NativeHeapMemoryBlock.DisposableData..ctor(Int32 size)
at System.Reflection.Internal.StreamMemoryBlockProvider.ReadMemoryBlockNoLock(Stream stream, Boolean isFileStream, Int64 start, Int32 size)
at System.Reflection.PortableExecutable.PEReader..ctor(Stream peStream, PEStreamOptions options, Int32 size)
at Microsoft.CodeAnalysis.ModuleMetadata.CreateFromStream(Stream peStream, PEStreamOptions options)
at Microsoft.CodeAnalysis.MetadataReference.CreateFromFile(String path, MetadataReferenceProperties properties, DocumentationProvider documentation)
at Skyline.DataMiner.Scripting.CodeBuilder.CompileWithRoslyn()
at Skyline.DataMiner.Scripting.CodeBuilder.BuildCSharp()
at CManagedScript.Load(CManagedScript* , tagVARIANT varContent, Int32 iCoding, Int32 iResourceType, tagVARIANT varOptions, IUnknown* pProtocol, Int32* piCookie)
QActions get compiled as part of the SLScripting process.
My guess is that either the process is near its limit (about 4GB VM size), or that there's a problem with one of the referenced DLLs (but that is more unlikely).
In any case, there is not enough free memory available in the process or system to continue.
Best option would be to restart the DataMiner Agent (assuming the memory usage grew over time).