소프트웨어 민속 이야기
(beza1e1.tuxen.de)- 인터넷에서 믿을 수 없는 소프트웨어/하드웨어 버그에 대한 이야기를 모은 것.
- 유명한 "바닐라 아이스크림 알레르기 자동차"를 포함한 다양한 이야기가 있음.
- 500마일 이상 전송되지 않는 이메일
- 만조일 때 다운되는 DB 서버
- 화요일에 인쇄되지 않는 OpenOffice
- 등등
Crash Cows
- 1980년대, 철도역에 설치된 마이크로 컴퓨터에서 규칙적으로 비정상 버그를 만듦. 개발자는 체르노빌에서 넘어오는 소들을 실은 열차가 지나갈 때 이 문제가 발생한다는 패턴을 확인, 이를 증명하기 위해 가이거 계수기를 가져와 그 소들이 비정상적으로 방사능 수치가 높다는 것을 확인함. 다시 말해, 방사능 수치가 너무 높아서 플립비트 현상이 발생한 것. 알고보니 당시 물자가 부족했던 소비에트 연방이 체르노빌 소와 다른 소들의 고기를 섞어 방사능 수치를 낮춰서 공급하는 전략을 선택했던 것. 개발자는 이 사실을 알게되자마자 주변 모든 나라에 이민 서류를 제출함. 그리고 컴퓨터는 시간이 흐름에 따라 방사능 수치가 점점 낮아졌으므로 자연히 문제가 해결됨.
Fail on certain Moon Phases
- 달의 위상에 따라서 동작이 변하는 프로그램들에 대한 짧은 이야기
- MIT의 사례: 서브루틴의 아웃풋이 80-width 텍스트인데, 달의 위상에 따라 80자보다 길어질 때가 있어서, 이 경우엔 두번째 줄까지 overflow 되는데 이로 인해서 프로그램이 장애를 겪음
- CERN의 사례: 달의 위상에 의해 만유인력에 따라 지구의 모양이 변하면서, 입자가속기(LHC)가 물리적으로 살짝 변경되고, 이로 인해 측정치가 다르게 나오는 문제를 겪음
Down by Tubes
한 회사에서 티켓 발권 시스템을 개발함. 이후 윈도우 95가 출시되고, 여기에 그 소프트웨어를 설치해서 판매했음. 그런데 이 시스템을 사용하는 로컬 가게에서 자꾸 서버가 꺼진다는 제보를 받고 James 가 출동함. "시스템이 이제 정상작동합니다". 10분 뒤 "시스템이 고장났어요", 그리고 잠시 후 "이제 다시 잘 작동해요". James 는 아무것도 하지 않았기 때문에 당황했음. 알고보니, 10분만에 등장하는 3D 화면 보호기 (튜브들이 이리저리 이어지는... 여러분이 기억하는 그것) 가 CPU 를 100% 먹고 있던 것. 이걸 disable 해서 문제 해결.
Crash Bandicoot
- PS1 용 게임인 Crash Bandicoot 을 개발하던 중, 어쩌다 한 번씩 메모리카드에 save & load 할 때 데이터가 모두 깨지는 문제가 발생했음. 오만가지 게임 요소를 stub 으로 대체하고도 동일 현상이 일어나서 좌절하다가, 결국 하드웨어 이슈임을 알게 됨. 이 게임에선 클락을 임의로 1KHz 로 조절해두었는데, 이 세팅이 데이터 전송량 컨트롤러 (baud rate controller) 에 간섭을 일으키고, 이 때 PS1 컨트롤러를 사용하면서 메모리카드에 읽고 쓰는 데이터가 꼬이게 된 것.
Car Allergic to Vanilla Ice Cream
- 바닐라 아이스크림을 살 때만 자동차 시동이 안걸리는 현상을 목격. 알고보니 바닐라 아이스크림은 인기 상품이라 다른 아이스크림과 달리 카운터 앞쪽에 배치되어 있었고, 그로인해 다른 아이스크림보다 훨씬 일찍 자동차로 돌아왔고, 엔진 과열 (Vapor Lock) 을 겪은 차를 보게 된 것. 다른 아이스크림은 늦게 받았기 때문에 엔진이 충분히 냉각될 수 있었음
예전에 게임 프로그래밍 관련해서 비슷한 글이 있었는데 혹시 기억하시는분 계신가요? 생각나는 내용이 세개 있는데 하나는 시니어 엔지니어가 미리 10mb 정도 메모리를 쓸데없이 잡아두고 메모리 최적화가 필요할때 해당 라인을 지운거랑, git hash collision 으로 코드가 엉밍아 되서 파일 하나에 스페이스 하나 추가해서 해결하는거, 또 하나는 어떤 엔지니어가 퇴사전에 게임안에 아무도 못들어가는 집 안에다가 폴리곤 엄청 때려박은 오리를 넣어가지고 로딩시간 길어지게 하는 내용이었습니다.
정말 알 수 없는 기상천외한 버그에 대한 이야기들을 모아뒀는데, 그 원인이 아주 다채롭고 재미있습니다.
민속이라는 이름을 붙인 이유를 알 것 같아요.
버그가 터져서 심란할 때 읽어보면 활력을 얻을 수 있더군요.