Hi Nigel,
thanks for your answer.

Il giorno 13/giu/2012, alle ore 11:55, Nigel Kukard ha scritto:

AFAIK, possibility n.1 could lead to a race condition on the db: each policyd 
daemon could overwrite results previously written by others about the current 
cumulative size of mail submitted by a user. Am I right?

As far as I recall this *could* affect only an insert, not an update. The 
chances are you'll get a mail from the same sender, to the same recipient from 
the same IP both at the exact instant on 2 servers is rather remotely. One 
instance may generate a DEFER due to a DB insert error.

That's true, but since we're using quota matching on single sals users, the 
quotas_tracking table could get read and subsequently updated by 2 mtas 
independently, leading to possible miscalculations of LastUpdate and Counter 
fields.

Example:
mta1: select from quotas_tracking
mta2: select from quotas_tracking
mta1: Counter += size
mta2: Counter += size
mta1: update quotas_tracking
mta2: update quotas_tracking

Result: Counter value is overwritten by the last update from mta2; size of 
message from mta1 is lost.

Is this scenario possibile?

Thanks again,
Fabio
_______________________________________________
Users mailing list
[email protected]
http://lists.policyd.org/mailman/listinfo/users

Reply via email to