Problem Note 66716: The CAS REST API stops responding when a user with specific username case conditions reconnects to a CAS session
You encounter issues with the SAS® Cloud Analytic Services (CAS) REST application programming interface (API) if these conditions are met:
- An administrator enables the CAS environment variables env.CASUSERIGNORECASE='on' and env.CASUSERLOWERCASE='on'.
- A user with a lowercase host user name and uppercase or mixed-case LDAP user name reconnects to a CAS session using the CAS REST API. For example, the host user name is myuser and the LDAP user name is MYUSER.
- The user is not a member of the SAS Administrators custom group.
In this scenario, the following error appears in the CAS controller log (/opt/sas/viya/config/var/log/cas/default/cas_timestamp_host_pid.log):
ERROR MAIN NoUser MAIN [sessionmanager_tksc.c:7289] - callMethod: Unknown method for class String: equalsIgnoreCase (ltkscript.lang.String;)b
After a user encounters this issue, the CAS REST API is no longer usable, which leads to multiple SAS® Viya® problems such as the following:
- The Logs section of SAS® Environment Manager shows "An error occurred filtering the log messages".
- The Machines section of SAS Environment Manager shows "No information is available".
- The System Health section of the SAS Environment Manager dashboard shows "Connection timed out for selected server".
- The Consul logs on the cas-administration host display time-out messages similar to the following for the casProxy service:
[WARN] agent: Check "service:casProxy-10-104-84-59" HTTP request failed: Get https://example.com:19400/casProxy/commons/health: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
- Any functionality that uses casProxy or the CAS REST API fails.
Note that triggering the problem does not require manual usage of the CAS REST API. A user that meets the user name case requirements can cause the problem simply by browsing various sections of SAS Environment Manager.
The problems can be resolved by restarting the CAS server. The CAS server might not stop normally via service or systemctl commands after this problem occurs. If the server does not stop completely, it cannot be started again. In this case, an administrator can issue ps -ef | grep "cas start" and kill the process that is returned.
The problem reoccurs anytime a user meeting the requirements described above interacts with the CAS REST API.
One workaround is to disable the env.CASUSERIGNORECASE='on' and env.CASUSERLOWERCASE='on' variables until the fix is applied. However, this action prevents a user from successfully starting CAS sessions if the user is a member of the CASHostAccountRequired custom group.
Click the Hot Fix tab in this note for a link to instructions about accessing and applying the software update.
Operating System and Release Information
SAS System | SAS Viya | Linux for x64 | 3.5 | 3.5 | Viya | Viya |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
Type: | Problem Note |
Priority: | alert |
Date Modified: | 2020-10-26 08:43:50 |
Date Created: | 2020-10-05 12:47:51 |