scholarly journals IFIX: Fixing Concurrency Bugs While They Are Introduced

Author(s):  
Zan Wang ◽  
Haichi Wang ◽  
Shuang Liu ◽  
Jun Sun ◽  
Haoyu Wang ◽  
...  
Keyword(s):  
2015 ◽  
Vol 58 (5) ◽  
pp. 1-18 ◽  
Author(s):  
DongDong Deng ◽  
GuoLiang Jin ◽  
Marc de Kruijf ◽  
Ang Li ◽  
Ben Liblit ◽  
...  
Keyword(s):  

Author(s):  
Sara Abbaspour Asadollah ◽  
Daniel Sundmark ◽  
Sigrid Eldh ◽  
Hans  Hansson ◽  
Eduard Paul Enoiu

Author(s):  
Mitra Tabaei Befrouei ◽  
Chao Wang ◽  
Georg Weissenbacher
Keyword(s):  

2019 ◽  
Vol 2019 ◽  
pp. 1-19
Author(s):  
Z. Yu ◽  
Y. Zuo ◽  
W. C. Xiong

Software transactional memory is an effective mechanism to avoid concurrency bugs in multithreaded programs. However, two problems hinder the adoption of such traditional systems in the wild world: high human cost for equipping programs with transaction functionality and low compatibility with I/O calls and conditional variables. This paper presents Convoider to solve these problems. By intercepting interthread operations and designating code among them as transactions in each thread, Convoider automatically transactionalizes target programs without any source code modification and recompiling. By saving/restoring stack frames and CPU registers on beginning/aborting a transaction, Convoider makes execution flow revocable. By turning threads into processes, leveraging virtual memory protection and customizing memory allocation/deallocation, Convoider makes memory manipulations revocable. By maintaining virtual file systems and redirecting I/O operations onto them, Convoider makes I/O effects revocable. By converting lock/unlock operations to no-ops, customizing signal/wait operations on condition variables, and committing memory changes transactionally, Convoider makes deadlocks, data races, and atomicity violations impossible. Experimental results show that Convoider succeeds in transparently transactionalizing twelve real-world applications with averagely incurring only 28% runtime overhead and perfectly avoid 94% of thirty-one concurrency bugs used in our experiments. This study can help efficiently transactionalize legacy multithreaded applications and effectively improve the runtime reliability of them.


2012 ◽  
Vol 23 (6) ◽  
pp. 1060-1072 ◽  
Author(s):  
Shan Lu ◽  
Soyeon Park ◽  
Yuanyuan Zhou
Keyword(s):  

Sign in / Sign up

Export Citation Format

Share Document