BigBug: Practical Concurrency Analysis for SDN

By operating in highly asynchronous environments, SDN controllers often suffer from bugs caused by concurrency violations. Unfortunately, state-of-the-art concurrency analyzers for SDNs often report thousands of true violations, limiting their effectiveness in practice. This paper presents BigBug, an approach for automatically identifying the most representative concurrency violations: those that capture the cause of the violation. The two key insights behind BigBug are that: (i) many violations share the same root cause, and (ii) violations with the same cause share common characteristics. BigBug leverages these observations to cluster reported violations according to the similarity of events in them as well as SDN-specific features. BigBug then reports the most representative violation for each cluster using a ranking function. We implemented BigBug and showed its practical effectiveness. In more than 100 experiments involving different controllers and applications, BigBug systematically produced 6 clusters or less, corresponding to a median decrease of 95% over state-of-the-art analyzers. The number of violations reported by BigBug also closely matched that of actual bugs, indicating that BigBug is effective at identifying root causes of SDN races.

[1]  Stephen N. Freund,et al.  FastTrack: efficient and precise dynamic race detection , 2009, PLDI '09.

[2]  References , 1971 .

[3]  Laurent Vanbever,et al.  SDNRacer: detecting concurrency violations in software-defined networks , 2015, SOSR.

[4]  Devavrat Shah,et al.  Fastpass , 2014, SIGCOMM.

[5]  Satish Narayanasamy,et al.  Automatically classifying benign and harmful data races using replay analysis , 2007, PLDI '07.

[6]  Martin T. Vechev,et al.  Scalable race detection for Android applications , 2015, OOPSLA.

[7]  Alexander Serebrenik,et al.  Survey of Approaches for Handling Static Analysis Alarms , 2016, 2016 IEEE 16th International Working Conference on Source Code Analysis and Manipulation (SCAM).

[8]  David G. Kirkpatrick,et al.  A Theoretical Analysis of Various Heuristics for the Graph Isomorphism Problem , 1980, SIAM J. Comput..

[9]  László Babai,et al.  Graph isomorphism in quasipolynomial time [extended abstract] , 2015, STOC.

[10]  Tukaram Muske Improving Review of Clustered-Code Analysis Warnings , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[11]  Anil K. Jain,et al.  Algorithms for Clustering Data , 1988 .

[12]  Mary Lou Soffa,et al.  Path-based fault correlations , 2010, FSE '10.

[13]  Kwangkeun Yi,et al.  Sound Non-statistical Clustering of Static Analysis Alarms , 2012, VMCAI.

[14]  George Candea,et al.  Data races vs. data race bugs: telling the difference with portend , 2012, ASPLOS XVII.

[15]  Laurent Vanbever,et al.  SDNRacer: concurrency analysis for software-defined networks , 2016, PLDI.

[16]  Tukaram B. Muske,et al.  Review efforts reduction by partitioning of static analysis warnings , 2013, 2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM).