Debugging Your Way Through a Node.js Upgrade
summary
Node 18 ships fetch, web streams and an experimental test runner, but upgrading from 14→16 caused a specific test to hang: a socket error emitted in 14 no longer fires in 16 so fallback logic never runs. Debugging uses git bisect (builds of Node per commit), runtime logs via NODE_DEBUG, stepping with the Chrome inspector, and finally a minimal core reproduce that shows the fix: register an error callback, adjust client code, and add current Node to CI or use the pkgjs action.
AI-written summary · about
chapters (19)
- 0:00Introduction and new features
- 2:30Understanding release policies
- 5:49Navigating release history
- 7:02Using change logs
- 7:13Managing breaking changes
- 8:10Real-world debugging case
- 8:49Investigation techniques
- 11:21Using git bisect
- 12:29Demonstrating the bisect flow
- 12:41Automating binary search
- 14:34Reviewing commit findings
- 15:00Comparing debug output
- 15:53Expert collaboration
- 16:29Creating minimal reproduces
- 17:48Summary of techniques
- 18:30Future upgrade preparation
- 20:41CI matrix automation
- 21:27Closing thoughts
- 22:24Conclusion
related talks
26mDebugging Node.js Upgrades
39mNode.js - What's Next - Catalyzing Change in the Node.js Ecosystem
39mNode.js - What's Next - Catalyzing Change in the Node.js Ecosystem
22mThe Journey About How I Fixed a Bug in the Node.js Core That Affected Thousands of Packages
21mFoundations of Debugging Node.js
29mNode.js: The New and the Experimental
34mNode.js - What's Next - Catalyzing Change in the Node.js Ecosystem
57mTroubleshooting Node.js Applications Under the Hood
