심볼 없이 커널 덤프 크래시 원인 식별, 브라우저 인터넷 연결 진단 — 주간 리뷰 (2026-09-28)

심볼 없는 커널 덤프 크래시 프로세스·COM 유발자 PID 식별, 정팀장 서버 관제 위젯, 전체 노드 부하 판정 카드, 브라우저 인터넷 연결 진단, 네트워크 구역 자동 찾기를 다룬 Orange Labs 주간 개발 기록

이번 주에는 덤프 분석기가 Microsoft 심볼 서버 없이도 커널 덤프의 크래시 프로세스와 COM/RPC 호스트 크래시의 유발자 PID를 읽어내게 만들었다. 에이전트에는 접속 시험·원인 점검·조치를 담은 브라우저 인터넷 연결 진단이 올라오고, 매니저에서는 전체 노드 부하 요약을 판정 카드로 바꿔 평소보다 높은지를 한눈에 보이게 했다.

룰·데이터 분석 파트

전체 노드 부하 요약을 차트·알약 대신 판정 한 줄과 지표 6칸으로 바꿨다. 7일 중앙값·MAD로 평소보다 높음을 가리는 배너를 넣고, 확인하기를 누르면 시간 요약이 열려 누가 부하를 올렸는지와 원인 프로그램을 쉬운 문장으로 짚게 했다.

전체 노드 부하의 1시간 보기와 하루·시간 요약도 새로 만들었다. 릴리즈 노트는 패키지 1.6.242.0922 회차의 매니저·서버·에이전트·룰·정팀장 항목을 홈페이지에 게시했다.

커널 드라이버 파트

TCP 연결 지연을 콜백 처리 시각이 아니라 커널 시각으로 재도록 고치고, 불필요한 ElapsedMs 이중 호출을 없앴다.

프론트엔드 파트

그룹 상세의 관리 환경·자산 상태를 값별 대수로 보이고, 누르면 그 노드만 걸러 보게 했다. 그룹 상세를 주소에 올려 뒤로가기가 한 단계씩 나오게 하고, 카드형·리스트형 보기를 기억하도록(기본 리스트형) 바꿨다. 우클릭 메뉴가 화면 밖에서 잘리던 것을 고치고 GPU를 외장 N대로 표기했다.

미사용 CSS와 옛 시안 HTML, 위젯 지도, 세션 인수인계 문서를 걷어내 1만4천여 줄을 지웠다.

분석 서비스 파트

이상동작 노드 탐지 진입 시 전체 요약(overview) 화면을 넣고, 자원 baseline 원인 밴드에 분석하기 UI와 증상·프로세스 상세 창을 붙였다. 히트맵 원인을 2단으로 펼치고 정상 셀도 눌러 볼 수 있게 했으며, 원인 패널의 추정성 문구를 빼고 동시 발생 사실만 표기했다.

서버 쪽에서는 증상·프로세스 상세와 조직 확산도를 반환하는 상세 조회 API를 만들고, 분석하기가 부르는 심층 차분 분석을 더했다. 미사용 /series 엔드포인트를 걷어내고 원인 분석 결과에 unique 인덱스(v0053)를 두었다. 에이전트 업로드 파일 상한은 5GB 이하에서 16GB로 올렸다(v0054).

서버 백엔드 파트

네트워크 구역 자동 찾기가 대역과 공유기 코드, 서버 겹침 규칙으로 저장 전에 잘못된 구역을 막고, 등록 대상은 운영자가 고르게 했다. 구역 소속 판정에서 확실 소속이 co-location과 공인 확실을 빠뜨리던 것을 고치고, 좁은 zone의 판정을 공유기 MAC 충돌 백스톱으로 못박는 회귀 테스트를 붙였다.

인증 응답이 유실됐을 때 VM 노드가 새 문서로 분열하던 것을 ticketb 대조로 복원하고 stale ticket 되쓰기를 차단해 막았다. coturn peer 필터에서는 v4-mapped IPv6와 멀티캐스트 우회를 차단했다.

매니저·에이전트 파트

덤프 분석기가 Microsoft 심볼 서버 없이도 커널 덤프의 크래시 프로세스 이름을 읽고, 0xEF 원인을 죽은 프로세스(버그체크 첫 인수)로 짚게 했다. combase 빌드별 ServerCall vtable 표를 내장해 심볼 없이 COM/RPC 호스트 크래시의 유발자 PID를 읽고, 다른 PC 커널 덤프 분석 시간을 줄였다. 분석 결과 창은 탭으로 나누고 출력 칸을 CMD처럼 검은 바탕에 뜻별 색으로 바꿨으며, 버그체크 국문 표와 경우별 심층 분석을 더했다.

에이전트 브라우저 화면에 접속 시험·원인 점검·조치를 담은 인터넷 연결 진단을 넣고, 크롬·엣지 자동 업데이트를 읽고 끄고 켜는 명령과 기본 브라우저 설정 띄우기를 붙였다. 권장 사양에는 CPU·메모리(페이지)·디스크 대기의 합으로 정의한 부하 탭과 부하 TOP10을 새로 넣어, PC를 느리게 한 프로그램을 한 줄로 짚었다.

정팀장 쪽에서는 매니저에 서버 관제도와 점검 자료 판을 새로 만들었다. 관제 블럭마다 브라우저 창을 따로 띄우는 상세 팝업에 명령·에이전트 응답 전문·실패 이유·검색 내역·선택 근거·결론 되돌림 종류를 담았다. 증상 분석 지침 307개가 한 층에 섞여 블루스크린 코드 밖 지침이 묻히던 것을 블럭·책·목차·챕터 계층과 책 고르기로 다시 짰다.

대시보드를 띄운 뒤 종료하면 5초를 버티던 것을 이벤트 신호로 끝내고, offline 발행의 PUBACK을 기다리지 않아 MQTT 끊기가 지연되던 문제를 고쳤다. 커널(System)이 낸 입출력을 원인 프로그램으로 돌려주도록 에이전트·서버·매니저를 함께 손봤다.

개발 통계

  • 매니저·에이전트 파트: 바이너리 25파일 제외 / 룰·데이터 분석 파트: 바이너리 1파일 제외
  • 프론트엔드 파트의 삭제 라인 대부분은 미사용 CSS·HTML 정리