피드로 돌아가기
Node.js 4.2.6 (LTS)
Node.js BlogNode.js Blog
Backend

Node.js 4.2.6 LTS가 디버거/프로파일러 회귀 버그 및 DNS/URL 관련 크래시 4건 수정

Node.js 4.2.6 (LTS)

2016년 1월 21일4intermediate

Context

Node.js 4.2.6 LTS 릴리스는 디버거와 프로파일러 기능의 회귀 버그를 포함한 여러 치명적 문제를 해결했다. 모듈 래핑 과정에서 -1 lineOffset이 적용되어 한 줄 파일의 디버깅이 불가능했으며, DNS 쿼리 진행 중 setServers() 호출 시 단언 실패로 인한 프로세스 크래시가 발생했다.

Technical Solution

  • 모듈 래핑 로직 수정: -1 lineOffset을 제거하여 한 줄 파일의 정상적인 디버깅 지원 (커밋: 1408f7abb1)
  • DNS 동시성 안전성 개선: dns.setServers() 실행 중 기존 DNS 쿼리가 진행 중인 상태 처리
  • REPL 서로게이트 페어 처리: 터미널 동결을 일으키는 서로게이트 페어 문자 처리 개선
  • URL 인증 정보 전달 수정: url.resolve()에서 두 호스트 간 해석 시 auth 포션 부정확한 전달 문제 수정
  • beforeExit 타이머 문제: 참조 해제된 타이머가 beforeExit 중 실행되는 회귀 문제 식별 (추후 해결 예정)

Key Takeaway

장기지원(LTS) 릴리스에서는 회귀 버그 수정이 새 기능 추가보다 우선하며, 단일 커밋 단위의 세밀한 변경관리를 통해 핵심 모듈(module, dns, url, REPL)의 안정성을 확보한다.


Node.js LTS 버전을 프로덕션에서 운영하는 팀에서

4.

2.6 이상으로 업그레이드하면 한 줄 파일 디버깅 실패, DNS 설정 변경 중 프로세스 크래시, URL 파싱 오류 등 3가지 이상의 치명적 버그를 동시에 해결할 수 있다.

원문 읽기