PanicFI: An Infrastructure for Fixing Panic Bugs in Real-World Rust Programs
Yunbo Ni, Yang Feng, Zixi Liu, Runtao Chen, Baowen Xu

TL;DR
PanicFI is a comprehensive infrastructure that includes datasets, patterns, and an automated tool, PanicKiller, to understand and fix panic bugs in Rust programs, addressing a critical gap in Rust bug repair.
Contribution
The paper introduces PanicFI, the first infrastructure for fixing Rust panic bugs, including a dataset, fixing patterns, and an automated repair tool, PanicKiller.
Findings
Panic4R dataset contains 102 real panic bugs and fixes.
PanicKiller successfully fixed 28 panic bugs in open-source projects.
Rust-specific panic fixing patterns improve automated repair effectiveness.
Abstract
The Rust programming language has garnered significant attention due to its robust safety features and memory management capabilities. Despite its guaranteed memory safety, Rust programs suffer from runtime errors that are unmanageable, i.e., panic errors. Notably, traditional memory issues such as null pointer dereferences, which are prevalent in other languages, are less likely to be triggered in Rust due to its strict ownership rules. However, the unique nature of Rust's panic bugs, which arise from the language's stringent safety and ownership paradigms, presents a distinct challenge. Over half of the bugs in rustc, Rust's own compiler, are attributable to crash stemming from panic errors. However, addressing Rust panic bugs is challenging and requires significant effort, as existing fix patterns are not directly applicable due to the design and feature of Rust language.Therefore,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsEnergy and Environmental Systems · Bioenergy crop production and management · Vehicular Ad Hoc Networks (VANETs)
