Hi,

I'm writing because I'm wondering if people out there have had problems
with the 4.6 version of Berkeley DB in ports, and I'm wondering if I'm
the only one.  The reason is this.  I'm the author of a DNS server that
uses Berkeley DB as a backend and I've stumbled on some database
weirdness a few months ago.  In particular the query function seems to
have stuck after some usage whereas the AXFR function which is on the
same descriptor is not stuck.  What I've done is I've pulled my DNS
server away from answering queries and it does only AXFR as a hidden
master, but I do plan on bringing it back some day.  I don't have any
old core files currently with me so this report is based only on my
memory.  When I gdb'ed a stuck process by attaching gdb to it I noticed
that the query engine was in berkeley db and probably not returning
possibly a dead-lock situation.

The way I use berkeley db is across several forked childs, there is a
child that does solely AXFR (using a cursor on the db and walking the
zones)  and there is a child that does queries to port 53.  Since the
database was opened before the fork() the descriptor is shared among the
childs.  I always saw this as no problem in terms of how the program was
designed.

Has anyone else seen possible dead-locks in berkeley db 4.6 as provided
by the OpenBSD ports?  If not there is a chance it's my program meaning
I'll never figure out what is causing this because I have planned on
replacing berkeley db altogether, however if it's a known bug it would
save me the effort next year.  The DNS server was built with OpenBSD as
the development machine and is now also running in a strict OpenBSD
environment on my VPS's.

Thanks in advance for your sharing,

-peter

Reply via email to