000035099 - 'su: cannot set user id: Resource temporarily unavailable' error when logging in to the Application Server as the Oracle user in RSA Identity Governance & Lifecycle

Document created by RSA Customer Support Employee on May 1, 2017Last modified by RSA Customer Support on Jun 18, 2020
Version 2Show Document
  • View in full screen mode

Article Content

Article Number000035099
Applies ToRSA Product Set: RSA Identity Governance & Lifecycle
RSA Version/Condition: All
Platform (DB): Oracle
IssueLogins to the RSA Identity Governance & Lifecycle application server as the oracle operating system user fail with the following error:
      su: cannot set user id: Resource temporarily unavailable

This error occurs when logging in directly as the oracle user, or when using the su - oracle command.

Another symptom is excessive oracle processes with names ora_p001_AVDB through ora_p02n_AVDB. Login as the root user and execute the following command to check for these oracle processes:

ps -ef | grep ora_
CauseThis error indicates that there are no more threads available for the oracle operating system user.

By default, the /etc/security/limits.conf file is configured as follows:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

To check on used threads that would affect the above settings, execute this command as the root user:

ps -u oracle -L | wc -l

You will notice that your number of threads has reached the hard limit for nproc set in the /etc/security/limits.conf file.

Causes for reaching the nproc limit vary but in the case for which this RSA Knowledge Base Article was written, the nproc limit had been reached because the default parameter settings for parallel processing had been modified which created a large amount of parallel slave processes by default at every database restart, and each process used multiple threads which quickly exhausted the limits.
ResolutionAs mentioned, this issue may have different root causes, which require separate analysis.

In this case, setting the parallel server process numbers back to their default values fixed the problem.
  1. Login as SYSDBA:

If you can login to the server as the oracle user, use this command to login to SQL*Plus:

sqlplus / as sysdba

If nproc is still maxed out, login to the server as the root user and use this command to login to SQL*Plus:

sqlplus sys/<password> as sysdba

  1. Modify the system settings back to their default values:

SQL> alter system set parallel_max_servers = 80 scope = both;
SQL> alter system set parallel_min_servers = 8 scope = both;
SQL> alter system set parallel_servers_target  = 32 scope = both;