Understanding and Detecting Peer Dependency Resolving Loop in npm Ecosystem
Xingyu Wang, Mingsen Wang, Wenbo Shen, Rui Chang

TL;DR
This paper investigates the PeerSpin problem in npm, a peer dependency conflict causing infinite loops, and introduces PeerChecker, a detection tool that identified thousands of affected packages in the ecosystem.
Contribution
It provides the first in-depth analysis of PeerSpin, characterizes its root causes, and proposes a novel detection technique and tool for the npm ecosystem.
Findings
Detected 5,662 packages with PeerSpin
Confirmed 28 real PeerSpin issues
Open sourced detection tools and data sets
Abstract
As the default package manager for Node.js, npm has become one of the largest package management systems in the world. To facilitate dependency management for developers, npm supports a special type of dependency, Peer Dependency, whose installation and usage differ from regular dependencies. However, conflicts between peer dependencies can trap the npm client into infinite loops, leading to resource exhaustion and system crashes. We name this problem PeerSpin. Although PeerSpin poses a severe risk to ecosystems, it was overlooked by previous studies, and its impacts have not been explored. To bridge this gap, this paper conducts the first in-depth study to understand and detect PeerSpin in the npm ecosystem. First, by systematically analyzing the npm dependency resolution, we identify the root cause of PeerSpin and characterize two peer dependency patterns to guide detection. Second,…
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.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware System Performance and Reliability
