data not visible after commit!!!


Recently i've posted a very strange case in this newsgroup referring to
some problems i experience when inserting large amounts of data from a
ib-client running on linux to an ib-database (also running on linux).
I've tried to make the error reproducable, here are the results:

I'm using an IB6 Super Server Database running on a linux machine (M1).
The size of the database is around 1 GB.
There's a second linux machine (M2) with the ib-client installed.

There's a table test in the database with one field defined as

There are 2 users defined on the database, one who created the table
(let's say 'zzz'), and another one who is granted access to this table
(GRANT ALL ON table TO xxx;)

On M2 a sql-script is started containing about 16000 inserts to this
table, the inserted value is about 2500 characters long. After inserting
these 16000 lines they are commited immediately.

        this is how the data are inserted:
        /opt/interbase/bin/isql M1://service/interbase/databases/db.gdb -user
xxx -passowrd yyy -i ins.sql

After the insert script is finished (I've tested running it as user xxx
and also as user zzz) i check via sql sessions on M1 and M2 if the data
are visible (which they should be of course!!).

There ARE cases when the data are not visible in isql! There are cases
when one isql-session running on M1 sees 0 records, whereas the other
isql-session running on M2 sees all 16000! One time it even happened
that after checking upon the inserted data on M1 which showed 0 records
on the table, after restarting isql on M2 there were also only 0 records
on the table, apart from the fact that in another isql session on M2 it
showed 16000 records and no deletion had taken place. I want to say that
i'm aware of the transaction concepts of IB, and i know that isql runs
in snapshot isolation level.

The behaviour somehow seems dependent on the fact which user i'm using
for inserting, and if i query upon the table after insert (i.e appending
a SELECT COUNT(*) at the end of the insert script).

This is all completely strange and rather frustrating as this behaviour
seems not to be predictable to me nor is there any explanation. Maybe
there's somebody out there who is willing to do some tests similar to
mine? Or is there any bug i don't know of? Maybe i've found a new one?

Any input is welcome,