cyrusdb_flat and locking
Thomas Jarosch
thomas.jarosch at intra2net.com
Tue Jul 21 17:12:34 EDT 2015
Hi Bron,
the first rough version of the lock validator
is running and already has some interesting results:
The cyrus flat "db" backend doesn't do proper locking.
1. When it opens a file in myopen(), the file is not locked.
This is a common pattern in cyrus code and harmless.
myfetch() acquires an EXCLUSIVE lock when called with a tid pointer only.
Funnily the code mentions in multiple places it should release
the read-only lock and even calls lock_unlock().
No lock_shared() in the code at all.
2. When storing data, the xxx.NEW file is not locked.
Or did I miss anything?
I'll try to fix this and also introduce a db->locktype variable
to keep track of the current locking state if you don't mind.
Cheers,
Thomas
More information about the Cyrus-devel
mailing list