by SysKoll » Sun Sep 03, 2006 3:21 am
"Race condition". This is the perfect textbook example. You get two emails addressed to the same disposable. The two mail processes check the DB for this disposable's counter, which is 1. Normally, each process would then decrement the counter, but here, each was interrupted long enough so that the other could also check the counter.
Afterwards, both of them decrement the counter, which goes to -1.
We don't lock the DB to improve performance. So this stuff can theorically happen and just did.
-- SysKoll