My Journey in PostgreSQL bug fixing
summary
Shows how a real PostgreSQL bug is narrowed from “works in 14, crashes in 13” to a single commit using git bisect, reproduces an assertion crash by attaching gdb watchpoints to trace portal_snapshot changes, and lands a minimal patch that starts community discussion and is later rewritten and committed; builds a deterministic repro for a logical decoding visibility bug using a replication slot plus checkpoints, proves the snapshot-visibility root cause, submits a patch, and documents that master and back branches require different fixes; one fix takes weeks to finalize.
AI-written summary · about
chapters (25)
- 0:00Introduction and agenda
- 0:51What this talk covers
- 2:03First steps after finding a bug
- 3:35Bug report examples by difficulty
- 4:19Live demo setup
- 5:16Demo crash and version check
- 6:13Using git bisect to find the fix
- 10:40Takeaways from first demo
- 11:00Second bug example with assertions
- 12:29Debugging with assertions
- 13:15Using GDB to inspect code
- 14:00Debugger session walkthrough
- 21:47Creating a patch and community outreach
- 23:38Importance of starting the discussion
- 24:23Third bug with logical decoding
- 25:05Analyzing the error message
- 26:35Debugging logical decoding
- 31:25Understanding logical decoding snapshots
- 33:12Replication slot and LSN analysis
- 34:43Building the reproduction case
- 38:02Creating the repro sequence
- 39:30Testing the reproduction case
- 40:16Submitting the patch
- 41:19How the bug was fixed upstream
- 42:01Final takeaways and Q&A
related talks
47mMy Journey in PostgreSQL bug fixing
47mBeginner's guide to PostgreSQL Hacking
50mHacking on Postgres: An Overview
50mPostgreSQL hacker tips
27mOpen Source Contributions to Postgres: The Basics
52mData Corruption Bugs: Diagnosis and Lessons
35mThe PostgreSQL Twin Bill: The 7 Deadly PostgreSQL Mistakes & Review of What's New in PostgreSQL 14
01h 07mNavigating Challenging Customer Escalations in Postgres
