Skip to main navigation Skip to search Skip to main content

Node.fz: Fuzzing the server-side event-driven architecture

  • Virginia Polytechnic Institute and State University
  • The MathWorks, Inc.

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

44 Scopus citations

Abstract

The importance of the Event-Driven Architecture (EDA) has never been greater.Web servers and the IoT alike have begun to adopt the EDA, and the popular server-side EDA framework, Node.js, boasts the world's largest package ecosystem. While multi-threaded programming has been well studied in the literature, concurrency bug characteristics and useful development tools remain largely unexplored for serverside EDA-based applications. We present the first (to the best of our knowledge) concurrency bug characteristic study of real world open-source event-driven applications, based in Node.js. Like multithreaded programs, event-driven programs are prone to concurrency bugs like atomicity violations and order violations. Our study shows the forms that atomicity violations and ordering violations take in the EDA context, and points out the limitations of existing concurrency error detection tools developed for client-side EDA applications. Based on our bug study, we propose Node.fz, a novel testing aid for server-side event-driven programs. Node.fz is a schedule fuzzing test tool for event-driven programs, embodied for server-side Node.js programs. Node.fz randomly perturbs the execution of a Node.js program, allowing Node.js developers to explore a variety of possible schedules. Thanks to its low overhead, Node.fz enables a developer to explore a broader "schedule space" with the same test time budget, ensuring that applications will be stable in a wide variety of deployment conditions. We show that Node.fz can expose known bugs much more frequently than vanilla Node.js, and that it can uncover new bugs.

Original languageEnglish
Title of host publicationProceedings of the 12th European Conference on Computer Systems, EuroSys 2017
PublisherAssociation for Computing Machinery, Inc
Pages145-160
Number of pages16
ISBN (Electronic)9781450349383
DOIs
StatePublished - Apr 23 2017
Event12th European Conference on Computer Systems, EuroSys 2017 - Belgrade, Serbia
Duration: Apr 23 2017Apr 26 2017

Publication series

NameProceedings of the 12th European Conference on Computer Systems, EuroSys 2017

Conference

Conference12th European Conference on Computer Systems, EuroSys 2017
Country/TerritorySerbia
CityBelgrade
Period04/23/1704/26/17

Fingerprint

Dive into the research topics of 'Node.fz: Fuzzing the server-side event-driven architecture'. Together they form a unique fingerprint.

Cite this