피드로 돌아가기
Node.js 0.10.25 (Stable)
Node.js BlogNode.js Blog
Backend

Node.js 0.10.25 안정 버전이 uv, npm, v8 업그레이드 및 6개 버그 수정으로 메모리 누수와 스트림 처리 문제 해결

Node.js 0.10.25 (Stable)

2014년 1월 23일3beginner

Context

Node.js 0.10.x 시리즈는 프로덕션 환경에서 널리 사용되고 있었으나 속성이 많은 객체 열거, 자식 프로세스 인자 처리, 스트림 드레인 이벤트 누락 등 여러 버그로 인한 메모리 누수와 데이터 손실 위험이 존재했다.

Technical Solution

  • libuv를 v0.10.23으로 업그레이드하여 비동기 I/O 레이어 안정성 개선
  • npm을 v1.3.24로 업그레이드하여 패키지 관리 기능 강화
  • v8 엔진에서 많은 프로퍼티를 가진 객체의 열거 버그 수정
  • child_process.spawn() 함수의 선택적 인자 처리 로직 수정 (Sam Roberts 기여)
  • cluster 모듈에서 워커로 더 많은 에러 정보 전달하도록 개선 (Fedor Indutny 기여)
  • domains 모듈의 exit() 메서드가 활성화된 도메인에만 영향을 미치도록 동작 제한 (Ryan Graham 기여)
  • OnFatalError 핸들러에서 abort() 호출 강제 (Timothy J Fontaine 기여)
  • stream 모듈에서 쓰기 작업이 false를 반환할 때 drain 이벤트 누락 버그 수정 (Yang Tianyang 기여)

Key Takeaway

핵심 의존성(libuv, npm, v8) 업그레이드와 함께 프로세스 관리, 스트림 처리, 도메인 격리 등 런타임 수준의 버그를 동시에 해결함으로써 안정성 있는 마이너 버전 릴리스의 중요성을 보여준다.


Node.js

0.

1

0.x 환경에서 운영 중인 서비스는 특히 자식 프로세스 생성이나 스트림 기반 데이터 처리(파일 읽기/쓰기, TCP 통신)를 사용할 경우

0.

1

0.25 이상으로 업그레이드하여 drain 이벤트 누락과 메모리 누수를 방지해야 한다.

원문 읽기