Professional OPC
Development Tools

logos

Subscription mode. Catastrophic failure error

More
14 Feb 2020 13:42 #8225 by Andriy
Hello,

I removed my "opc server stuck" detection logic and upgraded opc library to version 5.56.1055.1.
It still does not work. It looks like we have a similar problem.
Can you investigate opc threads call stacks?

I'm planing to upgrade opc library to last available version 5.56.1073 and add "opc server stuck" detection logic.
Regards

File Attachment:

File Name: threads_sh...2.20.txt
File Size:11 KB

File Attachment:

File Name: threads_ca...2.20.txt
File Size:159 KB
Attachments:

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

More
07 Feb 2020 11:41 #8209 by Andriy
Hello

I have updated the opc library to the version 5.56.1055.1. It should run several days to be sure that the problem is solved.
I also changed shared parameters on the EasyDAClient class as you recommended before. I got an exception when applying them after the first instance of EasyDAClient class was created.
I have registered a separate topic
Change shared parameters causes exception

Regards

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

More
01 Feb 2020 13:20 #8194 by support
I have made a change in which unexpected conditions while disconnecting should not result in a hang. This is, however, not a proper solution, because I still do not know what this unexpected condition might have been. But it is worth trying, being the best I can offer at this moment.

The fix is is in the latest QuickOPC 2019.2, build 5.56.1055.1 or later.

Regards

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

More
30 Jan 2020 08:17 #8181 by support
We will prepare a new (patched) build and and I will make a new post here when it is ready. There currently isn't a useful logging we can turn on; debug symbols could be useful if we knew what the original cause was, but not that much at the point of hang, as for that moment the information I have from the call stack is enough .

The item counts are quite high. In any case (independent of the fix), I recommend that you also do this:
              EasyDAClient.ClientParameters.LinkCallbackQueueSize = 500000;
              EasyDAClient.ClientParameters.RequestQueueSize = 500000;
              EasyDAClient.ClientParameters.ResponseQueueSize = 500000;
              EasyDAClient.EngineParameters.TopicLruSize = 500000;
              EasyDAClient.EngineParameters.DefaultEventQueueSize = 500000;
These are all static parameters on the EasyDAClient class that need to be set once, before a first instance of it is created.

Best regards

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

More
27 Jan 2020 17:30 #8174 by Andriy
Hello

it is very hard to count the number of opc items my application has subscribed to. it is about 20K -30K items, maybe more.
You can provide opc library debug symbols file or patch file to understand/verify your idea. If opc library supports debug logging I can enable it also.
Unfortunately this problem happens on the customer site

Best regards

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

More
27 Jan 2020 17:03 #8173 by support
Hello.

I have analyzed the call stacks. I do not see a true deadlock (two locks taken on two threads in reverse order). But most of the threads seem to be waiting for a "disconnect to happen on a particular server, and I do not see the thread that should be "working" on the disconnect. So in that sense, it is understandable that things get blocked.

But the question is, where is the thread that should have been working on the disconnect? It looks like that it is gone before it had a chance to notify the other thread (that is waiting on it) that the disconnect has been finished. I do not know the reason for that. I can guess that it has abnormally terminated - and that would be the true issue that we need to hunt. I am thinking that, just as a precaution, maybe I can add some code that would assure that the waiting thread is always notified. Need to think this through.

A question: How many items are you dealing with, roughly?

Regards

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

More
23 Jan 2020 14:23 #8165 by support
I started to work on it but got distracted; it is complicated and needs uninterrupted to focus on. I hope to do continue on it over this coming weekend.

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

More
22 Jan 2020 10:36 #8161 by Andriy
Hello,

My application accesses to 3 OPC DA servers and 1-2 OPC XML-DA servers.
Do you have any progress?

Best regards

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

More
20 Jan 2020 17:17 #8158 by support
Hello,

are you mixing in your application access to OPC DA and OPC XML-DA servers?
Not that there is anything wrong with it. I just noticed it in the call stacks, and want to verify whether it is intentional.

Regards

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

More
16 Jan 2020 08:30 #8137 by support
Thank you - that's what I needed.
I will analyze it and let you know here.

Best regards

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

Moderators: support
Time to create page: 0.226 seconds

      

 Recommend this on Google