Issue Details (XML | Word | Printable)

Key: CORE-195
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Alexander Peshkov
Reporter: Alexander Peshkov
Votes: 0
Watchers: 2
Operations

If you were logged in you would be able to see more operations.
Firebird Core

Bugcheck 291

Created: 20/Oct/02 12:00 AM   Updated: 21/Mar/11 04:21 PM
Component/s: Engine
Affects Version/s: 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.1.0, 2.0.4, 2.5 Alpha 1, 2.1.1, 2.0.5, 2.1.2, 2.5 Beta 1, 2.5 Beta 2, 2.1.3, 2.5 RC1, 2.5 RC2
Fix Version/s: 1.5.0, 2.0.6, 2.5 RC3, 2.1.4, 3.0 Alpha 1

Time Tracking:
Not Specified

File Attachments: 1. File bug291.sql (1 kB)
2. Text File bugcheck291.sql (1.0 kB)

Issue Links:
Relate
 

SF_ID: 625899


 Description  « Hide
SFID: 625899#
Submitted By: alexpeshkoff

Bugcheck 291 occurs when update of that same record,
that fired a trigger, done in BEFORE UPDATE trigger.

Testing environment - FB1.0, FB1.5 / Win32.

This bug appears to be FB/IB version and OS
independent, but if someone may check it with LINUX
and/or old Interbase versions, that should be useful.

This small script (just 1 table with 2 fields, 1 trigger and
4 records) always raise bugcheck 291 - cannnot find
back record version.
I have added the following debugging in jrd/exe.cpp
(modify):

after case req::req_return:
gds__log("I %p %p %p %6d %3d %6d %3d %s",
  org_rpb, org_rpb->rpb_record, org_rpb->rpb_prior,
  org_rpb->rpb_page, org_rpb->rpb_line,
  org_rpb->rpb_b_page, org_rpb->rpb_b_line,
  org_rpb->rpb_relation->rel_name);

before VIO_modify
gds__log("< ... (all the rest is the same)
after VIO_modify
gds__log("> ... (all the rest is the same)

This is the output of this debugging (a bit stripped):
OK (Server) Sun Oct 20 15:18:29 2002
I 02708CF4 02720D48 00000000 150 2 0 0 T1
I 026F083C 026F55A8 00000000 150 3 0 0 T1
I 02708464 026F2AA8 00000000 150 0 0 0 T1
I 02707CEC 026F2D40 00000000 150 3 0 0 T1
< 02707CEC 026F2D40 00000000 150 3 0 0 T1
> 02707CEC 026F2D40 026F2D40 150 3 150 4 T1
< 02708464 026F2AA8 00000000 150 0 0 0 T1
> 02708464 026F2AA8 026F2AA8 150 0 150 5 T1
I 02708514 026F2720 00000000 150 1 0 0 T1
I 02707D9C 026F1680 026F1680 150 3 150 4 T1
< 02707D9C 026F1680 026F1680 150 3 150 4 T1
> 02707D9C 026F1680 00000000 150 3 150 6 T1
< 02708514 026F2720 00000000 150 1 0 0 T1
> 02708514 026F2720 026F2720 150 1 150 4 T1
< 026F083C 026F55A8 00000000 150 3 0 0 T1
> 026F083C 026F55A8 026F55A8 150 3 150 7 T1
I 026F08EC 026F19F0 026F19F0 150 3 150 7 T1
I 02708724 026F1D70 026F1D70 150 3 150 7 T1
< 02708724 026F1D70 026F1D70 150 3 150 7 T1
> 02708724 026F1D70 00000000 150 3 150 8 T1
< 026F08EC 026F19F0 026F19F0 150 3 150 7 T1

OK (Server) Sun Oct 20 15:18:29 2002
Database: C:\INFOSYSTEM\BUG291.GDB
 internal gds software consistency check
(cannot find record back version (291))

OK (Server) Sun Oct 20 15:18:29 2002


OK (Server) Sun Oct 20 15:18:29 2002
Database: C:\INFOSYSTEM\BUG291.GDB
 internal gds software consistency check
(cannot find record back version (291))

OK (Server) Sun Oct 20 15:18:29 2002

You may see, that firebird lost that part of information
about back version of the record, that was stored in rpb.
Any ideas?

 All   Comments   Work Log   Change History   Version Control   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Alice F. Bird added a comment - 14/Jun/06 09:32 AM
Date: 2002-10-20 14:44
Sender: alexpeshkoff
Logged In: YES
user_id=423445

Mentioned by me script is present in bugtracking system,
and called bug291.sql.

Pavel Cisar added a comment - 26/Jun/06 10:31 PM
Reopened just to add attachment.

Pavel Cisar added a comment - 26/Jun/06 10:32 PM
SQL script to run

Kovalenko Dmitry added a comment - 31/Jan/10 12:58 PM
This problem exists in Firebird 2.5.0.25916 [x64] [SuperServer]
internal Firebird consistency check (cannot find record back version (291), file: vio.cpp line: 5014)

Firebird 2.1 (build 18185) - FAIL
internal Firebird consistency check (cannot find record back version (291), file: vio.cpp line: 5034).

Firebird 2.0 (build 12981) - FAIL
internal Firebird consistency check (cannot find record back version (291), file: vio.cpp line: 4816).

Firebird 1.5 (build 4910) - OK.

---
Script with demonstration of this bugcheck is attached

Alexander Peshkov added a comment - 31/Jan/10 04:11 PM
Confirmed.

Alexander Peshkov added a comment - 05/Feb/10 10:46 AM
Was reintroduced (in a much less destructive way) in 2.0.
Much less destructive means here that it takes place only for the physically first record in a table.

Philippe Makowski added a comment - 21/Mar/11 04:21 PM
QA test made