my understanding of sqlite is that there are multiple shared locks for reading -- the only time you shouldn't be able to select would be if there was a write in progress

that itself is an issue - but for most mailserver operations, I can't imagine much writing done aside from account creation or management

maybe there needs to be a way to try X times with Y amount of time between each attempt before a true failure is returned



On Aug 4, 2005, at 1:05 PM, Kelley Reynolds wrote:

I think what Wild means is that the database gets locked during a transaction so that if you were to execute a query during this locked period, it wouldn't get executed, but instead say 'Hey, the database is locked'. I've used sqlite with ${run} before and the command-line version will say 'database is locked' then exit without executing a query. Probably what is required is to retry a certain number of times or somehow queue the queries such that if the database is locked (it's a single file, btw), it will wait until it's not locked anymore (which is what I did with a wrapper script)

I've not looked at the exim code in question, so I couldn't say whether or not it handles this locking condition properly. It might return 'fail' for instance.


--
## List details at http://www.exim.org/mailman/listinfo/exim-users ## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/

Reply via email to