Search papers, labs, and topics across Lattice.
This study conducts a thorough analysis of 216 native code bugs in Python applications, revealing their symptoms, locations, manifestation characteristics, root causes, and potential fixes. By integrating both automated and manual analyses, the research uncovers the stealthy nature of these bugs and their significant impact on the overall quality of Python applications, particularly in critical domains like machine learning and scientific computing. The findings provide actionable insights that can enhance debugging practices and improve the reliability of Python software that relies on native code components.
Native code bugs in Python applications can go undetected but are critical to software quality, with this study revealing their hidden patterns and effective resolution strategies.
The impact of Python applications has been evidenced by their widespread presence in some of the most impactful software domains, such as machine learning frameworks and scientific computing platforms. These applications often integrate native code components written in a lower-level programming language like C. This multilingual construction brings various benefits such as greater performance efficiency and easier interoperability with diverse runtime environments. However, bugs in the native code (i.e., native code bugs), which are usually stealthy, also constitute a major additional challenge to the quality of the Python applications as a whole. Yet despite existing relevant studies, there remains a lack of comprehensive understanding of native code bugs in Python applications. In this paper, we aim to mitigate this knowledge gap through the first in-depth study of such bugs, dissecting their common symptoms, introducing locations, manifestation characteristics, root causes, and fixes. Based on our extensive automated and manual analyses of 216 native code bugs in real-world Python projects on GitHub, we obtained novel findings about and new insights into the occurrence mechanisms and resolution strategies of those bugs.