8.0.16 Upgrade thousands of timed Waiting Threads Lower Performance OPC UA and Perspective

Attaching Thread Dump. After a restart, I have just a couple hundred timed waiting threads. Then I get a bunch of perspective worker thread and OPC-UA Platform Executor threads. My gateway crashes when it gets to about this level. And My devices are going stale. Where it doesn’t throw any errors through the tags or through the OPC module. It acts as if the connection is fine. But, tags are changing in PLC and not in Ignition.

Ignition-IS-DP-IGNITION_thread_dump20201201-114602.txt (2.8 MB)

Sounds like you need a more powerful gateway. Or look for artificial limits on thread count.

Maybe, but it also seems like a binding or some script read/write has gone into a loop or otherwise run out of control…

Ooo! Bet there’s a sleep in there.

I’m not calling time.sleep anywhere. I do have a more powerful server I am setting up and moving to Linux system. But, this started with 8.0.16. Wonder why I wouldn’t of had these problems on a prior version.

I am experiencing the same issue. Im using 8.1.3. Did anyone find the solution to this problem?

I’ve got a beffy server now and upgraded to 8.1

I was really struggling with this tho before I got that done.

We have the same problem on our system since upgrading to 8.1.3 from 8.0.15. Server piles up in about 3 days with hundreds or more of perspective worker threads. I can’t seem to isolate it to any particular project yet. Anyone figure out how to find the originating component or view of the threads? That would help immensely.

James have you figured your situation out?

I think one thing all of these cases have had in common is that they are doing some kind of blocking script call inside a binding transform, which much like runScript is very much discouraged.

1 Like

I got a 32 core server and my problems went awya. But, I’ve never used runScript() and I’ve been very careful with time.sleep. Never inside a binding. Only in events

Thanks Kevin, I’m doing a bit of a sweep on all new additions added since the problem started. Hopefully this is a quick find.

Kevin, thank you so much for the pointer there, we solved this problem. Recently a new view was created with a table and many columns rendered as views to show tag values, and they were all using tag.readBlocking in transforms. We’ve changed this to tag bindings with script transforms for the formatting and it’s all looking great now. Cheers!!

1 Like

Any chance if you are performing database queries in a binding transform you will see the same issue?

Sure, those are blocking network I/O as well.

1 Like