피드로 돌아가기
Node.js 4.3.1 (LTS)
Node.js BlogNode.js Blog
Backend

Node.js 4.3.1 LTS에서 Buffer.byteLength 동작 수정 및 디버거 세그멘테이션 폴트 3건 해결

Node.js 4.3.1 (LTS)

2016년 2월 17일3intermediate

Context

Node.js 4.3.1 LTS 버전에서 Buffer API와 디버거 기능에서 안정성 문제가 발견되었다. Buffer.byteLength 함수가 Buffer 객체와 올바르게 작동하지 않았고, 디버거 사용 중 세그멘테이션 폴트와 크래시가 발생했다.

Technical Solution

  • Buffer.byteLength 함수의 Buffer 객체 처리 로직 수정 (Jackson Tian 기여)
  • 디버거 호출 시 non-node 컨텍스트 가드 추가로 세그멘테이션 폴트 #4328 해결 (Ben Noordhuis 기여)
  • 디버거 debug context 인셉션 방지로 util 메서드 사용 시 크래시 #4819 해결 (Myles Borins 기여)
  • http-parser 의존성을 2.5.2 버전으로 업데이트 (James Snell 기여)

Key Takeaway

Node.js LTS 버전의 마이너 버전 업데이트에서는 코어 API의 엣지 케이스 처리(Buffer 타입 검증)와 런타임 컨텍스트 안정성(디버거 컨텍스트 격리)에 대한 점진적 개선이 이루어진다.


Node.js

4.x를 사용 중인 프로덕션 환경에서 Buffer 객체를 직접 byteLength에 전달하거나 디버거를 활용할 경우,

4.

3.1 이상으로 업그레이드하여 예측 불가능한 세그멘테이션 폴트로 인한 프로세스 종료를 방지할 수 있다.

원문 읽기