Subject kinterbasdb hangs on db.cursor()
Author Dave Benjamin
Hey folks,

I sent the following message to the maintainer of kinterbasdb, the Python
library for interbase/firebird. I'm still having this problem, and I've
investigated it further. It seems like after one minute of inactivity my
connection gets frozen. I've tried changing the setting of the "dummy
packet" parameter but it doesn't seem to have any effect. It's not just
db.cursor() that hangs, but also db.begin() and db.close(). It's got to be
some sort of inactivity timer, but I can't figure out how to fix this
problem. It's only a delay; no errors or anything.

Does anyone know what might be causing this? I'm trying to work around it
with my database API, but I'd really like to get to the bottom of this,
because I can't even close an inactive database connection without a
significant delay.

Thanks,
Dave

---------- Forwarded message ----------
Date: Thu, 1 May 2003 12:28:10 -0700 (PDT)
From: Dave Benjamin <ramen@...>
To: woodsplitter@...
Subject: kinterbasdb hangs on db.cursor()

Dear David,

I am trying to use your kinterbasdb module in a server environment. I've
used it before and had no problems at all, but this time the environment
is a little different and I'm running into a weird problem.

When I call db.cursor() immediately after connecting, it returns a cursor
immediately. However, if I wait a few minutes and call it again, it takes
upwards of 30 seconds to return. Any idea what might be causing this?

- debian gnu/linux (stable + the following packages from unstable)
- python 2.2.2
- kinterbasdb 3.0.1
- libfirebird-c64 1.0.2
- firebird 1.5 rc1 classic server (alien converted .rpm->.deb)

I have been able to connect to the Firebird server remotely using Database
Workbench and other tools with no problems, even over a long period of
time.

Might there be an issue due to using the firebird 1.0.2 libraries to
connect to firebird 1.5? I want to use Debian packages as much as
possible, but Debian's firebird is still 1.0.2, so that's why I am using a
converted RPM for the server itself.

Here's my inetd.conf line:
gds_db stream tcp nowait.30000 firebird.firebird /usr/local/firebird/bin/fb_inet_server fb_inet_server

Thanks, and feel free to share this post and your reply in any appropriate
public forum. I appreciate the work you've done with this module very
much.

Take care,
Dave