[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: BadRSlotError: mdb_txn_begin: MDB_BAD_RSLOT: Invalid reuse of reader locktable slot
- To: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
- Subject: Re: BadRSlotError: mdb_txn_begin: MDB_BAD_RSLOT: Invalid reuse of reader locktable slot
- From: Howard Chu <hyc@symas.com>
- Date: Thu, 11 Sep 2014 12:01:55 +0100
- Cc: "OpenLDAP-devel@openldap.org" <OpenLDAP-devel@openldap.org>
- In-reply-to: <CAPweEDy7EOPzmBc=p5osT24UyZ04fbXz6HCBX0K=oJkq1+fKZQ@mail.gmail.com>
- References: <CAPweEDypPFUQCeNX97RfxpR0LqFPk5ixB5uN6herusm2=n74pA@mail.gmail.com> <CAPweEDxkpA0Y-9MH=EgzuD1YqTSeV==RKARvo8rPsfQpX6+q6g@mail.gmail.com> <54116D66.8060509@symas.com> <CAPweEDx7LU3f9h530s95iKMLcjo4sNpBE2wX4XrZh9n2upt3fg@mail.gmail.com> <54117A17.70501@symas.com> <CAPweEDy7EOPzmBc=p5osT24UyZ04fbXz6HCBX0K=oJkq1+fKZQ@mail.gmail.com>
- User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0 SeaMonkey/2.27a1
Luke Kenneth Casson Leighton wrote:
garbage collection occurs periodically, at any time the interpreter
feels like it
(afaik). so, the scenario under consideration is therefore that a
cursor gets closed
at random points, well after its txn has been closed.
however if the c api is reflected in the python layer then correspondingly the
cursor could not interfere with a txn.
the only other possibility under consideration is that the python
process has been
killed unexpectedly (kill -9) and has left the database in an abnormal state.
Not possible; the database structure is inherently incorruptible. kill -9
won't do anything to it.
looking at the application logs that i have available (qty one only
at the moment)
i do note that the application appears to have just undergone a restart...
You're talking about a database being accessed by only a single process; the
lock table is reinitialized whenever a process opens it and no other processes
already have it open. As such, no locktable elements from a previous crash
will ever affect the running process.
i'll have to have a closer look but would that be causing any problems (esp
with the arguments to speed up access such as sync=False etc.)
Nope. sync is irrelevant for application-level crashes, all the data goes into
the OS buffer cache regardless. sync=False will likely leave you a corrupted
database if the OS or hardware crashes, but not if the application process
crashes.
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/