Wielding Debug Builds against Heap Corruption

Heap corruptions can be nasty to investigate. I recently had to investigate a bug that manifests under special circumstances in production. Crashes had all flavors of stack traces - the trademark of heap corruption. To debug it, I ran the usually recommended tool for heap corruption: PageHeap. Enabling PageHeap PageHeap is an OS flag that … Continue reading Wielding Debug Builds against Heap Corruption

Spawning Your First C++ Fleet with Service Fabric and REST SDK

I have mostly been working on the details of rather big projects, and that can make one lose touch with end-to-end magic. This week I decided to create a very simple distributed C++ web app, running on an Azure fleet. I settled on using Service Fabric as a distributed framework and CPPREST SDK for building … Continue reading Spawning Your First C++ Fleet with Service Fabric and REST SDK

The Curious Case of the 99.9% Latency Hike

Disclaimer: This is a story from production. I have changed a couple of details, but the gist of the story holds. Exposition On a normal morning, I was checking up on health metrics of a bunch of services, when a new service under test caught my attention. Let's call this service Lucy. Lucy so far … Continue reading The Curious Case of the 99.9% Latency Hike

What happens when you press “X”

or Why it is hard to get Graceful Shutdowns right I used to think shutdowns are easy. You're shutting down and the OS is going to take care of all my resources. Unfortunately, that's not completely the case. Shutdowns are easy, but perfectly graceful ones are not as intuitive. Ungraceful shutdowns bring about crashes, or … Continue reading What happens when you press “X”