Under some circumstances the above deadlock situations occur. This was noticed for instance during idoc inbound processing in a CUA child system, leading all workprocesses to get occupied.
the personalization object S_PERS_MA_GENER_SEC is set to ‘copy with user’ and ‘distribute with user’ (PERSREG).
But: this object is an old development and there is no known usage in any application for this object.
So if this object is set for one user and the user is copied, the setting is also set for the new user. So there can exist many assignments to users….
Well, during idoc inbound processing the CL_PERS_ACCESS_GENER_MA_SEC is called in seperate task, trying to perform deletions on table content of SPERS_GMA and/or SPERS_GMAS. This can lead to that deadlocks.
Now, how to avoid that?
As there is no (known) usage of that object, first check in tables SPERS_GMA and SPERS_GMAS, if there exist entries with filled field DATA. Normally you won’t find such an entry. In this case, the easiest way to avoid the problem is to drop the entire content of that 2 tables (SE14 or DB-tools).
Attention: as the PERSREG-setting is ‘distribute with user’ , it is necessary to do that also in the CUA central system. Otherwise the table contents will be filled again at next user distribution….