RSSAmplifier

Blog

Ao Li

Recent content on Ao Li

aoli.alRSS feed ↗5 posts

Latest posts

Deterministic Simulation Testing for Distributed Systems: The Good, the Bad, and the Ugly

Deterministic Simulation Testing for Distributed Systems: The Good, the Bad, and the Ugly 
 During my PhD, I built Fray , a deterministic simulation testing framework for concurrent programs written in Java. Fray was quite successful and has found many bugs in mature concurrent programs. As an academic, a natural question for me was: can we use a similar idea to test distributed systems? This…

Can a Data Race Happen on a Single-Core Machine?

Can a Data Race Happen on a Single-Core Machine? 
 1. The Question 
 I woke up wondering: Can a data race happen on a single-core machine? . 
 A data race occurs when a program contains two conflicting accesses (write/write or read/write) that are not ordered by a happens-before relationship. This is the definition from Java Language Specification . 
 My first instinct was to ask…

Discovering a JDK Race Condition, and Debugging it in 30 Minutes with Fray

Discovering a JDK Race Condition, and Debugging it in 30 Minutes with Fray 
 I’ve been adding more integration tests for Fray recently. To ensure Fray can handle different scenarios, I wrote many creative test cases . Many of them passed as expected, while some failures led to epic fixes in Fray. Then something unexpected happened: Fray threw a deadlock exception while testing the…

Evil Scheduler: Mastering Concurrency Through Interactive Debugging

Evil Scheduler: Mastering Concurrency Through Interactive Debugging 
 TLDR 
 Watch the video below to see how Fray debugger works! You may also want to check the Fray repo . 
 
 
 I enjoy the concept of Deadlock Empire , an interactive game that teaches the semantics of locks and other concurrency primitives. The core idea of this game is for you to act as an evil scheduler.…

Chrome Returns 206 when the Server Returns 403

Chrome Returns 206 when the Server Returns 403 
 Postmortem 
 It is a feature not a bug! I got detailed explanation from chrome developers which is very helpful. You may find the complete response in the bug ticket . Also this blog post draws a lot of attention after I post it on Hackers News. You may find comments here . 
 Updates: I did know the people who replied my issue are not…