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

Node.js 0.10.23이 TLS 데이터 손상, 이벤트 핸들러 중복 호출, dgram 파일 디스크립터 누수 등 13개 버그를 수정한 안정화 릴리스

Node.js 0.10.23 (Stable)

2013년 12월 12일3beginner

Context

Node.js 0.10.x 시리즈는 프로덕션 환경에서 TLS 통신 중 데이터 손상 가능성, 이벤트 리스너 중복 실행으로 인한 예측 불가능한 동작, 파일 디스크립터 누수 등 여러 치명적 결함을 안고 있었다.

Technical Solution

  • uv 의존성을 v0.10.20으로 업그레이드: 저수준 비동기 I/O 라이브러리의 안정성 향상
  • crypto 모듈의 Decipher._flush() 메서드 수정: 복호화 오류를 적절히 에러 이벤트로 발생하도록 변경
  • dgram 모듈 수정: 종료된 소켓의 파일 디스크립터 접근 시 프로세스 중단(abort) 방지
  • events 모듈 수정: NaN 값을 setMaxListeners()에 전달하는 것 방지, once() 등록 함수의 중복 실행 방지, removeAllListeners() 호출 시 TypeError 해결
  • fs 모듈 수정: EEXIST 오류 발생 시 정확한 파일 경로 보고
  • process 모듈 수정: kill() 메서드에서 허용되지 않은 시그널 값 차단
  • tls 모듈의 다중 수정: receivedShutdown 이벤트 발생, SSL 초기화 오류 처리, SNI 콜백 후 NPN 상태 초기화, 보안 데이터 손상 방지
  • npm을 1.3.17로, gyp를 78b26f7로 업그레이드
  • Linux 빌드에 사후 분석(postmortem) 심볼 포함

Key Takeaway

스테이블 릴리스 채널에서 13개 버그 수정은 프로덕션 안정성을 위해 의존성 업그레이드, 암호화/네트워크/이벤트 시스템의 엣지 케이스 처리, 메모리 누수 방지가 동시에 필요함을 시사한다.


Node.js

0.

1

0.x를 사용하는 프로덕션 서비스에서 TLS 소켓 통신, 이벤트 기반 에러 처리, UDP 소켓 라이프사이클 관리를 수행할 때, 이 버전으로 업그레이드하면 데이터 손상, 이벤트 핸들러 중복 실행, 파일 디스크립터 누수로 인한 장시간 운영 후 메모리/FD 고갈 현상을 방지할 수 있다.

원문 읽기