Table of Contents

Troubleshooting Guide

A general primer on how to troubleshoot problems and report bugs, with an emphasis on Digital-Clay.

Goals

There are two alternative goals for troubleshooting problems:

  1. Understanding the problem and possible causes as best as possible so that the issue might even be solved on the spot without R&D. I.e. the problem may be due to a lack of understanding or a missed detail, or it may be solved with a temporary workaround or alternative feature to replace the specific misbehaving feature.
  2. Collecting as many clues and details as possible so that R&D can reproduce and fix the problem.

Anatomy of a Problem

Since Digital-Clay is a generic tool for building solutions and no two solutions are ever the same, detailed troubleshooting and collection of information is often invaluable, if not critical, towards solving the problem. It may even be impossible to reproduce some problems in other environments simply because there are many specific and unique factors that contribute to the bug that may not exist anywhere else.

When submitting bug reports, the important question to ask is “What would R&D need to run the exact same actions that I just ran on another machine, and thereby reproduce the bug?”

Even if you can describe and reproduce the problem, R&D may not be able to recreate the environment necessary to debug the problem due to a lack of customer-specific resources or information.

The possible elements that together create a specific problem are as follows:

The Program

The code or program itself. R&D always has this so the only necessary information here is the specific product version in which the problem was found. A bug may only exist in one specific version and sometimes customers may not have the latest version or may even have a beta version installed.

The Implementation

This is split into the following sub-elements:

The Sequence of Events

This includes every action leading to the bug. This is by far the most important element.

The critical thing to understand is that the sequence starts from the moment the Digital-Clay application is launched!

Examples:

The more details the better. Sometimes it's necessary to know whether the user used the keyboard, or that he selected items in a specific order, or set/removed other options before clicking on the problematic item, etc.


Often the sequence itself isn't important but the saved details are. E.g. in an analysis query, all you have to do is add 2 specific indicators, 1 column and a filter, and the results are displayed wrong. In this case, instead of describing how to create such a query step by step, it is much simpler to save and send the saved .sgr file. Obviously, it must be verified that the .sgr file is all that's needed to reproduce the problem. Saving your actions applies in the following cases:


In rare cases, even seemingly unrelated actions can cause the problem. Examples:

What this means is that when attempting to reproduce the bug, it is important to trace your steps as far back and in as much detail as possible. Start with the obvious last thing that was clicked on, then slowly add more and more steps until you either reproduce the bug, or you can't remember any more details.


When submitting this information in a bug report, the sequence should be described in the exact order with all steps and details that are necessary to reproduce the bug. Once you have reproduced the bug using these methods, you usually know exactly which steps are important to mention and which aren't. An example:

1. Load ClayOutlook
2. Login with administrator
3. Open a browser window but don't click on anything
4. Disconnect using the toolbar button
5. Click on a table in the browser

The Environment

In rare cases, the problem may be due to the specific machine, network or server. If the problem is only reproducible on one machine, this may be the case. Examples:


Obviously, these issues are always unique and need administration and troubleshooting skills. Some general techniques and tips:

Techniques and Tips

Logs

See Troubleshooting With Logs for various techniques in tracing problems to more specific causes, and for collecting information.

Known Issues

Try to find the problem in Known Issues.

Narrowing Things Down

Always try to reduce the complexity of the sequence of events. Examples:

General Tips