GN⁺: 지금까지 본 가장 이상한 버그
(engineering.gusto.com)이상한 버그의 발견과 해결 과정
- 내부 도구 팀의 온콜 근무 중, 구스토(Gusto)의 내부 소프트웨어를 사용하는 사용자들이 크롬 브라우저 충돌 문제를 경험함.
- 이 문제는 고객 서비스에 다양한 방해를 초래함.
- 문제 해결을 위해 경험 많은 동료, 제품 인프라 팀, IT 팀의 도움을 받음.
첫 번째 단서
- 영향을 받은 사용자들에게 공통점을 찾으려 시도함.
- 모든 구스토 직원이 영향을 받은 것은 아니며, 고객 대면 소프트웨어는 문제가 없음.
- 다른 내부 소프트웨어 웹페이지는 정상 작동함.
- 충돌은 일관성 없이 발생하며, 사파리나 파이어폭스에서는 문제가 발생하지 않음.
두 번째 단서
- 크롬 버전이 문제일 수도 있다는 가설을 세움.
- 일부 사용자가 크롬 버전을 업데이트했을 때 문제가 해결된 것처럼 보였으나, 완전히 해결되지는 않음.
- 크롬 확장 프로그램이 문제일 수도 있다고 추측했으나, 확장 프로그램 없이도 문제가 재현됨.
버그 재현의 어려움
- 인프라 팀이 모든 엔지니어에게 문제 재현을 요청함.
- 터키의 두 엔지니어를 제외하고는 엔지니어 팀에서는 충돌을 보고하지 않음.
- 크롬 충돌 보고 기능이 보안상 비활성화되어 있어 문제 해결에 어려움을 겪음.
행운의 전환점
- 덴버의 한 엔지니어가 그래머리(Grammarly) 데스크톱 앱을 다운로드한 후 문제가 발생했다고 보고함.
- 그래머리 앱을 삭제하고 컴퓨터를 재시작하면 문제가 해결됨을 발견함.
진전
- 디버깅이 가능해지면서, 문제의 원인을 찾기 위해 여러 시도를 함.
- 주요 내부 애플리케이션은 ActiveAdmin을 기반으로 구축되었으나, React를 사용하는 새로운 부분은 충돌하지 않음.
- 공통 코드 부분을 조사하던 중 'My History' 드롭다운 메뉴가 문제의 원인임을 발견함.
문제 해결
- 'loader-spinner.gif' 이미지 파일이 문제를 일으키는 것으로 확인됨.
- 해당 GIF를 다른 이미지로 교체하자 페이지가 더 이상 충돌하지 않음.
- 그래머리나 크롬 중 하나가 문제를 해결했는지, 이제는 원래의 GIF가 크롬을 충돌시키지 않음.
결론
- 예상치 못한 애니메이션 GIF가 디버깅의 해답이었음.
- 호기심과 협력을 통해 문제를 해결함.
- 구스토는 협력적이고 호기심 많은 사람들과 함께 일할 수 있는 기회를 제공함.
GN⁺의 의견
이 글에서 가장 중요한 것은 예상치 못한 원인으로 인한 버그를 발견하고 해결한 과정의 상세한 기술임. 이 글은 소프트웨어 엔지니어링의 복잡성과 예측 불가능성을 보여주며, 팀워크와 끈기 있는 문제 해결 능력이 얼마나 중요한지를 강조함. 엔지니어링 팀이 어떻게 협력하여 난해한 문제를 해결하는지에 대한 흥미로운 사례를 제공하며, 이는 엔지니어링 분야에 관심 있는 사람들에게 매우 매력적인 이야기가 될 것임.
Hacker News 의견
-
특정 GIF 파일로 인한 버그 발생에 대한 놀라움과 의심
한 사용자는 코드 내에서 일련의 우연이 겹쳐 특정 GIF 파일로 인한 버그가 발생하는 것을 믿기 어렵다고 언급함. Grammarly 앱에 대한 의구심도 표현하며, 많은 사람들이 문법 제안을 받기 위해 사실상 스파이웨어와 같은 앱을 설치하고, 회사에서 이를 허용하는 것에 대해 놀라움을 표함.
-
대학 교수의 연구 논문 작업 중 발생한 밑줄 인쇄 문제
한 대학 교수가 연구 논문 작업 중 텍스트 밑줄이 인쇄되지 않는 문제를 겪었고, 이는 특정 비디오 카드 드라이버와 프린터 드라이버의 조합으로 인한 것으로 밝혀짐.
-
Grammarly 관련 버그 경험 공유
한 사용자는 과거 Grammarly 확장 프로그램이 설치된 특정 부서 내에서 비슷한 버그를 경험했으며, 이는 스테이징 환경의 URL에서만 발생하고, 잘못된 정규 표현식으로 인해 페이지가 멈추는 현상이었음.
-
버그 수정에 대한 실망감 표현
한 사용자는 버그 수정 과정을 추리 소설처럼 즐겼으나, 결국 버그의 정확한 원인을 알 수 없게 되어 실망함을 표현함.
-
윈도우와 리눅스 듀얼 부팅 시 오디오 문제
윈도우에서 재부팅 후 리눅스에서 사운드가 없는 문제가 발생했으며, 이는 윈도우가 오디오 장치를 완전히 종료하지 않고 대기 모드로 전환하기 때문이라는 것을 발견함.
-
2023년 웹 환경에서의 버그 발생에 대한 흥미
기술의 복잡한 결합으로 인해 발생한 버그에 대해 흥미를 표현하며, 크로미움 버그가 해결되었는지 궁금해함.
-
크롬의 접근성 도구와 관련된 버그 경험 공유
크롬의 접근성 도구가 유사한 버그를 일으킨 경험을 공유하며, Grammarly가 크롬의 접근성 도구에 의존할 가능성을 언급함.
-
페이지 번역 설정으로 인한 혼란 공유
사용자가 입력한 정보의 문구가 저장 시 변경된다고 주장하는 문제가 발생했으나, 이는 크롬의 "이 페이지 번역하기" 옵션이 켜져 있어서 발생한 것으로 밝혀짐.
-
웹사이트 CSS로 인한 리눅스 데스크탑 충돌 경험 공유
Yahoo 검색 페이지의 CSS가 Red Hat Linux에서 데스크탑 충돌을 일으킨 경험을 공유하며, 크롬 개발팀에 버그를 보고할 것을 제안함.
-
버그 해결이 중요한 보안 취약점이 될 수 있음에 대한 의견
버그를 해결할 수 있다면, 이는 매우 가치 있는 보안 취약점이 될 수 있다는 의견을 제시함.