Decompression overran buffer after rollback [CORE5422] #2082
Labels
affect-version: 2.1.7
affect-version: 2.5.0
affect-version: 2.5.1
affect-version: 2.5.2 Update 1
affect-version: 2.5.2
affect-version: 2.5.3 Update 1
affect-version: 2.5.3
affect-version: 2.5.4
affect-version: 2.5.5
affect-version: 2.5.6
affect-version: 3.0.0
affect-version: 3.0.1
affect-version: 4.0 Initial
fix-version: 2.5.7
fix-version: 3.0.2
fix-version: 4.0 Alpha 1
priority: critical
qa: covered by another tests
type: bug
Submitted by: prenosil (prenosil)
This is the same issue as in (for FB3.0)
CORE5392
and as in (for FB4.0)
CORE5420
(and I have suspition that CORE5419 is the same problem)
I copied test from CORE5420 with some minor changes (adding primary key is removed because it is unnecessary, and force write is set ON (in my tests on FB2.5.6 i can''t reproduce the crash with FW OFF).
Few notes:
- probalibity of crash is higher with CpuAffinityMask = 1 than with CpuAffinityMask = 0
- when testing on real table/data, the crash occur even without "alter table test add ..."
- after exactly 2 minutes after "Decompression overran" there is "deadlock" in fbirebird.log
- no error occurs when
- GC is turned off in connect string (isc_dpb_no_garbage_collect), or
- GC set to Cooperative in .conf, or
- using Embedded version
- when testing night FB3.0 snapshot the problem seems fixed (did not occur even after >400 runs of test scripts), i.e. fix from CORE5392 works.
- latest snapshot 2.5.7.27030-0_x64 crashes too
==========
shell del E:\TEMP\Test.fdb 2>nul;
create database 'localhost:E:\TEMP\Test.fdb';
connect 'localhost:E:\TEMP\Test.fdb' no garbage_collect;
create domain dm_longutf as varchar(8000) character set utf8;
recreate table test (id int not null, a int);
commit;
set echo on;
set term ^;
execute block as
declare i int;
declare n int = 100000;
begin
while (n>0) do insert into test(id, a) values(:n, :n) returning :n-1 into n;
end
^
set term ;^
commit;
alter table test add b dm_longutf default '' not null;
commit;
update test set a=2;
rollback;
set list on;
-- this lead to decompression overran buffer (179), file: sqz.cpp line: 282
set echo on;
update test set a=3;
commit;
==========
Commits: 90a46fa 835c78c dd52257 0eb85af 10c6a14 8d1110a
====== Test Details ======
Bug is 100% reproduced on 2.5.7.27030 (18-dec-2016), fixed on 27038.
Test already exists - see core_5392.fbt, so i decided only to change there min_version to 2.5.7.
The text was updated successfully, but these errors were encountered: