[bdbxml] DbWrapper Error and Subsequent Database Failure

"Mason, Mark L." <[email protected]>
Newsgroups gmane.comp.db.dbxml.general
Message-ID <97E02A05E253E74B826FDEFF342AED8E7D9742@txsa01-mail01.ad.gd-ais.com>
Hello,

 

I am running DbXml v2.1.4 on a Fedora Core 3 O.S. x86 machine.

 

I have built two wrapper classes around the v2.1.4 C++ API.  The base
class opens/configures the environment, calls up the manager,
opens/configures the container, loads the container with the root node,
sets global pointers to XmlQueryContext and XmlUpdateContext objects
that the XmlManager brings into existence, etc...  All this is done in
sequence within the blank constructor of the base class.  And the
destructor cleans up the global pointers created in the constructor.

 

The second class handles the "SQL" transactions with the container.
Other applications instantiate these two classes to query the database.

 

While experimenting, I ran a script that started and stopped a certain
application multiple times.  The start/stop trials, in turn, constructed
and destroyed the DbXml objects associated with the two wrapper classes
multiple times.  On the nth (n >= 20) start/stop, the application hangs,
and the following error is generated "under the hood":

 

<application_name>: DbWrapper.cpp:46: virtual
DbXml::DbWrapper::~DbWrapper(): Assertion '0' failed.

 

On subsequent trials, the application hangs again, while the following
error message is generated:

 

Message: PANIC: fatal region error detected; run recovery

 

And later still, the application hangs again, and the following error
message is generated:

 

In DbException. Error with XmlManager.prepare():
Db::cursor:DB_RUNCRECOVERY: Fatal Error, run database recovery

 

By this time, the application is hanging every time.

 

I verified the code deletes all its globals and closes the database
environment when the destructor is called.  However, for some reason,
after multiple times (>20) the database starts crashing.  This is a real
show stopper.  Can you help?  I can send on some code snippets, if
necessary.

 

Thanks,

 

Mark Mason

Senior Software Engineer

General Dynamics

Advanced Information Systems

210-442-4347
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.