Race condition’lar ve TOCTOU: zamanlama zayıflığa dönüştüğünde
Kısaca: Sonuç paralel süreçlerin rastgele zamanlamasına bağlı olduğunda bir race condition oluşur; önce denetle sonra kullan (TOCTOU) durumunda durum arada değişebilir, örn. kuponlarda, havalelerde veya dosyalarda.
Biraz daha ayrıntılı: İki istek aynı veriyi aynı anda okuyup değiştirdiğinde sonuç yanlış olabilir. Bu bir eşzamanlılık hatasıdır ve kuralları baltalıyorsa (kupon iki kez kullanıldı, çift ödeme) aynı zamanda bir güvenlik açığıdır.
Ayrıntılı
Örnek: kupon kullanmak
İstek A: kuponu okur (kullanılmamış) İstek B: kuponu okur (kullanılmamış)
İstek A: kullanıldı olarak işaretler İstek B: kullanıldı olarak işaretlerİkisi de başarılı olur. Çözüm: atomik işlemler, veritabanı kilitleri ve işlemler.
Ayrıca bak: Veritabanı işlemleri ve ACID, Mutex, Deadlock, Hız sınırlama