-=| Dmitry Yemanov, 14.11.2011 23:42:53 +0400 |=- > 14.11.2011 23:15, Damyan Ivanov wrote: > > > # session 1 > > $ FIREBIRD=. FIREBIRD_LOCK=. isql-fb dbd-firebird-test.fdb > > Database: dbd-firebird-test.fdb > > SQL> > > > > # session 2, from another terminal, running in the same working > > # directory > > FIREBIRD=. FIREBIRD_LOCK=. isql-fb dbd-firebird-test.fdb > > # hangs > > Do both terminals run with the same Linux user credentials?
Yes. The same setup works on several other architectures. > Is there anything interesting in firebird.log? There is no firebird.log file in the current directory. Perhaps I missed an additional environment variable that needs to be set for embedded (the system-wide firebird log directory is not writable by the user). > > Attaching gdb to the second session's isql and requesting a backtrace > > gives the following: > > The second connection waits for the first one to downgrade its database > lock, but its request gets ignored. > > A lock print output (with the -a switch) could be useful here. Here it is. This is after (1) creating the database in the first session and (2) attempting to attach to the freshly created database in another session (same user, hanging). $ FIREBIRD=. FIREBIRD_LOCK=. /usr/sbin/fb_lock_print -d test.fdb LOCK_HEADER BLOCK Version: 17, Active owner: 0, Length: 1048576, Used: 23896 Flags: 0x0001 Enqs: 79, Converts: 13, Rejects: 56, Blocks: 0 Deadlock scans: 0, Deadlocks: 0, Scan interval: 10 Acquires: 237, Acquire blocks: 0, Spin count: 0 Mutex wait: 0.0% Hash slots: 1009, Hash lengths (min/avg/max): 0/ 0/ 3 Remove node: 0, Insert queue: 0, Insert prior: 0 Owners (2): forward: 20872, backward: 23672 Free owners: *empty* Free locks: *empty* Free requests: *empty* Lock Ordering: Enabled OWNER BLOCK 20872 Owner id: 73448235728900, type: 1, pending: 0 Process id: 17101 (Alive), thread id: 1073877248 Flags: 0x10 sgnl Requests (21): forward: 21040, backward: 23440 Blocks (1): forward: 21040, backward: 21040 OWNER BLOCK 23672 Owner id: 73761768341505, type: 1, pending: 23840 Process id: 17174 (Alive), thread id: 1073877248 Flags: 0x24 wait tout Requests (1): forward: 23840, backward: 23840 Blocks: *empty* Event log: ------------- end of output --------------- If at this point the first isql is exited, it hangs and the lock table dump is: LOCK_HEADER BLOCK Version: 17, Active owner: 0, Length: 1048576, Used: 27144 Flags: 0x0001 Enqs: 531, Converts: 16, Rejects: 450, Blocks: 0 Deadlock scans: 0, Deadlocks: 0, Scan interval: 10 Acquires: 1521, Acquire blocks: 1, Spin count: 0 Mutex wait: 0.1% Hash slots: 1009, Hash lengths (min/avg/max): 0/ 0/ 3 Remove node: 0, Insert queue: 0, Insert prior: 0 Owners (1): forward: 23672, backward: 23672 Free owners (1): forward: 20872, backward: 20872 Free locks (2): forward: 21224, backward: 26840 Free requests (1): forward: 26784, backward: 26784 Lock Ordering: Enabled OWNER BLOCK 23672 Owner id: 73761768341505, type: 1, pending: 0 Process id: 17174 (Alive), thread id: 1073877248 Flags: 0x08 wake Requests (47): forward: 23840, backward: 27024 Blocks: *empty* Event log: DEL_OWNER: owner = 20872, lock = 20872, request = 0 ------------- end of output --------------- Hopefully this gives some clues. ------------------------------------------------------------------------------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel