We recently upgraded our SailPoint IdentityIQ environment from 8.4p2 to 8.4p3, and while reviewing the upgrade logs, I noticed that the step RoleAssignmentModelUpgrader took a very long time (more than 2h30, see screenshot below).
I would like to understand:
What exactly does the RoleAssignmentModelUpgrader do?
Which data is processed or transformed during this step?
Which tables or attributes are impacted?
Why can this step take so long compared to the others?
I did not find clear documentation about the internal logic of this upgrader, so any clarification or experience shared by the community would be greatly appreciated.
@Hamza10 RoleAssignmentModelUpgrader iterates through the spt_identity table. In environments with >500k identities with users having multiple roles assigned, this will generate significant DB load and lock rows. In the background, it scans all roles: assigned, and detected and update the mappings. So it was expected to took more than 2 hours in your case.
Note: Found a fix? Help the community by marking the comment as solution. Feel free to react(, , etc.) with an emoji to show your appreciation or message me directly if your problem requires a deeper dive.
I asked SailPoint Support about this to check whether it is normal behavior, and I received the following response. I’m sharing it here so others who are concerned can better understand what RoleAssignmentModelUpgrade is about.
Support SailPoint :“I understand from the case details that you need RoleAssignmentModelUpgrader task info.
The RoleAssignmentModelUpgrader is a system task included in SailPoint IIQ upgrades, designed to update and align the internal data model for role assignments and entitlements. This task is typically triggered automatically as part of the upgrade process, especially when there are changes to how roles, entitlements, or their relationships are modeled or stored in the IIQ database.
Best practice:
Do not run manually unless directed; validate post-upgrade assignments.
When to Run: Automatically during upgrade; manually only if instructed”
So @ajmerasunny , the first answer, your initial one was correct — thank you very much.
And thank you as well, @neel193, yours was correct as well !