Collaborative Technique for Concurrency Bug Detection.

Saved in:
Bibliographic Details
Title: Collaborative Technique for Concurrency Bug Detection.
Authors: Wu, Zhendong wuzhendong@nudt.edu.cn, Lu, Kai kailu@nudt.edu.cn, Wang, Xiaoping xiaopingwang@nudt.edu.cn, Zhou, Xu zhouxu@nudt.edu.cn
Source: International Journal of Parallel Programming. Apr2015, Vol. 43 Issue 2, p260-285. 26p.
Subjects: Debugging, Computer system failure prevention, Coding theory, Multicore processors, Threads (Computer programs)
Abstract: Concurrency bugs hidden in deployed software can cause severe failures and real-world disasters. They are notoriously difficult to detect during in-house testing due to huge and non-deterministic interleaving space. Unfortunately, the multicore technology trend worsens this problem. Unlike previous work that detects particular concurrency bugs (e.g., data races and atomicity violations), we target harmful concurrency bugs that cause program failures. In order to detect harmful concurrency bugs effectively and efficiently, we propose an innovative, collaborative approach called ColFinder. First, ColFinder statically analyzes the program to identify potential concurrency bugs. ColFinder then uses static program slicing to get smaller programs with respect to potential concurrency bugs. Finally, ColFinder dynamically controls thread scheduler to force multiple threads access the same memory location, verifying whether the potential concurrency bug will cause program failure. If a failure occurs, a harmful concurrency bug is detected. We have implemented ColFinder as a prototype tool and have experimented on a number of real-world concurrent programs. The probability of bug manifestation in these programs is only 0.64 % averagely during native execution. It is significantly raised to 90 % with ColFinder. The runtime overhead imposed by many previous approaches is always more than 10 $$\times $$ . The overhead of ColFinder is more acceptable, with an average of 79 %. Additionally, to our knowledge, this is the first technique that introduces program slicing to reduce the time of bug manifestation, with an average of 33 %. [ABSTRACT FROM AUTHOR]
Copyright of International Journal of Parallel Programming is the property of Springer Nature and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Database: Engineering Source
FullText Links:
  – Type: pdflink
Text:
  Availability: 0
Header DbId: egs
DbLabel: Engineering Source
An: 101005206
AccessLevel: 6
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 0
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: Collaborative Technique for Concurrency Bug Detection.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Wu%2C+Zhendong%22">Wu, Zhendong</searchLink><i> wuzhendong@nudt.edu.cn</i><br /><searchLink fieldCode="AR" term="%22Lu%2C+Kai%22">Lu, Kai</searchLink><i> kailu@nudt.edu.cn</i><br /><searchLink fieldCode="AR" term="%22Wang%2C+Xiaoping%22">Wang, Xiaoping</searchLink><i> xiaopingwang@nudt.edu.cn</i><br /><searchLink fieldCode="AR" term="%22Zhou%2C+Xu%22">Zhou, Xu</searchLink><i> zhouxu@nudt.edu.cn</i>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: <searchLink fieldCode="JN" term="%22International+Journal+of+Parallel+Programming%22">International Journal of Parallel Programming</searchLink>. Apr2015, Vol. 43 Issue 2, p260-285. 26p.
– Name: Subject
  Label: Subjects
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22Debugging%22">Debugging</searchLink><br /><searchLink fieldCode="DE" term="%22Computer+system+failure+prevention%22">Computer system failure prevention</searchLink><br /><searchLink fieldCode="DE" term="%22Coding+theory%22">Coding theory</searchLink><br /><searchLink fieldCode="DE" term="%22Multicore+processors%22">Multicore processors</searchLink><br /><searchLink fieldCode="DE" term="%22Threads+%28Computer+programs%29%22">Threads (Computer programs)</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: Concurrency bugs hidden in deployed software can cause severe failures and real-world disasters. They are notoriously difficult to detect during in-house testing due to huge and non-deterministic interleaving space. Unfortunately, the multicore technology trend worsens this problem. Unlike previous work that detects particular concurrency bugs (e.g., data races and atomicity violations), we target harmful concurrency bugs that cause program failures. In order to detect harmful concurrency bugs effectively and efficiently, we propose an innovative, collaborative approach called ColFinder. First, ColFinder statically analyzes the program to identify potential concurrency bugs. ColFinder then uses static program slicing to get smaller programs with respect to potential concurrency bugs. Finally, ColFinder dynamically controls thread scheduler to force multiple threads access the same memory location, verifying whether the potential concurrency bug will cause program failure. If a failure occurs, a harmful concurrency bug is detected. We have implemented ColFinder as a prototype tool and have experimented on a number of real-world concurrent programs. The probability of bug manifestation in these programs is only 0.64 % averagely during native execution. It is significantly raised to 90 % with ColFinder. The runtime overhead imposed by many previous approaches is always more than 10 $$\times $$ . The overhead of ColFinder is more acceptable, with an average of 79 %. Additionally, to our knowledge, this is the first technique that introduces program slicing to reduce the time of bug manifestation, with an average of 33 %. [ABSTRACT FROM AUTHOR]
– Name: AbstractSuppliedCopyright
  Label:
  Group: Ab
  Data: <i>Copyright of International Journal of Parallel Programming is the property of Springer Nature and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.)
PLink https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=egs&AN=101005206
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1007/s10766-014-0304-y
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 26
        StartPage: 260
    Subjects:
      – SubjectFull: Debugging
        Type: general
      – SubjectFull: Computer system failure prevention
        Type: general
      – SubjectFull: Coding theory
        Type: general
      – SubjectFull: Multicore processors
        Type: general
      – SubjectFull: Threads (Computer programs)
        Type: general
    Titles:
      – TitleFull: Collaborative Technique for Concurrency Bug Detection.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Wu, Zhendong
      – PersonEntity:
          Name:
            NameFull: Lu, Kai
      – PersonEntity:
          Name:
            NameFull: Wang, Xiaoping
      – PersonEntity:
          Name:
            NameFull: Zhou, Xu
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 04
              Text: Apr2015
              Type: published
              Y: 2015
          Identifiers:
            – Type: issn-print
              Value: 08857458
          Numbering:
            – Type: volume
              Value: 43
            – Type: issue
              Value: 2
          Titles:
            – TitleFull: International Journal of Parallel Programming
              Type: main
ResultId 1