Practical initialization race detection for JavaScript web applications
Event races are a common source of subtle errors in JavaScript web applications. Several automated tools for detecting event races have been developed, but experiments show that their accuracy is generally quite low. We present a new approach that focuses on three categories of event race errors tha...
Gespeichert in:
| Veröffentlicht in: | Proceedings of ACM on programming languages Jg. 1; H. OOPSLA; S. 1 - 22 |
|---|---|
| Hauptverfasser: | , , |
| Format: | Journal Article |
| Sprache: | Englisch |
| Veröffentlicht: |
01.10.2017
|
| ISSN: | 2475-1421, 2475-1421 |
| Online-Zugang: | Volltext |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| Abstract | Event races are a common source of subtle errors in JavaScript web applications. Several automated tools for detecting event races have been developed, but experiments show that their accuracy is generally quite low. We present a new approach that focuses on three categories of event race errors that often appear during the initialization phase of web applications: form-input-overwritten errors, late-event-handler-registration errors, and access-before-definition errors. The approach is based on a dynamic analysis that uses a combination of adverse and approximate execution. Among the strengths of the approach are that it does not require browser modifications, expensive model checking, or static analysis.
In an evaluation on 100 widely used websites, our tool InitRacer reports 1085 initialization races, while providing informative explanations of their causes and effects. A manual study of 218 of these reports shows that 111 of them lead to uncaught exceptions and at least 47 indicate errors that affect the functionality of the websites. |
|---|---|
| AbstractList | Event races are a common source of subtle errors in JavaScript web applications. Several automated tools for detecting event races have been developed, but experiments show that their accuracy is generally quite low. We present a new approach that focuses on three categories of event race errors that often appear during the initialization phase of web applications: form-input-overwritten errors, late-event-handler-registration errors, and access-before-definition errors. The approach is based on a dynamic analysis that uses a combination of adverse and approximate execution. Among the strengths of the approach are that it does not require browser modifications, expensive model checking, or static analysis.
In an evaluation on 100 widely used websites, our tool InitRacer reports 1085 initialization races, while providing informative explanations of their causes and effects. A manual study of 218 of these reports shows that 111 of them lead to uncaught exceptions and at least 47 indicate errors that affect the functionality of the websites. |
| Author | Adamsen, Christoffer Quist Tip, Frank Møller, Anders |
| Author_xml | – sequence: 1 givenname: Christoffer Quist surname: Adamsen fullname: Adamsen, Christoffer Quist organization: Aarhus University, Denmark – sequence: 2 givenname: Anders surname: Møller fullname: Møller, Anders organization: Aarhus University, Denmark – sequence: 3 givenname: Frank surname: Tip fullname: Tip, Frank organization: Northeastern University, USA |
| BookMark | eNplkEFLw0AQhRepYK3Fv7A3T9HZ3Wy6OUrRVikoqOcwmUxgJSZhd1H019vWHkRP82bmm8fwTsWkH3oW4lzBpVK5vTLKGFfCkZjqfGEzlWs1-aVPxDzGVwBQpcmdKadi9RiQkifspO998tj5L0x-6OV2zrLhxLRv2yHIe3zHJwp-TPKDa4nj2G0vd-t4Jo5b7CLPD3UmXm5vnpfrbPOwultebzLS1qVMF8oyl2VjC25rUyyMazQYKAyC5qZ2TukGiNHlyhLqFplIU1kzoHYFmJnIfnwpDDEGbivyaf9CCui7SkG1C6I6BLHlL_7wY_BvGD7_kd8Mt17G |
| CitedBy_id | crossref_primary_10_1016_j_eswa_2022_116569 crossref_primary_10_1145_3276532 crossref_primary_10_1007_s10207_023_00671_5 crossref_primary_10_1109_TSE_2022_3147975 |
| Cites_doi | 10.1145/1133981.1134018 10.1145/2931037.2931052 10.1145/265924.265927 10.1145/349299.349328 10.1145/1368088.1368120 10.1109/ICSE.2017.34 10.1145/1287624.1287654 10.1145/2771783.2771786 10.1145/2660193.2660214 10.1145/1963405.1963517 10.1145/2254064.2254095 10.1109/32.988498 10.1145/2509136.2509538 10.1145/2592798.2592813 10.1145/2786805.2786820 10.1145/504282.504287 10.1109/ICSE.2017.33 10.1145/2771783.2771809 10.1145/2814270.2814282 10.1016/j.scico.2007.12.001 10.1145/1839676.1839699 |
| ContentType | Journal Article |
| DBID | AAYXX CITATION |
| DOI | 10.1145/3133890 |
| DatabaseName | CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | CrossRef |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 2475-1421 |
| EndPage | 22 |
| ExternalDocumentID | 10_1145_3133890 |
| GroupedDBID | AAKMM AAYFX AAYXX ACM AEFXT AEJOY AIKLT AKRVB ALMA_UNASSIGNED_HOLDINGS CITATION EBS GUFHI LHSKQ M~E OK1 ROL |
| ID | FETCH-LOGICAL-c258t-2615ee99d56efb36738d203063a02edb8812d0cea8415ca2faecc2c9be0a28603 |
| ISICitedReferencesCount | 12 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000688014000022&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 2475-1421 |
| IngestDate | Tue Nov 18 22:43:11 EST 2025 Sat Nov 29 07:49:00 EST 2025 |
| IsDoiOpenAccess | false |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | OOPSLA |
| Language | English |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-c258t-2615ee99d56efb36738d203063a02edb8812d0cea8415ca2faecc2c9be0a28603 |
| OpenAccessLink | https://dl.acm.org/doi/pdf/10.1145/3133890 |
| PageCount | 22 |
| ParticipantIDs | crossref_citationtrail_10_1145_3133890 crossref_primary_10_1145_3133890 |
| PublicationCentury | 2000 |
| PublicationDate | 2017-10-01 |
| PublicationDateYYYYMMDD | 2017-10-01 |
| PublicationDate_xml | – month: 10 year: 2017 text: 2017-10-01 day: 01 |
| PublicationDecade | 2010 |
| PublicationTitle | Proceedings of ACM on programming languages |
| PublicationYear | 2017 |
| References | e_1_2_1_7_1 e_1_2_1_8_1 e_1_2_1_20_1 e_1_2_1_5_1 e_1_2_1_6_1 e_1_2_1_3_1 e_1_2_1_23_1 e_1_2_1_4_1 e_1_2_1_13_1 e_1_2_1_24_1 e_1_2_1_1_1 e_1_2_1_21_1 e_1_2_1_2_1 e_1_2_1_11_1 e_1_2_1_22_1 e_1_2_1_16_1 e_1_2_1_17_1 e_1_2_1_14_1 e_1_2_1_25_1 Ide James (e_1_2_1_12_1) 2009 e_1_2_1_15_1 Hong Shin (e_1_2_1_10_1) 2014 e_1_2_1_9_1 e_1_2_1_19_1 |
| References_xml | – ident: e_1_2_1_15_1 doi: 10.1145/1133981.1134018 – ident: e_1_2_1_22_1 doi: 10.1145/2931037.2931052 – ident: e_1_2_1_19_1 doi: 10.1145/265924.265927 – ident: e_1_2_1_5_1 doi: 10.1145/349299.349328 – ident: e_1_2_1_9_1 doi: 10.1145/1368088.1368120 – ident: e_1_2_1_2_1 doi: 10.1109/ICSE.2017.34 – ident: e_1_2_1_21_1 doi: 10.1145/1287624.1287654 – ident: e_1_2_1_1_1 doi: 10.1145/2771783.2771786 – volume-title: Proc. 7th IEEE International Conference on Software Testing, Verification and Validation (ICST). 61–70 year: 2014 ident: e_1_2_1_10_1 – ident: e_1_2_1_3_1 doi: 10.1145/2660193.2660214 – ident: e_1_2_1_25_1 doi: 10.1145/1963405.1963517 – ident: e_1_2_1_20_1 – ident: e_1_2_1_16_1 doi: 10.1145/2254064.2254095 – ident: e_1_2_1_23_1 doi: 10.1109/32.988498 – ident: e_1_2_1_17_1 doi: 10.1145/2509136.2509538 – ident: e_1_2_1_11_1 doi: 10.1145/2592798.2592813 – ident: e_1_2_1_14_1 doi: 10.1145/2786805.2786820 – ident: e_1_2_1_4_1 doi: 10.1145/504282.504287 – volume-title: Proc. Workshop on Exploiting Concurrency Efficiently and Correctly . year: 2009 ident: e_1_2_1_12_1 – ident: e_1_2_1_24_1 doi: 10.1109/ICSE.2017.33 – ident: e_1_2_1_8_1 doi: 10.1145/2771783.2771809 – ident: e_1_2_1_13_1 doi: 10.1145/2814270.2814282 – ident: e_1_2_1_6_1 doi: 10.1016/j.scico.2007.12.001 – ident: e_1_2_1_7_1 doi: 10.1145/1839676.1839699 |
| SSID | ssj0001934839 |
| Score | 2.086718 |
| Snippet | Event races are a common source of subtle errors in JavaScript web applications. Several automated tools for detecting event races have been developed, but... |
| SourceID | crossref |
| SourceType | Enrichment Source Index Database |
| StartPage | 1 |
| Title | Practical initialization race detection for JavaScript web applications |
| Volume | 1 |
| WOSCitedRecordID | wos000688014000022&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVHPJ databaseName: ROAD: Directory of Open Access Scholarly Resources customDbUrl: eissn: 2475-1421 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0001934839 issn: 2475-1421 databaseCode: M~E dateStart: 20170101 isFulltext: true titleUrlDefault: https://road.issn.org providerName: ISSN International Centre |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1BT9swFLYK48CFMQYCNiYfEJcqkDp2Yh8DGkwT0KIWiVvlOI5UUUIFpeK00344z4lj3A5p47BLFFl2FOV9eX7v-X3vIbSfsLjgOi6CTixIQIUOAyliFYSU6lhkBU_yqmvJeXJ5yW9uRK_V-t1wYWbjpCz587OY_FdRwxgI21Bn3yFu91AYgHsQOlxB7HD9J8HXFYhUVUxjBP_v2DIt2zBuSFJTrVx-4U85k_1Kb7QNZ9E_zfat1p7b5arEj_Tkwpwx2NSuOxNsaMKezkJPc3lngzu2foFpxNK-erJ8o0rI5pT-mDdkxLTi2bhQwmjSGNa3fmgCtrsmyc1qMEITFnRoTYE-1G-MNSrYQ1q32-ufp55O7Xibc81h_lPtU1MhIzL-dt18dL6w9sKG59IQa1I2G9qFS-gDSZgwiYEXv7xInYgor1rSuXev2ddm7ZFd65k1nn0yWEdr1rHAaQ2IT6ilyw30sWnaga0O_4zOHD7wPD6wwQd2-MCAD_yKDwz4wD4-NtH16ffByY_AdtMIFGF8GoCrzLQWImexLrLIdHvNifEYIxkSnWccTL08VFpysOmUJIWEv5sokelQEh6H0RZaLu9LvY0wk0yA6a1VJikNIwUPLbJE5QU4q7Ij9Q46aD7GUNlS86bjyXi48MV3EHYTJ3V1lcUpu3-f8gWtvqLvK1qePjzpPbSiZtPR48O3Spgv_NFumg |
| linkProvider | ISSN International Centre |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Practical+initialization+race+detection+for+JavaScript+web+applications&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Adamsen%2C+Christoffer+Quist&rft.au=M%C3%B8ller%2C+Anders&rft.au=Tip%2C+Frank&rft.date=2017-10-01&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=1&rft.issue=OOPSLA&rft.spage=1&rft.epage=22&rft_id=info:doi/10.1145%2F3133890&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3133890 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon |