Stack Overflow resolution

  • 7011196
  • 12-Dec-2011
  • 19-Oct-2012

Resolution

In versions of Access Governance Suite prior to 5.5, a recursive role structure (where a Business role requires a role that also inherits it) can cause a stack overflow.  Though this has been fixed in 5.5, clients running an earlier version may still encounter this problem and need to identify the offending roles to correct them (Access Governance Suite is not designed to handle recursive roles).

To do this, enable debug logging on the PlanCompiler by including the following line in the <IIQ Install Directory>/WEB-INF/classes/log4j.properties file and then reloading the log4j.properties file by restarting the application server.  (The log4j.properties file can also be reloaded from the Access Governance Suite debug pages.)

        log4j.logger.sailpoint.provisioning.PlanCompiler=debug

Then examine the log messages matching these statements:

  • log.debug("Compiling " + _operation + " entitlements for role " + role.getName());
  • log.debug("Walking inheritance hierarchy for " + role.getName());
  • log.debug("Finished inheritance hierarchy for " + role.getName());
  • log.debug("Walking requirements hierarchy for " + role.getName());
  • log.debug("Finished requirements hierarchy for " + role.getName());
  • log.debug("Compiling effective profile plans for " + role.getName());

The recursive records will result in the same set of role names being logged over and over again.  Those roles must be corrected to prevent the stack overflow from occurring.