oleksandr kalinin
2007-01-30 11:35:45 UTC
Hello All,
I've run into a lockout scenario (that is when even db_stat and
db_deadlock utilities hang). DB recovery works fine. However, since
the setup is quite simple and it has been running fine for years now,
I am very surprised about the sudden lockout and would like to find
the root cause of it. I have the copy of 'broken' DB environment
files.
Is there any way to find out what exactly is causing the lockout, if
there is a lock that has not been released, what process has obtained
it, etc? Is that possible to do some 'basic' manual analysis of
BerkeleyDB environment files on my own in case db_stat is unusable,
using BerkeleyDB API?
In my setup, there is one multithreaded program with two threads of
control using BerkeleyDB (exclusive 'get' calls, i.e. read-only) and a
command line utility for updating the table at specific time once a
day. Lockout did happen two times already, at random time, in the
middle of normal functioning of the whole system, and I could not find
any common pattern or correlation on what could have caused these
errors.
Environment is opened with DB_INIT_CDB | DB_INIT_MPOOL | DB_CREATE
flags;
Daemon 'reading only' program opens tables with following flag :
DB_RDONLY
Tables update program table open flags : DB_CREATE
Many thanks in advance for your hints,
Regards,
Oleksandr
I've run into a lockout scenario (that is when even db_stat and
db_deadlock utilities hang). DB recovery works fine. However, since
the setup is quite simple and it has been running fine for years now,
I am very surprised about the sudden lockout and would like to find
the root cause of it. I have the copy of 'broken' DB environment
files.
Is there any way to find out what exactly is causing the lockout, if
there is a lock that has not been released, what process has obtained
it, etc? Is that possible to do some 'basic' manual analysis of
BerkeleyDB environment files on my own in case db_stat is unusable,
using BerkeleyDB API?
In my setup, there is one multithreaded program with two threads of
control using BerkeleyDB (exclusive 'get' calls, i.e. read-only) and a
command line utility for updating the table at specific time once a
day. Lockout did happen two times already, at random time, in the
middle of normal functioning of the whole system, and I could not find
any common pattern or correlation on what could have caused these
errors.
Environment is opened with DB_INIT_CDB | DB_INIT_MPOOL | DB_CREATE
flags;
Daemon 'reading only' program opens tables with following flag :
DB_RDONLY
Tables update program table open flags : DB_CREATE
Many thanks in advance for your hints,
Regards,
Oleksandr