A Write Barrier Validating GC for Ruby
Missing or incorrect write barriers are a common source of bugs both in C extensions and CRuby itself. They can cause memory corruption that only manifests under specific GC timing, making them difficult to reproduce and to be confident in a fix.
This talk introduces a new garbage collector specifically for dynamic analysis of write barrier correctness. I'll explain how it works, how to use it, the bugs it has fixed, and the hard rules for when write barriers are required.
-
John HawthornJohn is a Ruby Commiter, a Rails Core member, and a Senior Staff Software Engineer at Shopify. He’s based in Victoria, Canada.