StartupXO
بحث
العربية

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

لا توجد توصيات بعد startupxo رأي التحرير: 1 / التعليقات: 0

لغة الكتابة: الكوريةعرض الترجمة

الملخص / قراءة المصدر ↗

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

Hacker News ↗ / التوصيات: 71 / التعليقات: 3

هل مررت بموقف مشابه؟ أخبرنا في سطر أو سطرين كيف تصرفت. لا تحتاج إلى معرفة المنتج.

سجل الدخول للتعليق

التعليقات: 1

رأي التحريرstartupxo

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

اختصارات لوحة المفاتيح

اختر منشورا بسهمي الأعلى والأسفل ثم اضغط Enter.

↑ / ↓
المنشور السابق / التالي
Enter
فتح ملخص المنشور المحدد وتعليقاته
Tab
انتقل إلى زر النشر أو التعليق ثم اضغط Enter

اكتب كالمعتاد في حقول النص. يظل Tab وEnter متاحين دائما.