15RACE CONDITIONS

Image

A race condition occurs when two processes race to complete based on an initial condition that becomes invalid while the processes are executing. A classic example is transferring money between bank accounts:

  1. You have $500 in your bank account, and you need to transfer the entire amount to a friend.
  2. Using your phone, you log into your banking app and request a transfer of $500 to your friend.
  3. After 10 seconds, the request is still processing. So you log into the banking site on your laptop, see that your balance is still $500, and request the transfer again.
  4. The laptop and mobile requests finish within a few seconds of each ...

Get Real-World Bug Hunting now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.