Repeat Temporary Table access from ReadOnly Transaction and ReadWrite transaction causes Internal Firebird consistency check (cannot find record back version (291), file: vio.cpp line: 4905) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Key: CORE-3959 URL: http://tracker.firebirdsql.org/browse/CORE-3959 Project: Firebird Core Issue Type: Bug Components: Engine Affects Versions: 2.5.1 Environment: Windows 7 - 64bits - Server Version: WI-V2.5.2.26536 Firebird 2.5 32bits - Delphi 2007 with Fibplus Reporter: acacio2000 Attachments: Bug.rar This error occurs with Firebird 2.5.1 too !! I create an application with one database connection and two transactions transaction 1 (readonly) parameters: read nowait rec_version read_committed transaction 2 (readwrite) parameters: write nowait rec_version read_committed I have a Query Select from one Stored Procedure (FU_X1) access by transaction 1, this Stored Procedure delete all records from temporary table and insert records in temporary table. I started transaction (READ), but never commit it ! I have a second Stored Procedure (SAVE_X1) access by transaction 2, this update records in temporary table. I started transaction, execute Stored Procedure, commit transaction, it´s works fine But when I try reopen a Query again, cause a corrupted database Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements. Internal Firebird consistency check (cannot find record back version (291), file: vio.cpp line: 4905). DDL: CREATE GLOBAL TEMPORARY TABLE X1 ( ID INTEGER, NAME VARCHAR(10) ) ON COMMIT PRESERVE ROWS; /******************************************************************************/ /*** Stored Procedures ***/ /******************************************************************************/ SET TERM ^ ; ALTER PROCEDURE FU_X1 RETURNS ( SID INTEGER, SNAME VARCHAR(10)) AS begin delete from X1; insert into X1 values ( 1, '1'); insert into X1 values ( 2, '2'); insert into X1 values ( 3, '3'); insert into X1 values ( 4, '4'); insert into X1 values ( 5, '5'); for select X1.ID, X1.NAME from X1 into SID, SNAME do suspend; end^ ALTER PROCEDURE SAVE_X1 ( PID INTEGER, PNAME VARCHAR(10)) AS begin update X1 set NAME = :PNAME where X1.ID = :PID; if (row_count = 0) then insert into X1 values ( :PID, :PNAME); end^ SET TERM ; ^ -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_sfd2d_oct Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel