thinking in rules

To Repro or Not to Repro, That is the Question

Mark Malen | 8/12/2015

The Product Support group at InRule Technology is primarily responsible for handling support requests from customers who have encountered issues with the product.  Although we may be able to determine the root cause of an issue solely based on an error message, we strive to be able to reproduce (a/k/a “repro”) an issue ourselves. This will make it far easier for our Engineering group to analyze and ultimately fix the issue.  Therefore, when we escalate an issue to our Engineering group, one of the first questions they ask us is: Can you repro?

When a customer experiences an issue, we request that they provide various pieces of information and supporting files that we can use during our investigation and troubleshooting efforts. Our ultimate goal is to reproduce the issue ourselves.  

This blog post details some of the more common things that we ask for when handling a support request.  Just to clarify: we don’t expect customers to provide all of this information when submitting a support case. As we troubleshoot an issue, we will request additional information, as needed.

Issue/Error Information

If exact steps can be provided on how to reproduce the issue, this will help to expedite the process for getting the issue entered into our system and prioritized.

  • Detailed description of the issue
  • Screen shots or videos
  • Error message(s) and/or stack trace
  • Severity and impact of the issue
  • Environment(s) affected by the issue (e.g. Production, Development, QA, etc.)
  • Does the issue occur consistently or intermittently?

System and Environment Information

Providing the version of InRule is particularly important, since we may try to reproduce the issue in that version, and then determine whether the issue has been fixed in later versions.

  • InRule version number (e.g. 4.6.25)
  • Operating System version (e.g. Windows Server 2012 R2)
  • .NET Framework version (e.g. 4.5.2)
  • Amount of memory (e.g. 8GB RAM)
  • Bitness of OS and application (64bit or 32bit)
  • Physical or Virtual machine?
  • IIS and Application Pool settings
  • Security/Permissions settings
  • Configuration settings (i.e. web.config, app.config, etc.)

Rule Applications and Dependencies

When sending a rule application to InRule Support, it is ideal if the rule application can be simplified, such that it still reproduces the issue, but does not require any external dependencies, such as databases and web services.

  • Rule Application files
  • Backup of irCatalog databases
  • Imported schemas
    • .NET Assemblies (DLLs)
    • XSD files
  • Endpoints
    • Databases that are called by queries in the rule application
    • Web Services that are called in the rule application
    • .NET Assemblies (DLLs) used as function library called by rules

Input Data

If a particular set of input data is needed to reproduce an issue, you can send this to us, in the following formats:

  • XML Files
  • Test Scenario files

Logging and Reports

InRule has features to enable and configure logging, as well as rule tracing.  For more information on this, you can refer to the “Performance Logging and Monitoring” section of the Developer Help file.

  • Event logs (InRule, Application, System) – InRule can be configured to capture different levels of logging, which can be very useful for troubleshooting.
  • Performance Statistics report (which can be generated via irVerify or irSDK)
  • Rule Tracing output (which can be generated via irVerify or irSDK)
  • InRule Log files (located in temp directory, as specified by %TMP% environmental variable)

Code

If the issue cannot be isolated to only using irAuthor and irVerify, then customers can provide the relevant irSDK integration code.

  • Code snippets
  • Entire Visual Studio projects, such as simple, self-contained test harnesses that reproduces an issue.  These can be console apps, WPF apps, web services, or web applications.

And finally, we have to ask… have you tried rebooting your computer yet?


comments powered by Disqus