Practical AJAX Race Detection For JavaScript Web Applications - - PowerPoint PPT Presentation

practical ajax race detection for javascript web
SMART_READER_LITE
LIVE PREVIEW

Practical AJAX Race Detection For JavaScript Web Applications - - PowerPoint PPT Presentation

Practical AJAX Race Detection For JavaScript Web Applications Christoffer Quist Adamsen, Anders Mller, Saba Alimadadi, Frank Tip saba@northeastern.edu J ava S cript 69.8 323,938 222,852 45.3 JS Java JS Java popularity % active


slide-1
SLIDE 1

Practical AJAX Race Detection For JavaScript Web Applications

Christoffer Quist Adamsen, Anders Møller, Saba Alimadadi, Frank Tip

saba@northeastern.edu

slide-2
SLIDE 2

JS Java

222,852 323,938

JavaScript

JS Java

45.3 69.8

popularity % active repositories

slide-3
SLIDE 3

function addRemoveFilter (fId) { filters = toggleFilter(fId); url = createUrl(server, filters); $.ajax({ url: url, success: updateStationData }); }

Diesel Car Wash simplified and modified example from chevronwithtechron.com

client server

request response request response

car wash car wash car wash, diesel car wash, diesel

click click

slide-4
SLIDE 4

function addRemoveFilter (fId) { filters = toggleFilter(fId); url = createUrl(server, filters); $.ajax({ url: url, success: updateStationData }); }

Diesel Car Wash simplified and modified example from chevronwithtechron.com

client server

request response request response

car wash car wash car wash, diesel car wash, diesel

click click

client server

request response request response

car wash car wash car wash, diesel car wash, diesel

slide-5
SLIDE 5

function addRemoveFilter (fId) { filters = toggleFilter(fId); url = createUrl(server, filters); $.ajax({ url: url, success: updateStationData }); }

Diesel Car Wash simplified and modified example from chevronwithtechron.com

client server

request response request response

car wash car wash car wash, diesel car wash, diesel

click click

client server

request response request response

car wash car wash car wash, diesel car wash, diesel

client server

request response request response

car wash car wash car wash, diesel car wash, diesel

slide-6
SLIDE 6

Event Races

slide-7
SLIDE 7

Event Races

Zheng et al., 2011 Petrov et al., 2012 Raychev et al., 2013 Hong et al., 2014 Jensen et al., 2015 Mutlu et al., 2015 Wang et al., 2016 Zhang & Wang, 2017 Adamsen et al., 2017a, 2017b

slide-8
SLIDE 8

detecting harmful races reducing benign warnings providing helpful reports performance and practicality

slide-9
SLIDE 9

AXRacer J J A

slide-10
SLIDE 10
  • 1. Generating event graphs
  • 2. Testing potential conflicts

application user events event races

AXRacer J A J

slide-11
SLIDE 11
  • 1. Generating event graphs
  • 2. Testing potential conflicts

Instrument automatically Trigger user events Generate event traces Create event graphs Find event conflicts

application user events

AXRacer J A J

slide-12
SLIDE 12
  • 1. Generating event graphs
  • 2. Testing potential conflicts

Instrument automatically Trigger user events Generate event traces Create event graphs Find event conflicts

application user events

AXRacer J A J

slide-13
SLIDE 13
  • 1. Generating event graphs
  • 2. Testing potential conflicts

Instrument automatically Trigger user events Generate event traces Create event graphs Find event conflicts

application user events

v1 v2 v3 response received response loaded happens before click (x, y, w, h) (x’, y’, w’, h’)

AXRacer J A J

slide-14
SLIDE 14
  • 1. Generating event graphs
  • 2. Testing potential conflicts

Instrument automatically Trigger user events Generate event traces Create event graphs Find event conflicts

v1 v3 (x, y, w, h) (x’, y’, w’, h’)

AXRacer J A J

application user events

slide-15
SLIDE 15
  • 1. Generating event graphs
  • 2. Testing potential conflicts

potentially conflicted events event races

synchronous mode adverse mode

v v’s consequences w w’s consequences v v’s consequences w w’s consequences

AXRacer J A J

hi bye

slide-16
SLIDE 16

Does help us find and understand

AXRacer J J A

AX A J J

races?

slide-17
SLIDE 17

12 web applications, 20 pages

slide-18
SLIDE 18

effectiveness

7 65 80

Pass Fail False Positive

152 tests

slide-19
SLIDE 19

false positives

7 65 80

Pass Fail False Positive

152 tests

effectiveness

slide-20
SLIDE 20

7 65 80

Pass Fail False Positive

152 tests dataset queries interactive maps auto completion

race characteristics

effectiveness

slide-21
SLIDE 21

comparison

7 65 80

Pass Fail False Positive

https://eventracer.org/

EventRacer*

*

Raychev et al. OOPSLA’13

2 events ~130,000 races ~37,000 locations ~740 uncovered

152 tests

slide-22
SLIDE 22

usefulness

slide-23
SLIDE 23

performance

phase 1 phase 2 (per test)

duration (s)

8 18

avg: 26s page load execution

duration (s)

5 28 36

avg: 69s page load execution report

slide-24
SLIDE 24

common developer practices

slide-25
SLIDE 25

https://github.com/cs-au-dk/ajaxracer

@saba_a