Problem
Abstract Despite JavaScript runtime’s lack of conventional threads, the presence of asynchrony creates a real potential for con- currency errors. These concerns have lead to investigations of race conditions in the Web context.
Approach
However, focusing on races does not produce actionable error reports that would at the end of the day appeal to developers and cause them to fix possible underlying problems. In this paper, we advocate for the notion of observable races, focusing on concurrency conditions that lead to visu- ally apparent glitches caused by non-determinism within the runtime scheduler on the network.
Results
We propose and investi- gate ways to find observable races via systematically explor- ing possible network schedules and shepherding the sched- uler towards correct executions. We propose crowd-sourcing both to spot when different schedules lead to visually broken sites and also to determine under what environment condi- tions (OS, browser, network speed) these schedules may in fact happen in practice for some fraction of the users.