rPath Appliance Platform Agent:Troubleshooting
From rPath Wiki
|
When using rPath Appliance Platform Agent (rAPA) and developing rAPA plugins, errors are displayed by the different technologies used in the process. Use the following as a guide to troubleshooting error messages received.
Errors from Bad Input Data
When a process receives bad input data, the process does not always report and exception. The following exceptions are, however, reported in the Python dictionary returned as the value in the errors key:
- saveConfig -- If backup location is not mountable, an error is reported
- download -- OSError errors may be reported if the file to download is not readable
- restore -- If restore ID cannot be found, an error is reported
Programming Exceptions
The exceptions shown in the table below indicate a programming error in rAPA, an environment runtime error (such as the SQLite database not being available), or a filesystem error. These exceptions are unlikely to be raised only by input passed into the XML-RPC calls.
| XML-RPC API Call | Exception Name | Detailed Location | Condition(s) |
|---|---|---|---|
| getBackupList | SQL database exceptions (see table) | ||
| ValueError | simplejson/decoder.py | unexpected extra data in json encoding | |
| index | SQL database exceptions (see table) | ||
| ValueError | simplejson/decoder.py | unexpected extra data in json encoding | |
| cherrypy.HTTPRedirect | |||
| saveConfig | SQL database exceptions (see table) | ||
| AssertionError | backup.py:def setRepeatingSchedule | checkFreq param is not one of ['daily', 'weekly', 'monthly'] (case insens) timeHour param is not in range(0, 24) timeDay param is not in range(0, 7) timeDayMonth param is not in range(1,29) | |
| raa.rpath_error.DuplicateItem | backup.py:def setRepeatingSchedule | multiple column specified on insert | |
| config | SQL database exceptions (see table) | ||
| AssertionError | backup.py: def _getConfig | more than one repeating schedule for the backup task present | |
| download | SQL database exceptions (see table) | ||
| cherrypy.HTTPRedirect | |||
| upload | SQL database exceptions (see table) | ||
| IOError, OSError | tempfile.py:def mkstemp | error in creation of temp file used for temporary location for upload file | |
| backupNow | SQL database exceptions (see table) | ||
| restore | SQL database exceptions (see table) | ||
| getJobData | SQL database exceptions (see table) | ||
| DuplicateItem | backup.py:class BackupJobsTable:def getJobData | Multiple backup jobs specified by the same schedule ID | |
| ValueError | raa/db/data.py:class GenericDataTable:def getDataDict simplejson/decoder.py | unexpected extra data in json encoding | |
| KeyError | no modulepath key in cherrypy.config.configMap | ||
| getSettings | SQL database exceptions (see table) | ||
| ValueError | raa/db/data.py:class GenericDataTable:def getDataDict simplejson/decoder.py | unexpected extra data in json encoding | |
| getBackupProperties | SQL database exceptions (see table) | ||
| ValueError | raa/db/data.py:class GenericDataTable:def getDataDict simplejson/decoder.py | unexpected extra data in json encoding | |
| setAvailableBackups | SQL database exceptions (see table) | ||
| AssertionError | raa/db/data.py:class GenericDataTable:def setDataValueTemplated | name key not in template dict | |
| saveBackupProperties | SQL database exceptions (see table) | ||
| AssertionError | raa/db/data.py:class GenericDataTable:def setDataValueTemplated | name key not in template dict | |
| ValueError | raa/db/data.py:class GenericDataTable:def getDataDict simplejson/decoder.py | unexpected extra data in json encoding | |
| saveBackup | SQL database exceptions (see table) | ||
| AssertionError | raa/db/data.py:class GenericDataTable:def setDataValueTemplated | name key not in template dict | |
| ValueError | raa/db/data.py:class GenericDataTable:def getDataDict simplejson/decoder.py | unexpected extra data in json encoding | |
SQL Database Exceptions
The following are the SQL database exceptions affecting the XML-RPC calls listed in the table above.
| Exception Name | Detailed Location | Condition(s) |
|---|---|---|
| AssertionError | conary/dbstore/base_drv.py:class BaseCursor:def _executeCheck | no sql passed in to execute. no db handle. no db cursor. |
| AssertionError | conary/dbstore/base_drv.py:class BaseCursor:def _executeArgs | sql arguments are not in a tuple and/or dict |
| conary.sqlerrors.ColumnNotUnique | conary/dbstore/sqlite_drv.py:class Cursor:def _tryExecute | columns specified are not unique |
| conary.sqlerrors.ReadOnlyDatabase | conary/dbstore/sqlite_drv.py:class Cursor:def _tryExecute | tried to write to a read-only database |
| conary.sqlerrors.CursorError | conary/dbstore/sqlite_drv.py:class Cursor:def _tryExecute | sqlite3 programming error |
| conary.sqlerrors.DuplicateColumnName | conary/dbstore/sqlite_drv.py:class Cursor:def _tryExecute | |
| conary.sqlerrors.DatabaseLocked | conary/dbstore/sqlite_drv.py:class Cursor:def _tryExecute | |
| conary.sqlerrors.InvalidTable | conary/dbstore/sqlite_drv.py:class Cursor:def _tryExecute | |
| conary.sqlerrors.CursorError | conary/dbstore/sqlite_drv.py:class Cursor:def execute | sqlite3 programming error |
| conary.sqlite3.InternalError | conary/dbstore/sqlite_drv.py:class Cursor:def execute | internal database error |
