Hi,
I am working on a simple protocol. It was working fine before the Christmas break. After the break I found the protocol reporting some errors in the log - nothing has changed.
The errors mention QAction 900011 and 900012 which are not part of my protocol. See the subset of the log below.
Does anyone know what is going on?
2023/02/01 17:52:11.107|SLProtocol - 5584 - PC Reboot Manager DEV|3300|CManagedScript::Load|ERR|-1|Compilation failed for QAction 900012
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)2023/02/01 17:52:11.107|SLProtocol - 5584 - PC Reboot Manager DEV|15444|CQAction::Run|ERR|-1|QAction [900012] triggered by [pid=65129/idx=-1/pk=/user=] failed. (0x8004022D)
Input: new = <NULL>
Input: old = <NULL>
Input: extra = <NULL>2023/02/01 17:52:11.108|SLProtocol - 5584 - PC Reboot Manager DEV|15444|CProtocol::ProtocolThreadFunc|DBG|0|-- Polling enabled.
2023/02/01 17:52:11.139|SLProtocol - 5584 - PC Reboot Manager DEV|3300|CManagedScript::Load|ERR|-1|Compilation failed for QAction 2
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)2023/02/01 17:52:11.149|SLProtocol - 5584 - PC Reboot Manager DEV|15444|CQAction::Run|ERR|-1|QAction [2] triggered by [pid=2/idx=-1/pk=/user=] failed. (0x8004022D)
Input: new = <NULL>
Input: old = <NULL>
Input: extra = <NULL>2023/02/01 17:52:11.164|SLProtocol - 5584 - PC Reboot Manager DEV|14312|CManagedScript::Load|ERR|-1|Compilation failed for QAction 900011
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)2023/02/01 17:52:11.164|SLProtocol - 5584 - PC Reboot Manager DEV|11240|CQAction::Run|ERR|-1|QAction [900011] triggered by [pid=65128/idx=-1/pk=/user=] failed. (0x8004022D)
Input: new = <NULL>
Input: old = <NULL>
Input: extra = <NULL>**********
Thanks.
Hi,
QActions 900011 and 900012 are QActions that are automatically added by DataMiner to enable the correct functionality of some extra added items (e.g. like can be found under the General Parameters).
When it tries to execute these QActions, it cannot compile it because there is not enough memory to continue.
I don't think that there is something wrong with those QActions themselves, as the error is also happening with other QActions (like QAction2 as the logging shows).
The advice here would be to take a look at the physical resources: is there enough free hard disk space left on the C drive? Is there enough RAM left? How much memory is the SLScripting process using->is it close to 4GB (which is the max 32-bit limit)?
Hi Trong,
As this is an out of memory exception, and as nothing changed in the protocol, it will probably indeed not be related to the protocol.
Is the total memory usage of the DM system high (>90%) or is the SLScripting process using a lot of memory (>3GB)?
Hi,
According to the Windows Task Manager, memory usage on the server is hovering around 75% (out of 32GB), the SLScripting process is using about 1GB only.
I just checked again this morning and the issue had gone away - as mysteriously as when it appeared, nothing had changed.
So definitely caused by environmental factors as Laurens and Matthijs suggested.