RAS Telnet Shell/SSH Shell failed with an error 'Script did not fully finish, had: 4 commands left java.lang.RuntimeException: match timed out after: 1ms'

  • KM03810242
  • 19-May-2021
  • 19-May-2021

Summary

A step from a 'RAS Telnet Shell' and 'SSH Shell' operation might fail with an error 'Script did not fully finish, had: 4 commands left java.lang.RuntimeException: match timed out after: 1ms' due to a stackoverflow happened in JVM.

Error

In some OO environment, a step from a 'RAS Telnet Shell' operation located under 'Library/Operations/Remote Command Execution/Telnet' and an 'SSH Shell' operation under '/Library/Operations/Remote Command Execution/SSH/v1.0' and '/Library/Operations/Remote Command Execution/SSH/v2.0' in a Base Content Pack can fail with the following error message:

  Script did not fully finish, had: 4 commands left java.lang.RuntimeException: match timed out after: 1ms
   Instructions left: 4

Cause

One of possible causes of this kind of problem is a stackoverflow error happed in JVM while a regex expression specified in an 'expect' statement in the 'command' step input is trying to match a large output from a previous 'send' statement.

Fix

In such a case, try to increase a stack size in JVM for a worker that executes a step from a 'RAS Telnet Shell' or 'SSH Shell' operation. To do so, modify the following line in <OO_HOME>/central/conf/central-wrapper.conf for Central and/or <OO_HOME>/ras/conf/ras-wrapper.conf for RAS and increase the stack size.

  wrapper.java.additional.12=-Xss1024k

For Studio, add a line like below to <OO_HOME>/studio/Studio.l4j.ini and adjust the stack size.

  -Xss4m

Central, RAS and Studio need to restart in order for an increased stack size to take effect.


Another option to get around the error, adjust a regex in a problematic 'expect' statement and/or the large output from the previous 'send' statement in the 'command' step input.