Message19377
Logged In: YES
user_id=250749
I can sympathise with your POV, but shelve has a
documented restriction that it is not supported for multiuser
user use without specific external support - that is multiple
readers are Ok, but writing requires exclusive access to the
shelve database.
As you are using it in such an environment, it is up to you to
guarantee the required safety. The error being reported is
highly likely to be a consequence of your locking scheme
being inadequate for use with the BerkeleyDB environment, at
least on that system, and my suggestion that you take this
up in a BerkeleyDB forum was directed at you getting
sufficient information to improve your locking scheme to avoid
the problem you see.
I think you are a little optimistic expecting the shelve module
(let alone the anydbm module) to cope with exceptions arising
from use outside its documented restrictions - and BerkeleyDB
supports lots of capability beyond the scope of the
functionality used by shelve and anydbm and the exceptions
to go with that.
If you care about the shelve storage format, you can force
the type of storage by creating an empty database of the
format of your choice, provided that that format is supported
by anydbm. With a bit of care, you should be able to convert
a shelve from one format to another, within the anydbm
format support restriction.
While it might be nice to have some format control, anydbm's
purpose is hide the database format/interface. If you care
about the format, you're expected to use the desired
interface module directly. |
|
Date |
User |
Action |
Args |
2007-08-23 14:18:52 | admin | link | issue857909 messages |
2007-08-23 14:18:52 | admin | create | |
|