2 minutes read

POSTED Aug, 2021 dot IN Debugging

NOW AVAILABLE: Introducing Sidekick's Python Support

Gokhan Simsek

Written by Gokhan Simsek

Software Engineer


We are happy to announce support for Python runtime for Thundra Sidekick.  Now, with Thundra's latest release, developers can remotely debug their Python applications using Sidekick’s web applications or the IntelliJ IDEA plugin.

To note; Sidekick supports Python versions 2.7, 3.5, 3.6, 3.7, 3.8 and applies an asynchronous approach to achieve adding zero overhead to your application execution times.

Sidekick is an online debugging tool that helps you to trace flaws and find bugs in Python applications. It supports frameworks such as AWS Lambda (All), Django (1.11+), Flask (0.5+), Fastapi (0.62.0+), Chalice (1.0.0+), Tornado(6.0+).

As the Thundra engineering team, we develop applications to mock real-world problem scenarios and to demonstrate Thundra’s products and features to solve those problems.

In this post, I will give a quick overview of the bug I found while working on a social media application in Python runtime thanks to Sidekick.

I and one of my colleagues signed up for the social media app with the usernames “Thundra” and “thundra”.

Then when I wanted to see my own posts in the app I got an error message and I could not see my posts.


Image1 - Signing up for our social media application

To troubleshoot, I instrumented my app with Sidekick, and I put a tracepoint (with a condition) to the relevant line of code in my application.


Image2 - Setting a tracepoint on line #24 with a condition by Sidekick

When I clicked on the “my posts” button again, the app ran and Sidekick captured the event without even stopping the execution.


Image3 - Capturing the event without stopping the app and seeing the variables

Sidekick’s seamless TraceMap integration enabled me to detect what was really difficult to point out. I clicked on the TraceMap link and saw the request & response flow of my application with all the necessary information such as the full error stack and so.


Image4 - The distributed trace map of the captured event with the full error stack

When I read the error stack, it was clear and observable that I should have used exact lookup instead of iexact in Django strings because exact lookup is case sensitive where iexact is not.

So the error was caused because of missing the case sensitiveness case in the application. During creating the Queryset, the database got an error because we had two users in the same name.

It was really fast and easy to troubleshoot and resolve the error in minutes with Sidekick.

Try it out and read more by checking out our documentation of this new functionality: https://sidekick.docs.thundra.io/installation/python

Sidekick is free to use and set up takes only a few minutes. Get your account and start using Sidekick today.