著者: Jonathan Vanasco 日付: To: Kelley Reynolds CC: Exim Mailing List 題目: Re: [exim] exim snapshot with sqlite on openbsd ...
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.