Professional OPC
Development Tools

logos

Online Forums

Technical support is provided through Support Forums below. Anybody can view them; you need to Register/Login to our site (see links in upper right corner) in order to Post questions. You do not have to be a licensed user of our product.

Please read Rules for forum posts before reporting your issue or asking a question. OPC Labs team is actively monitoring the forums, and replies as soon as possible. Various technical information can also be found in our Knowledge Base. For your convenience, we have also assembled a Frequently Asked Questions page.

Do not use the Contact page for technical issues.

Application crash in OPC code

More
26 May 2022 09:37 #10899 by support
Hello,

it might be a known problem - please update first to 5.63.194.1.

Best regards

Please Log in or Create an account to join the conversation.

More
26 May 2022 09:34 #10898 by spicerno
Hello,

after upgrading the quick opc version to Quick OPC 2022.1 (5.63.121) we're experiencing a crash when interacting with an OPC DA server.
we were successfully using a really old version of quickopc from 2018, and we had to revert back to it to keep the system running.

Our application is a windows service implemented in .net 4.7.x , running on windows 2016.

An unhandled exception is fired on system threadpool and leads to application crash.

Here is the stack trace:
Application: NeptuneDataCollector.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ArgumentException
   at OpcLabs.EasyOpc.DataAccess.Implementation.HandleMappingEasyDAClient.GetInnerHandle(Int32)
   at OpcLabs.EasyOpc.DataAccess.Implementation.HandleMappingEasyDAClient.ChangeMultipleItemSubscriptions(OpcLabs.EasyOpc.DataAccess.OperationModel.DAHandleGroupArguments[])
   at OpcLabs.EasyOpc.DataAccess.Implementation.DelegatingEasyDAClient.InnerChangeMultipleItemSubscriptions(OpcLabs.EasyOpc.DataAccess.IEasyDAClient, OpcLabs.EasyOpc.DataAccess.OperationModel.DAHandleGroupArguments[])
   at OpcLabs.BaseLib.Collections.Generic.Extensions.IReadOnlyListExtension+<>c__DisplayClass6_0`1[[System.ValueTuple`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<IfThenElse>b__1(System.Collections.Generic.IReadOnlyList`1<System.ValueTuple`2<System.__Canon,System.__Canon>>)
   at OpcLabs.BaseLib.Collections.Generic.Extensions.IReadOnlyListExtension.IfThenElse[[System.ValueTuple`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.ValueTuple`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IReadOnlyList`1<System.ValueTuple`2<System.__Canon,System.__Canon>>, System.Predicate`1<System.ValueTuple`2<System.__Canon,System.__Canon>>, System.Func`2<System.Collections.Generic.IReadOnlyList`1<System.ValueTuple`2<System.__Canon,System.__Canon>>,System.Collections.Generic.IEnumerable`1<System.ValueTuple`2<System.__Canon,System.__Canon>>>, System.Func`2<System.Collections.Generic.IReadOnlyList`1<System.ValueTuple`2<System.__Canon,System.__Canon>>,System.Collections.Generic.IEnumerable`1<System.ValueTuple`2<System.__Canon,System.__Canon>>>)
   at OpcLabs.EasyOpc.DataAccess.Implementation.DelegatingEasyDAClient.DelegatedChangeMultipleItemSubscriptions(System.Collections.Generic.IReadOnlyList`1<OpcLabs.EasyOpc.DataAccess.OperationModel.DAHandleGroupArguments>)
   at OpcLabs.EasyOpc.DataAccess.Implementation.DelegatingEasyDAClient.ChangeMultipleItemSubscriptions(OpcLabs.EasyOpc.DataAccess.OperationModel.DAHandleGroupArguments[])
   at OpcLabs.EasyOpc.DataAccess.Implementation.HandleMappingEasyDAClient.ChangeMultipleItemSubscriptions(OpcLabs.EasyOpc.DataAccess.OperationModel.DAHandleGroupArguments[])
   at OpcLabs.EasyOpc.DataAccess.Implementation.EasyDAClientCompositor.ChangeMultipleItemSubscriptions(OpcLabs.EasyOpc.DataAccess.OperationModel.DAHandleGroupArguments[])
   at OpcLabs.BaseLib.Collections.Generic.Extensions.IEnumerableExtension.ForAll[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IEnumerable`1<System.__Canon>, System.Action`1<System.__Canon>)
   at OpcLabs.EasyOpc.DataAccess.Optimization.Implementation.RequestChunkingEasyDAClient.ChangeMultipleItemSubscriptions(OpcLabs.EasyOpc.DataAccess.OperationModel.DAHandleGroupArguments[])
   at OpcLabs.EasyOpc.DataAccess.Implementation.DelegatingEasyDAClient.ChangeMultipleItemSubscriptions(OpcLabs.EasyOpc.DataAccess.OperationModel.DAHandleGroupArguments[])
   at OpcLabs.EasyOpc.DataAccess.Implementation.DelegatingEasyDAClient.ChangeMultipleItemSubscriptions(OpcLabs.EasyOpc.DataAccess.OperationModel.DAHandleGroupArguments[])
   at OpcLabs.EasyOpc.DataAccess.Implementation.HandleMappingEasyDAClient.ChangeMultipleItemSubscriptions(OpcLabs.EasyOpc.DataAccess.OperationModel.DAHandleGroupArguments[])
   at OpcLabs.EasyOpc.DataAccess.Implementation.StateLockingEasyDAClient.OnLastUnlockState()
   at OpcLabs.EasyOpc.DataAccess.Implementation.StateLockingEasyDAClient.UnlockState()
   at OpcLabs.EasyOpc.DataAccess.Optimization.Implementation.SubscriptionBlendingEasyDAClient.SubscribeMultipleItems(OpcLabs.EasyOpc.DataAccess.OperationModel.EasyDAItemSubscriptionArguments[])
   at OpcLabs.EasyOpc.DataAccess.Implementation.HandleMappingEasyDAClient.MappedSubscribeMultipleItems(System.Collections.Generic.Dictionary`2<Int32,OpcLabs.EasyOpc.DataAccess.OperationModel.EasyDAItemSubscriptionArguments>)
   at OpcLabs.EasyOpc.DataAccess.Implementation.DelegatingEasyDAClient+<>c__DisplayClass11_0.<SubscribeMultipleItems>b__1()
   at OpcLabs.EasyOpc.DataAccess.Implementation.DelegatingEasyDAClient+<>c__DisplayClass110_0.<QueueBackEndAction>b__0()
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at OpcLabs.BaseLib.Threading.WorkItem.Execute()
   at OpcLabs.BaseLib.Threading.FifoExecution.ProcessQueuedItems(System.Object)
   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()

Is it a known problem ? Is there a way to mitigate it ?

Thanks in advance
Stefano

Please Log in or Create an account to join the conversation.

Moderators: support
Time to create page: 0.055 seconds