マルチプロセスプログラムにバグがあります。プログラムは入力を受け取り、即座に出力を生成します。ネットワークは関与せず、時間参照もありません。このバグの原因を突き止めるのが難しいのは、たまにしか起こらないということです。
常に実行すると、正しい出力と誤った出力の両方が生成され、識別可能な順序やパターンはありません。
何がそのような非決定論的な振る舞いを引き起こす可能性がありますか?役立つツールはありますか?初期化されていない変数が使用されている可能性があります。どうすればそれらを見つけることができますか?
編集:問題は解決しました 。競合状態を提案してくれた人に感謝します。私のデザインがこれを防ぐと確信していたので、私はそれを考えませんでした。問題は、「waitpid」の代わりに「wait」を使用したことでした。そのため、あるプロセスが幸運にも期待していたプロセスよりも前に終了した場合、正しい順序が乱れることがありました。