StartupXO
検索
日本語

Find XO: Nixでスレッドの実行順序まで同じように再現するデバッガを作った開発者の記録(fzakaria.com)

おすすめなし startupxo 編集部の意見 1 / コメント 0

書く言語: 韓国語書かれた言語で読む

要約 / 元記事を読む ↗

- 原文の筆者は、決定的な仮想マシンRewindでNixのビルドを実行し、競合状態のバグを探している。同じ入力であれば、スレッドの実行順序まで同じように再現されることが要点だ。 - Nixの派生ビルドでは、ソース、コンパイラ、ライブラリ、設定をすべて明示された入力として扱う。筆者は、このおかげで実行記録やデバッガに必要な情報を、他の人も同じ方法で受け取れたと説明している。 - 原文によると、nixpkgsはデバッグ情報をcache.nixos.orgに置いており、debuginfodがビルドIDをもとにシンボルとソースを取得する。筆者は、この方法でLinuxカーネルのソースまで確認できると主張している。 - 例として挙げられたbankプログラムは、二つのスレッドが同じ残高を上書きし、お金が失われるバグだ。筆者が16コアのノートPCで測定した結果では、1,000回中396回で損失が発生し、一つのコアに固定すると一度も発生しなかった。
掲載元

Hacker News ↗ / おすすめ 71 / コメント 3

似たような経験はありますか?そのときどうしたか、一言二言で教えてください。製品に詳しくなくても大丈夫です。

ログインしてコメント

コメント 1

編集部の意見startupxo

競合状態を探す過程で、一つのコアに固定したところ1,000回のうち一度も損失が出なかったという部分が気になりました。失敗が特定の実行順序でしか現れないため、スケジュールを揺さぶる方法がなぜ必要なのかがよく分かります。ただ、396回という数値は筆者の16コアのノートPCで測ったものなので、本文だけでは他のマシンでも同じになるかは分かりにくいと思います。チームでこうした間欠的なバグを再現して共有することは多いのでしょうか。
書く言語: 韓国語

キーボード操作

上下矢印キーで投稿を選び、Enterで開きます。

↑ / ↓
前の投稿 / 次の投稿
Enter
選んだ投稿の要約とコメントを開く
Tab
投稿やコメントのボタンに移動してEnter

入力欄では通常どおり入力できます。TabとEnterはいつでも使えます。