Environment
Novell Data Synchronizer Mobility Pack
Situation
High Utilization on Mobility Python Process
Mobility Python Process starts up fine and after few hours the CPU Utilization for Mobility goes above 100% and stays above 100%
/var/log/datasync/connectors/default.pipeline1.mobility-AppInterface.log does not show any errors
Resolution
There could be many reasons for High Utilization on Mobility Python Process. Follow the steps listed below to see if it helps.
-
Upgrade to the latest version of Mobility Pack. Latest Version of Mobility Pack can be found at https://download.novell.com/patch/finder
-
Upgrade to the latest version of GroupWise Support Pack. Latest Version of GroupWise Support Pack can be found at
https://download.novell.com/patch/finder
The following steps talk about one specific reason where the Mobility Connectors keep on querying the same deviceId over and over again causing high utilization.
-
Browse to /var/lib/pgsql/data/.
-
Edit postgresql.conf file.
-
Change "log_min_duration_statement = -1" to "log_min_duration_statement = 0".
-
Save the file.
-
Type "rcdatasync stop" and press Enter.
-
Type "rcpostgresql restart" and press Enter.
-
Type "rcdatasync start" and press Enter.
-
Wait for the problem to happen and then check the log files in /var/lib/pgsql/data/pg_log/.
-
Check for something like the following.
2012-04-05 18:22:53 PDT mobility datasync_user LOG: duration: 0.288 ms statement: SELECT * FROM FolderMaps WHERE deviceId = E'f506141161aa11e18ff33c4a92e84b00' AND folderId = E'20120227172600-750215'
2012-04-05 18:22:53 PDT mobility datasync_user LOG: duration: 0.318 ms statement: SELECT * FROM FolderMaps WHERE deviceId = E'f506141161aa11e18ff33c4a92e84b00' AND folderId = E'20120227172544-341801'
Note: The deviceId is repeated over and over again for different folderIDs. In this case the Mobility Python Process keeps on quering the FolderMaps table with this DeviceID for different folders over and over again (at least twice every second) -
Note down the deviceID. In the example above it is "f506141161aa11e18ff33c4a92e84b00".
-
Type psql -U datasync_user mobility and press Enter.
-
Enter in the database password. If the database password is not known, please check /etc/datasync/configengine/configengine.xml file as the password is stored in plaintext in the following format
<db>datasync</db>
<username>datasync_user</username>
<password>novell</password> -
Once in the database, please type select userid from devices where deviceid = 'f506141161aa11e18ff33c4a92e84b00';
Note: Make sure to replace the deviceid string with the one you have identified and put a ; at the end of the command. -
The output should be similar to the following
userid
----------------------
cn=user25,ou=gw,o=my
(1 row) -
Note down the user and type \q to exit the database.
-
Remove the user shown from both the connectors (groupwise and mobility).
-
Restart DataSync to make sure that the problem does not happen again.
-
Run GWCheck with Contents/Fix on the user account and add the user again to both the connectors
Status
Reported to EngineeringAdditional Information
There were also a lot of I utilization fixed in Mobility 2.0. The following is a link to The Mobility 2.0 code:
https://download.novell.com/Download?buildid=xWnnbrV7Xic~
https://download.novell.com/Download?buildid=xWnnbrV7Xic~