Mid Sweden University

miun.sePublications
Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Free the Bugs: Disclosing Blocking Violations in Reactive Programming
Mid Sweden University, Faculty of Science, Technology and Media, Department of Computer and System Science.ORCID iD: 0000-0001-9372-3416
Mid Sweden University, Faculty of Science, Technology and Media, Department of Computer and System Science.
Mid Sweden University, Faculty of Science, Technology and Media, Department of Computer and System Science.
2020 (English)In: 2020 IEEE 20th International Working Conference on Source Code Analysis and Manipulation (SCAM), IEEE, 2020, p. 177-186Conference paper, Published paper (Refereed)
Abstract [en]

In programming, concurrency allows threads to share processing units interleaving and seemingly simultaneous to improve resource utilization and performance. Previous research has found that concurrency faults are hard to avoid, hard to find, often leading to undesired and unpredictable behavior. Further, with the growing availability of multi-core devices and adaptation of concurrency features in high-level languages, concurrency faults occur reportedly often, which is why countermeasures must be investigated to limit harm. Reactive programming provides an abstraction to simplify complex concurrent and asynchronous tasks through reactive language extensions such as the RxJava and Project Reactor libraries for Java. Still, blocking violations are possibly resulting in concurrency faults with no Java compiler warnings. BlockHound is a tool that detects incorrect blocking by wrapping the original code and intercepting blocking calls to provide appropriate runtime errors. In this study, we seek an understanding of how common blocking violations are and whether a tool such as BlockHound can give us insight into the root-causes to highlight them as pitfalls to developers. The investigated Softwares are Java-based open-source projects using reactive frameworks selected based on high star ratings and large fork quantities that indicate high adoption. We activated BlockHound in the project’s test-suites and analyzed log files for common patterns to reveal blocking violations in 7/29 investigated open-source projects with 5024 stars and 1437 forks. A small number of system calls could be identified as root-causes. We here present countermeasures that successfully removed the uncertainty of blocking violations. The code’s intentional logic was retained in all validated projects through passing unit-tests.

Place, publisher, year, edition, pages
IEEE, 2020. p. 177-186
National Category
Computer Systems
Identifiers
URN: urn:nbn:se:miun:diva-40579DOI: 10.1109/SCAM51674.2020.00025ISI: 000647642000020Scopus ID: 2-s2.0-85097654261ISBN: 978-1-7281-9248-2 (electronic)OAI: oai:DiVA.org:miun-40579DiVA, id: diva2:1503335
Conference
International Working Conference on Source Code Analysis and Manipulation (SCAM), Adelaide, Australia, 28 September - 2 October, 2020.
Available from: 2020-11-24 Created: 2020-11-24 Last updated: 2021-06-14Bibliographically approved

Open Access in DiVA

No full text in DiVA

Other links

Publisher's full textScopus

Authority records

Dobslaw, FelixVallin, MorganSundström, Robin

Search in DiVA

By author/editor
Dobslaw, FelixVallin, MorganSundström, Robin
By organisation
Department of Computer and System Science
Computer Systems

Search outside of DiVA

GoogleGoogle Scholar

doi
isbn
urn-nbn

Altmetric score

doi
isbn
urn-nbn
Total: 222 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf