Sanity checks
From VYRE
From version 4.3.1.8, UNIFY has got sanity checks which are accessible via the Reporting module. At the moment, the list of implemented checks is not large, however, it is expected to grow as we move on. The idea behind these checks is to reduce support headaches by identifying most common error patterns and periodically checking against these conditions. The checks are usually scheduled to run once a day, when the system load is at minimum. Once the check fails (failure scenario discovered), a message is sent to all users having administrator privilege. "A message" means that one will get both UNIFY message (in the User inbox) and separate e-mail. This is why it is so critical to configure administrator accounts properly.
Currently implemented sanity checks:
- Taxonomy
- Orphan check. System searches for taxonomy nodes which points to non-existing parent (root category is the only exception).
- Order check. Checks are done to find if there are gaps in taxonomy custom_order for categories sharing same parent. Such a situation, if exists, can result non-renderable taxonomy and random exceptions and is extremely hard to spot (especially on larger taxonomies).
- Inner loop check. All taxonomy categories are checked for closed cycles in taxonomy graph. Such a situation might result 100% CPU loads on the servers as most of the code depends on traversable trees, not cycles.
- Indices
- Index discrepancy check. The system verifies if the size of each index on each of cluster nodes matches the relevant number of items in the database.
- Item
- Item Link location check. This check has been added in Unify 4.4.0.2. It ensures that there is no corrupt Item link data. This is done by querying the database directly to check for the consistency of the records stored in the cm_item_links table. This consists of three checks:
- Make sure there isn't a NULL value in either the child_item_link_list_id, child_link_index, parent_item_link_list_id or parent_link_index.
- Make sure the child_link_index value for each record is correct. e.g. there are no missing or duplicate index values
- Make sure the parent_link_index value for each row is correct. e.g. there are no missing or duplicate index values
- Item List location check. This check has been added in Unify 4.4. It ensures there are no gaps in cm_item_lists_item_infos table, location sequence for the same (definition_id, descriptor_id) pair. E.g. there can be no sequence like
- Item Link location check. This check has been added in Unify 4.4.0.2. It ensures that there is no corrupt Item link data. This is done by querying the database directly to check for the consistency of the records stored in the cm_item_links table. This consists of three checks:
| definition_id | descriptor_id | location |
|---|---|---|
| 1 | 10 | 1 |
| 1 | 10 | 3 |
because a record
| definition_id | descriptor_id | location |
|---|---|---|
| 1 | 10 | 2 |
is missing.
