Publication:
Detecting Javascript races that matter

dc.contributor.coauthorLivshits, Benjamin
dc.contributor.departmentDepartment of Computer Engineering
dc.contributor.departmentGraduate School of Sciences and Engineering
dc.contributor.kuauthorMutlu, Erdal
dc.contributor.kuauthorTaşıran, Serdar
dc.contributor.schoolcollegeinstituteCollege of Engineering
dc.contributor.schoolcollegeinstituteGRADUATE SCHOOL OF SCIENCES AND ENGINEERING
dc.date.accessioned2024-11-09T23:47:50Z
dc.date.issued2015
dc.description.abstractAs JavaScript has become virtually omnipresent as the language for programming large and complex web applications in the last several years, we have seen an increase in interest in finding data races in client-side JavaScript. While JavaScript execution is single-threaded, there is still enough potential for data races, created largely by the non-determinism of the scheduler. Recently, several academic efforts have explored both static and run-time analysis approaches in an effort to find data races. However, despite this, we have not seen these analysis techniques deployed in practice and we have only seen scarce evidence that developers find and fix bugs related to data races in JavaScript. In this paper we argue for a different formulation of what it means to have a data race in a JavaScript application and distinguish between benign and harmful races, affecting persistent browser or server state. We further argue that while benign races — the subject of the majority of prior work — do exist, harmful races are exceedingly rare in practice (19 harmful vs. 621 benign). Our results shed a new light on the issues of data race prevalence and importance. To find races, we also propose a novel lightweight run-time symbolic exploration algorithm for finding races in traces of run-time execution. Our algorithm eschews schedule exploration in favor of smaller run-time overheads and thus can be used by beta testers or in crowd-sourced testing. In our experiments on 26 sites, we demonstrate that benign races are considerably more common than harmful ones.
dc.description.indexedbyWOS
dc.description.indexedbyScopus
dc.description.openaccessYES
dc.description.publisherscopeInternational
dc.description.sponsoredbyTubitakEuN/A
dc.identifier.doi10.1145/2786805.2786820
dc.identifier.eissnN/A
dc.identifier.isbn978-1-4503-3675-8
dc.identifier.issnN/A
dc.identifier.quartileN/A
dc.identifier.scopus2-s2.0-84960426876
dc.identifier.urihttps://doi.org/10.1145/2786805.2786820
dc.identifier.urihttps://hdl.handle.net/20.500.14288/14171
dc.identifier.wos382568700033
dc.keywordsJavaScript
dc.keywordsAsynchrony
dc.keywordsRace detection
dc.keywordsNon-determinism
dc.language.isoeng
dc.publisherAssoc Computing Machinery
dc.relation.ispartof2015 10th Joint Meeting of The European Software Engineering Conference and The ACM Sigsoft Symposium on The Foundations of Software Engineering (Esec/Fse 2015) Proceedings
dc.subjectComputer science
dc.subjectSoftware engineering
dc.subjectEngineering
dc.subjectElectrical and electronic engineering
dc.titleDetecting Javascript races that matter
dc.typeConference Proceeding
dspace.entity.typePublication
local.contributor.kuauthorMutlu, Erdal
local.contributor.kuauthorTaşıran, Serdar
local.publication.orgunit1GRADUATE SCHOOL OF SCIENCES AND ENGINEERING
local.publication.orgunit1College of Engineering
local.publication.orgunit2Department of Computer Engineering
local.publication.orgunit2Graduate School of Sciences and Engineering
relation.isOrgUnitOfPublication89352e43-bf09-4ef4-82f6-6f9d0174ebae
relation.isOrgUnitOfPublication3fc31c89-e803-4eb1-af6b-6258bc42c3d8
relation.isOrgUnitOfPublication.latestForDiscovery89352e43-bf09-4ef4-82f6-6f9d0174ebae
relation.isParentOrgUnitOfPublication8e756b23-2d4a-4ce8-b1b3-62c794a8c164
relation.isParentOrgUnitOfPublication434c9663-2b11-4e66-9399-c863e2ebae43
relation.isParentOrgUnitOfPublication.latestForDiscovery8e756b23-2d4a-4ce8-b1b3-62c794a8c164

Files