DOOM, 실제 하드웨어에서 2.5년 실사용 후 크래시 발생 확인

1 hour ago 1

  • DOOM 엔진의 변수 오버플로우로 인한 게임 크래시 현상 발생 확인
  • 실 사용 환경에서 2.5년 간 DOOM 실행 실험 진행
  • 변수 값이 계속 증가하면서, 오버플로우에 도달해 예상된 순간 게임 종료 발생
  • 실험은 PDA와 DIY UPS를 이용해 장기간 자동 실행 환경에서 진행
  • 이 테스트는 이론적 문제점이 현실에서도 실제로 발생함을 입증함

실험 배경 및 동기

  • 약 2년 반 전, DOOM 엔진 구조와 동작 방식에 관한 글을 읽으면서 데모 실행 추적에 사용되는 변수가 각 데모 시작마다 계속 증가함을 발견함
  • 이 변수는 직전 값과 비교가 이루어지지만, 반복적으로 값이 커지면서 결국 오버플로우 위험이 내재함
  • 평범한 사용 환경에서는 이 오버플로우 상황에 도달하기 어렵지만, 실제로 얼마나 걸리는지 직접 실험 진행 결정

실험 방법 및 과정

  • 단순 계산을 통해 오버플로우가 일어나기까지 약 2년 반의 런타임이 필요하다고 추정함
  • 실제 확인을 위해 PDA 기기에 DOOM을 설치 후, 18650 배터리를 사용한 DIY UPS로 전원을 공급
  • 해당 기기를 라우터 USB 포트에 연결하여 5V 전원 공급을 지속적으로 유지함
  • 시스템을 자동충전 환경에서 지속 구동하도록 세팅 후, 대부분의 시간 동안 방치함

크래시 발생 및 결과

  • 실험 시작 약 2년 반이 지난 후, 기기의 화면에 팝업 알림이 등장함을 확인
  • DOOM이 예상과 같이 오버플로우로 인한 하드 크래시 상태로 전환됨
  • 실험 결과, 변수 오버플로우로 인한 게임 종료 현상이 실제 하드웨어, 실제 소프트웨어 환경에서도 발생함을 입증함

결론 및 시사점

  • 프로그래밍에서 긴 시간 동안 누적되어 증가하는 변수에 대한 주의점 강조
  • 이론상 가능성으로만 여겨지던 오버플로우 문제가 현실에서 실제로 터질 수 있음을 실험적으로 확인함
  • 레거시 코드 혹은 장시간 동작하는 소프트웨어의 숨어있는 결함에 대한 경각심 고취

Read Entire Article