Subject Re: [IBO] Re: Random Lockup
Author Geoff Worboys
> I am beginning to wonder if the problem may be the server
> end - one site is on linux and another on windows which is
> why I ignored that originally - but I am now wondering if
> it is something on the connection that is 'freezing'. I would
> have expected IBO to time out though - rather than lock up.
> If I kill the process and restart it everything comes back
> to life and just works.

There is a problem in Firebird v1.5 (which I still use on some
sites) where a connection would freeze. The problem occurred
while I had two connections active to the same server at the
same time - in particular my DBak program would often freeze
while trying to transfer data from a table in one database to
an equivalent table in another database on the same server.

The problem would happen more often on tables with very few
blob fields (what should have been faster transfers). The
problem only ever happened on multi-CPU systems. The problem
used to be very rare because there were very few multi-CPU
systems, but it has gotten worse over time - now, with my quad-
core system, DBak can be unusable. The very simple work-around
in this case was to move from SuperServer to Classic. (I had
avoided classic because it is harder to manage: issues with
orphaned server processes in FB v1.5.)

With this particular problem it was possible to "wake-up" the
frozen connection by establishing a separate connection to the
server and doing something (anything) on that separate
connection (and do it again whenever the problem connection
froze up). It seemed that it just needed something to break
some sort of deadlock on the server.

As I understand it Nikolay found and fixed the problem for FB
v2.x but it was not practical to back-port to v1.5. (Not a
complaint, just a note/observation.)


Since you are using FB v2.1 I presume it is not the same
problem... but the symptoms you described were similar enough
to make me think of this problem, so two suggestions:

. see if a separate process/connection doing something, to
the same server as the frozen process, will do anything
to wake-up frozen connection.

. see if switching between SuperServer and Classic makes
any difference.


If you can interrogate the server from another process you may
also want to see if the MON$ tables can tell you anything about
what the frozen process is/was doing when it died.


Mostly my clients are pretty conservative about versions of
Windows etc, so while I cannot say I have observed any problems
due to Windows Update... that does not mean much in this case.
(Lots of thin clients talking to terminal servers etc.)

--
Geoff Worboys
Telesis Computing