Igniton Client frezzing

Hi All, I have been having an issue with one Computer where the client Freezes all the time, i have tried updated JAVA and cleaning out all older versions but still no joy, any thoughts. Computer is running Windows 7 Prof and the Java is V8 update 191
The biggest issues is it is a panel PC and ignition opens in full screen so the only option the operator have is to restart the computer as there is no keyboard.

I’ve had instances where a client has run slow that it appears to be freezing.

Check for a memory fault on the PC, or you might have the max available memory for clients set too high so that the PC hangs. You can find this in project settings in the designer.

Also check the logs on the gateway status page for the client when it freezes, they might point you at something.

1 Like

Every time I investigate an Ignition client freezing issue, it turns out to be programmer error – use of sleep or long loops or slow function calls in the foreground, or propertyChange recursion. The latter is particular nasty, as it often is not obvious – one property changes and it’s script sets another property, which also has a script that sets the first, or causes a binding to evaluate that chains back to the first.

How do you investigate the other causes?

It’s easy search for the usage of “sleep” functions. But finding where long loops happen, or if there are other causes of slow function calls, is pretty hard to me.

We also have a project where there are freezing issues, though it just takes a freeze few seconds and doesn’t happen that often, so it’s manageable. But it’s not very enjoyable for the users.

As the diagnostics window also seems to freeze, I have a really hard time figuring out where it’s coming from.

I generally add a logger to every event script in the window or windows that are prone to freezing, using a project script. The project debug script would be something like this:

logger = system.util.getLogger("MyEventLogger")
def logme(event):
	logger.debugf("Debug %s", msg, event)

Most events would then get this at the top:

project.debug.logme(event)

Property Change events need one of those for each property monitored, within the if-block, like so:

if event.propertyName=='data':
	project.debug.logme(event)

Then I open the project and open the diagnostics and set that logger’s level to DEBUG. I leave the diagnostics window open to the console, preferably fullscreen on a 2nd monitor, so it can be seen even if the diagnostics itself locks up. The diagnostics also runs off the foreground thread, so you can expect it to freeze, but you’ll likely see a flood of log messages just before that.

I comment all of those calls out after the problem is fixed. Consider using the hidden window XML export/import to make bulk changes to event scripts.

2 Likes

If I can’t use a second screen, and the problem isn’t obvious before the freeze is solid, I’ll use the native client launcher’s log file to identify the final java command line for the client. I’ll run that in a terminal so I can review what was logged after I kill the client.

Thanks all for the information i will try some of it out today, I don not believe it is a programming issue as this projects run on over 12 PC in the plant and it is only one that freezes all of the time. If i plug a keyboard in i can quit the client and re boot it so its not Windows it is just the JAVA client.

Did you ever figure out what was causing this?