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

Node.js가 0.10.11 버전 릴리스로 libuv, npm, OpenSSL 업그레이드 및 HTTP 업그레이드 이벤트, 메모리 안전성, 네트워크 busy loop 버그 수정

Node.js 0.10.11 (Stable)

2013년 6월 13일5intermediate

Context

Node.js 0.10 시리즈의 안정성을 위해 의존성 라이브러리 버전 관리, 플랫폼별 호환성 문제(MIPS), HTTP 프로토콜 처리, 메모리 안전성, 그리고 Linux 커널에서의 네트워크 이벤트 처리 이슈를 해결해야 했다.

Technical Solution

  • libuv를 0.10.11로 업그레이드하여 비동기 I/O 이벤트 루프 개선
  • npm을 1.2.30으로 업그레이드하여 패키지 관리 기능 안정화
  • OpenSSL에 MIPS 아키텍처를 위한 누락된 설정 조각 추가 (Andrei Sedoi)
  • HTTP 업그레이드 이벤트에서 bodyHead 제거 작업을 되돌려 기존 동작 복구 (isaacs)
  • V8에서 포인터 산술 정의되지 않은 동작(undefined behavior) 수정으로 메모리 안전성 강화 (Trevor Norris)
  • crypto 모듈에서 utf8/utf-8 인코딩 검증 로직 수정 (Ben Noordhuis)
  • 이전 Linux 커널의 POLLERR|POLLHUP 이벤트로 인한 네트워크 busy loop 문제 해결 (Ben Noordhuis, isaacs)

Key Takeaway

런타임 레벨의 메모리 안전성 버그와 플랫폼별 네트워크 이벤트 처리의 차이를 정확히 진단하고 수정함으로써 다양한 하드웨어 플랫폼과 OS 커널 버전에서의 안정적인 동작을 보장하는 것이 중요하다.


Node.js 기반 프로덕션 서비스를 운영하는 팀은

0.

1

0.11 이상으로 업그레이드하여 V8 포인터 산술 버그와 Linux 구형 커널에서의 네트워크 busy loop 문제를 해결해야 하며, 특히 MIPS 아키텍처 기기를 지원하는 환경에서는 OpenSSL 설정 개선이 포함되었음을 확인해야 한다.

원문 읽기