Firebird News

Saturday, October 11, 2008

Testing Firebird 2.1 on Debian experimental

Testing Firebird 2.1 on Debian experimental

Update: There is now Firebird 2.5 final in experimental
also if you want 2.1 is already in testing and unstable (no need for experimental repository)

Here is my sources.list
cat /etc/apt/sources.list

deb unstable main
deb-src unstable main


deb experimental main
deb-src experimental main

# apt-get update -t experimental
# apt-get install -t experimental firebird2.1-classic
or install super-server
# apt-get install -t experimental firebird2.1-classic
Install examples and flamerobin
apt-get install -t experimental firebird2.1-examples flamerobin

follow the examples extaction procedure from this page [Scrooll down and ignore the apt sources.list lines]

With firebird2.1-classic i have this error when i try to connect to employee.fdb

Engine Code : 335544653
Engine Message :
cannot attach to password database

This is a caveat with classic server and not a bug in Flamerobin.

This is the recipe to reproduce it:
* install Debian classic-server package
* (before anything else) connect to any database using a direct path
to the database, not server:/path/to/db using any program linked
with libfbembed, for example the firebird-supplied tools (sql,
gfix etc)
- this starts the lock manager as the currently running user
(let's name it 'X', which most probably is *not* 'firebird')
* try to connect to any database either using the server:/path/to/db
connection string, or using an utility that is linked with
libfbclient (which preepends localhost: on raw connection
strings), for example flamerobin
- you can't as that utility would connect via the fb_inet_server,
which runs as user 'firebird' by default and cannot open the
lock files created by the user 'X'.

To avoid this

* always use localhost: in front of any paths. this way the lock
files and the shared memory segment will be owned by the
'firebird' user.

1 comment:

petrescs said...

Got into something similar w/ 2.1 classic on ubuntu Intrepid.
Was able to workaround it by chown-ing isc_init1.* and isc_lock1.* to firebird:firebird in /var/run/firebird/2.1 (originally they were owned by root). Then I have restarted inetd and it worked just fine attaching remotely using flamerobin.