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
Category: Windows
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
Do not use Task Manager for Memory Info
As a windows user for many many years, Task Manager is a friend. Through the years, I have used it to kill hundreds of misbehaving apps and getting info about which ones are exhausting my resources. Until I started working with machines that have 100s of GBs of memory and apps with memory consumption to … Continue reading Do not use Task Manager for Memory Info
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”
How to Write Fast Services in C++
“Computers are really fast” said my friend to me a while ago, as I was trying to figure out how to optimize the hottest path in my service. “It is almost always the memory” he added. It’s been 3 years since, and I have learnt a bit more about computers, but I still clearly recall … Continue reading How to Write Fast Services in C++