You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The issue is caused by the cursor not being explicitly closed before transaction commit/rollback. It worked in prior versions, but in v3.0 this sequence leads to leftover cursor pointers causing the error to be thrown.
P.S. Given the known details, I'm not sure it's the same issue as CORE3984.
Submitted by: @alexpotapchenko
Call sequence that demonstrates the issue:
isc_dsql_allocate_statement(status, &db, &st);
isc_start_transaction(status, &tr, 1, &db, 0, NULL);
isc_dsql_prepare(status, &tr, &st, 0, "select 1 from rdb$relations", 1, sqlda);
isc_dsql_execute(status, &tr, &st, 1, NULL);
while (isc_dsql_fetch(status, &st, 1, sqlda) == 0);
isc_commit_transaction(status, &tr);
isc_start_transaction(status, &tr, 1, &db, 0, NULL);
isc_dsql_free_statement(status, &st, DSQL_close);
-- here error is raised
isc_dsql_execute(status, &tr, &st, 1, NULL);
while (isc_dsql_fetch(status, &st, 1, sqlda) == 0);
isc_dsql_free_statement(status, &st, DSQL_drop);
isc_commit_transaction(status, &tr);
The issue is caused by the cursor not being explicitly closed before transaction commit/rollback. It worked in prior versions, but in v3.0 this sequence leads to leftover cursor pointers causing the error to be thrown.
P.S. Given the known details, I'm not sure it's the same issue as CORE3984.
Commits: adef722 FirebirdSQL/fbt-repository@96f7c0c
The text was updated successfully, but these errors were encountered: