피드로 돌아가기
Node.js 0.8.25 (Maintenance)
Node.js BlogNode.js Blog
Backend

Node.js가 0.8.25 유지보수 릴리스에서 child_process 핸들 전달 버그 수정 및 npm을 1.2.30으로 업그레이드

Node.js 0.8.25 (Maintenance)

2013년 6월 13일2beginner

Context

Node.js 0.8 버전 시리즈의 장기 유지보수 단계에서 child_process 모듈의 핸들 전달 메커니즘에서 버그가 발생했다. 이 버그는 자식 프로세스와의 IPC 통신에서 핸들 객체를 올바르게 전달하지 못하는 문제를 야기했다.

Technical Solution

  • child_process 핸들 전달 버그 수정: Ben Noordhuis에 의해 자식 프로세스로 전달되는 핸들의 직렬화 및 역직렬화 로직 수정
  • npm 1.2.30으로 업그레이드: 패키지 매니저의 의존성 관리 및 보안 관련 개선사항 적용
  • 다중 플랫폼 바이너리 제공: macOS, Windows (x86, x64), Linux (32-bit, 64-bit), Solaris (32-bit, 64-bit) 플랫폼별 사전 컴파일된 설치 파일 제공

Key Takeaway

유지보수 버전 릴리스에서는 핵심 기능의 안정성을 담보하기 위해 IPC 통신 같은 프로세스 간 상호작용의 버그를 우선적으로 해결한다. 다양한 운영 체제와 아키텍처를 지원하는 런타임은 배포 시점에 모든 플랫폼별 바이너리의 체크섬을 명시해야 한다.


Node.js를 사용하는 백엔드 서비스에서 child_process를 통해 자식 프로세스와 IPC로 핸들(소켓, 서버 등)을 주고받는 경우,

0.

8.25 이상으로 업그레이드하면 핸들 전달 시 발생하던 불안정성을 제거할 수 있다.

원문 읽기