Decompression overran buffer after rollback
-------------------------------------------

                 Key: CORE-5422
                 URL: http://tracker.firebirdsql.org/browse/CORE-5422
             Project: Firebird Core
          Issue Type: Bug
    Affects Versions: 2.5.6
         Environment: Windows Server 2008 R2 64 bit, Windows 10 Pro 64 bit
FB Superserver with GC set to Cooperative
            Reporter: prenosil
            Priority: Critical


This is the same issue as in (for FB3.0)
  http://tracker.firebirdsql.org/browse/CORE-5392
and as in (for FB4.0)
  http://tracker.firebirdsql.org/browse/CORE-5420
(and I have suspition that CORE-5419 is the same problem)

I copied test from CORE-5420 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 CORE-5392 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;

==========

-- 
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

        

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to