Hello, In implimenting a unique_id fix, in several issues in the past, and in message insertion in general, it seems appropriate to have a message status that basically just means 'not yet processed/complete,' for which I propose using message status = 4 (which isn't used anywhere, right?). I believe all the existing code should handle that without change (ie. if status is 4, it won't show in any mailboxes, get cleaned by maintenance, etc.), so there should be no migration problems unless someone uses status 4 locally (which a trivial db update can fix).
This would make things like the "message inserted, but not yet filtered" race condition Aaron was going to have to address a while back easy - just insert all messages with status = 4, do whatever processing, and update to 2 when the message is fully processed. It would fix a race condition in the current insertion code where a message actually changes unique_id and another where the messages table entry exists, but messageblk entries do not yet (ie. if messages entry was inserted, then a user checks POP3 before messageblk is inserted, it'll hang OE waiting for data, till a timeout period, then error). Sound good / any objections (particularly from IC&S)? Jesse -- Jesse Norell jesse (at) kci.net
