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

Node.js 0.10.34가 의존성 업그레이드와 버그 수정으로 메모리 누수 및 도메인 처리 문제 해결

Node.js 0.10.34 (Stable)

2014년 12월 17일3beginner

Context

Node.js 0.10.x 버전에서 타이머 unref() 메서드의 메모리 누수, 도메인의 uncaught 예외 처리 오류, 자식 프로세스 인자 검증 부재 등 안정성 문제가 존재했다.

Technical Solution

  • uv 라이브러리를 v0.10.29에서 v0.10.30으로 업그레이드
  • zlib을 v1.2.8로 업그레이드하여 압축 처리 개선
  • child_process.execFile()의 인자를 배열 타입으로 검증하도록 추가 (Sam Roberts)
  • child_process.fork()의 인자를 배열 타입으로 검증하도록 추가 (Sam Roberts)
  • crypto의 루트 인증서 업데이트 (Ben Noordhuis)
  • 도메인(domains)의 uncaught 예외 처리 로직 수정 (Julien Gilli)
  • 타이머의 _unrefActive 함수를 선형 스캔에서 다른 방식으로 변경 (Julien Gilli)
  • timers.unref() 메서드의 메모리 누수 수정 (Trevor Norris)
  • V8 API에 uncaught 예외 발생 시 abort 기능 추가 (Julien Gilli)
  • debugger에서 "use strict" 사용 시 오류 수정 (Julien Gilli)

Key Takeaway

점진적 버그 수정과 의존성 업그레이드를 통해 메모리 누수, 예외 처리 오류, 보안 인증서 만료 등 프로덕션 환경의 안정성을 개선하는 것이 중요하다.


Node.js 애플리케이션 운영 중 타이머를 활용한 비참조 객체(unref) 사용이나 도메인을 통한 예외 처리를 구현한 경우, 해당 버전의 누수 및 오류가 있는지 확인하고

0.

1

0.34 이상으로 업그레이드하면 메모리 누수와 미처리 예외로 인한 크래시를 방지할 수 있다.

원문 읽기