Subject RE: [firebird-support] Global Temp Table Question - pointer page vanished error
Author Alan McDonald
> >I have an FB2.1.3
> >
> > CREATE GLOBAL TEMPORARY TABLE CCIMPORTRAW (
> > ID PKID NOT NULL /* PKID =3D INTEGER DEFAULT 0 NOT NULL
> */,
> > ... other fields
> > ) ON COMMIT DELETE ROWS;
> >
> > The DB is on a web which has it's own authentication method (a user
> table in
> > the DB) so it uses a single user in FB to make connections.
> >
> > When 2 people (the same user as far as FB is concerned) make a
> submission to
> > this table at exactly the same moment, the server crashes with this
> error.
> >
> > internal gds software consistency check (pointer page vanished from
> > relation list in locate_space (254), file: dpm.cpp line: 3060)
>
> Are they shared the same Firebird attachment ?

I think I said that, or meant it - single website, using ODBC driver, each
website connection is using the same credentials (ODBC) so from FB POV it's
the same user, but it is also lilkely to be the same connection if ODBC
driver pools from IIS. Is there a way for me to determine if it's the exact
same connection?

>
> > I'm using the current ODBC driver for connection.
> >
> > I know I am "abusing" the temp table in this scenario
>
> Not sure i understand you here. But Firebird should never throw
> that bugcheck
> in any case.

Well as I read the info on these tables, it is the same connection which
creates the entry into the table. I was expecting that if 2 people made
these submissions (in my setup), I might see intermingled entries in my
treatment of the table rows but this error precludes this outcome. In fact
the situation where these 2 operations happen at the exact same instant is
extremely unlikely but I managed to hit it at the exact same time. If you
miss-cue the submission by a fraction of a second it doesn't hit this error.
It's all done in a single page submission and the trans commit from trans
start is maybe less than a second.

>
> > but I just wonder
> > if there might be a suggested workaround to make this work OK.
> Perhaps
> > another field and combined PK instead of this single integer field?
> Any
> > ideas before I start testing? Or maybe tell me I'm wasting my time?
> It could
> > be an artifact of the driver connection pooling...?
>
> I would like to reproduce and fix this bug.
>
> Regards,
> Vlad

I'll see what I can do here. Not sure though whether to try to make a
website test for you or some other way. Can you suggest a way to
demeonstrate it?
Alan