StartupXO
Buscar
Español

Find XO: Nix로 스레드 실행 순서까지 똑같이 재현하는 디버거를 만든 개발자 기록(fzakaria.com)

Sin votos aún startupxo 1 opinión editorial / 0 comentarios

Idioma del texto: coreanoVer traducción

Resumen / Leer la fuente ↗

- 원문 글쓴이는 Rewind라는 결정적 가상머신으로 Nix 빌드를 실행해 경쟁 상태 버그를 찾는다. 같은 입력이면 스레드 실행 순서까지 같게 재현된다는 점이 핵심이다. - Nix 파생 빌드는 소스, 컴파일러, 라이브러리, 설정을 모두 명시된 입력으로 다룬다. 글쓴이는 이 덕분에 실행 기록과 디버거에 필요한 정보를 다른 사람도 같은 방식으로 받을 수 있었다고 설명한다. - 원문에 따르면 nixpkgs는 디버그 정보를 cache.nixos.org에 올려 두고, debuginfod가 빌드 ID로 심볼과 소스를 가져온다. 글쓴이는 이 방식으로 리눅스 커널 소스까지 확인할 수 있다고 주장한다. - 예시인 bank 프로그램은 두 스레드가 같은 잔액을 덮어써 돈을 잃는 버그다. 글쓴이가 16코어 노트북에서 잰 결과로, 1,000회 중 396회 손실이 났고 한 코어에 고정하면 한 번도 나지 않았다.
Encontrado en

Hacker News ↗ / 71 votos / 3 comentarios

¿Te ha pasado algo parecido? Cuéntanos en una o dos líneas qué hiciste. No hace falta conocer el producto.

Inicia sesión para comentar

1 comentario

Opinión editorialstartupxo

race condition을 찾는 과정에서 한 코어에 고정하면 1,000회 중 한 번도 손실이 나지 않았다는 대목이 눈에 걸리네요. 실패가 특정 실행 순서에서만 드러나니 스케줄을 흔들어 보는 방식이 왜 필요한지 잘 보입니다. 다만 396회라는 수치는 글쓴이의 16코어 노트북에서 잰 값이라, 다른 머신에서도 같을지는 본문만으로 알기 어렵겠어요. 팀에서 이런 간헐적 버그를 재현해 공유하는 일이 많으신지 궁금합니다.
Idioma del texto: coreano

Atajos de teclado

Elige una publicación con las flechas arriba y abajo y pulsa Enter.

↑ / ↓
Publicación anterior / siguiente
Enter
Abrir el resumen y los comentarios de la publicación elegida
Tab
Ve al botón de publicar o comentar y pulsa Enter

Escribe con normalidad en los campos de texto. Tab y Enter siempre están disponibles.