DEBUGGING AN ERROR YOU CAN’T REPRODUCE​

Ulrich B. Boddenberg

Owner, Senior Consultant, and Software Architect

Provisioning Microsoft infrastructure with specialized products and services

Ulrich Boddenberg IT Consultancy has over 30 years of experience with enterprise Microsoft products including 20 with Sharepoint and Microsoft 365. The company helps enterprises deploy and manage their Microsoft infrastructure and provides training on a range of topics such as Intelligent Document Management, Security and Compliance, Telephony, and more.

Over the years, the tools that the company developed to support its consulting services have evolved to fully-fledged products.

DragPad® provides advanced management capabilities for documents and emails that enable complex operations to be completed with simple drag ‘n drop functionality.

CosyTrack® is a family of products designed to connect, sync, and track data, information, and processes. It has four primary components:

  • Provisioner: provisioning highly customized workspaces and team environments
  • Migrator: migrating Sharepoint and Microsoft 365 environments
  • Connectors: connecting SharePoint and Microsoft 365 to the file system, mail system, and SAP for the integration of contacts, tasks, and appointments
  • Drive: enterprise-grade provisioning of Sharepoint document libraries as file system drives

Trying to fix bugs under impossible circumstances

CosyTrack® Provisioner was installed on customer servers in an Azure virtual machine running Windows. Provisioning Microsoft365/SharePoint sites with CosyTrack® Provisioner is a long-running, complex process that presents many challenges. So debugging errors in the provisioning process was extremely difficult because errors are often very specific to the case in hand and not reproducible. The provisioning process ran on the customer’s environment, which could not be replicated, and to which Boddenberg did not have direct access. Therefore, reproducing bugs was nearly impossible. Any debugging effort involved a lengthy redeployment of the system with additional debug code and required customer participation, which was always very difficult to coordinate.

There’s no need to reproduce errors when you have autonomous exception capture with time-travel debugging

Ulrich Boddenberg IT Consultancy tried troubleshooting provisioning errors using Visual Studio remote debugging. The company found that using Visual Studio to connect to a process in a remote Production machine was extremely complicated to set up, generated bloated log files, and was not viable for long-term monitoring of the system.

Conversely, setting up the Ozcode agent alongside CosyTrack® running under Windows took a matter of minutes with custom logging implemented using Ozcode’s NuGet logging package. Upon triggering CosyTrack® to provision software, the Ozcode agent automatically caught and recorded exceptions with the full error execution flow and transmitted them to the Ozcode server. A click on the exception in the Ozcode dashboard provided Boddenberg with time-travel debug information enabling a step-by-step walk back through the call stack with full code-level visibility. Viewing local variables where the exception was thrown immediately highlighted a delimited string that was formatted incorrectly. This is extremely rare in the tried-and-true protocols of CosyTrack® and was, therefore, not considered by the provisioning process, causing it to fail.

Code-level visibility of Production systems slashes debugging time

By using Ozcode Production Debugger, Ulrich Boddenberg IT Consultancy slashed the time it took them to debug errors in the CosyTrack® Provisioner software. By automatically capturing exceptions and recording the complete error execution flow, Ozcode removed the need to reproduce errors. Moreover, the autonomous exception capture pointed out exceptions that Boddenberg was not even aware of. Then, the detailed debug information, including the exception location and local variables, and the ability to time travel up the call stack quickly highlighted the root cause of the error.

Summary

Using Ozcode Production Debugger autonomous exception capture together with time-travel debug information, Ulrich Boddenberg IT Consultancy saved at least 20 hours debugging a Production provisioning error and discovered additional errors that were previously unknown. In some cases, Ozcode was the primary enabler for a fix because reproducing the bug was virtually impossible.

Production Debugger

Bridge the gap between finding errors in production and pinpointing their root cause in code

Thanks for downloading the OzCode trial!

You’re well on your way to making C# even sharper.

If your download doesn’t start automatically , please use this direct link.

If you’d like to install OzCode but don’t have
administrative privileges on your machine, please contact us.

Get Started for FREE!

Ozcode Logo

This website uses cookies to ensure you get the best experience on our website.