Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bugcheck 179 [CORE6379] #6618

Closed
firebird-issue-importer opened this issue Aug 4, 2020 · 5 comments
Closed

Bugcheck 179 [CORE6379] #6618

firebird-issue-importer opened this issue Aug 4, 2020 · 5 comments

Comments

@firebird-issue-importer
Copy link

@firebird-issue-importer firebird-issue-importer commented Aug 4, 2020

Submitted by: @hvlad

The bug was detected and reproduced when testing new fb4 feature (statement restart on update conflict) but its reason is present in all Firebird versions.

To reproduce start two isql sessions against same database with page size 8KB

isql 1:
recreate table t5(id int generated by default as identity, x int, s varchar(32765) );
insert into t5(x, s) select first 10 0, lpad('', 32765, gen_uuid()) from rdb$types;
commit;

update t5 set x = -1111 where id = 3;

isql 2:
set autoddl off;
commit;

set transaction read committed read consistency;
delete from t5;
-- waits for transaction in isql 1

isql 1:
commit;

at this point isql 2 will print:

Statement failed, SQLSTATE = XX000
Error during savepoint backout - transaction invalidated
-internal Firebird consistency check (decompression overran buffer (179), file: sqz.cpp line: 293)
Statement failed, SQLSTATE = XX000
internal Firebird consistency check (can't continue after bugcheck)

Commits: cc6d1f5 bec219b

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Aug 4, 2020

Commented by: @hvlad

The bug reason is wrong space allocation on data page when fragmented record is deleted.
The space allocated for delete stub is too small and later, when delete is undo-ed, restored record version could overwrite few bytes of adjacent next record version.

Unfortunately (or happily), I can't reproduce it on previous versions of Firebird (fb3 and older) but it doesn't mean it can't happen there.

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Aug 4, 2020

Modified by: @hvlad

assignee: Vlad Khorsun [ hvlad ]

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Aug 19, 2020

Modified by: @hvlad

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

Fix Version: 4.0 RC 1 [ 10930 ]

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Aug 20, 2020

Modified by: @pavel-zotov

status: Resolved [ 5 ] => Resolved [ 5 ]

QA Status: No test => Done successfully

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Aug 20, 2020

Modified by: @pavel-zotov

status: Resolved [ 5 ] => Closed [ 6 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants