デッドロック - CI/CD用語集の定義
デッドロックは、スレッドが互いの lock を待ち合い、どれも進行できない恒久的なハングです。
デッドロック は、2 つ以上のスレッドがそれぞれ相手が保持するリソースを待つことで発生し、どれも進行できずプログラムが無期限にハングします。それは並行コードの故障モードです。
デッドロックは、2 つ以上のスレッドがそれぞれ相手が保持するリソースを待つことで発生し、どれも進行できずプログラムが無期限にハングします。それは並行コードの故障モードです。
CI において
デッドロックしたテストは失敗せずハングするため、job のタイムアウトが kill するまで runner の時間を消費します。テストごとまたは job ごとにタイムアウトを設定し、デッドロックが長い停滞ではなく、速く明確な失敗を生むようにしてください。
関連ガイド
Race Condition - CI/CD Glossary DefinitionRace Condition: A race condition is a bug where the outcome depends on the unpredictable timing of concurrent…
Thread Safety - CI/CD Glossary DefinitionThread Safety: Thread safety is the property of code that behaves correctly when accessed by multiple threads…
Concurrency - CI/CD Glossary DefinitionConcurrency: Concurrency is structuring a program so multiple tasks make progress over overlapping time perio…