Testing WI-T5.0.0.973 Firebid 5.0 Beta 1. Creation of partial index causes server to hang up or end in an endless loop. This happens intermittently, therefore the test case needs to be repeated a few times:
preparation:
CREATE TABLE TBL ( NUM integer );
now run the follwing two statements a few times if the error does not show immediately, 2, 3 times is usually enough
`set term ^;
execute block
as
declare i int;
begin
delete from tbl;
i = 0;
while (:i < 100000) do
begin
insert into tbl values (0);
i = i + 1;
end
execute statement 'CREATE INDEX TBL_P1 ON TBL (num) WHERE num > 0';
end^
set term ;^
DROP INDEX TBL_P1;`
This results in
Starting transaction...
Preparing statement:
execute block
as
declare i int;
declare cnt int;
begin
delete from tbl;
i = 0;
while (:i < 100000) do
begin
insert into tbl values (0);
i = i + 1;
end
execute statement 'CREATE INDEX TBL_P1 ON TBL (num) WHERE num > 0';
end
Statement prepared (elapsed time: 0.001s).
-- line 7, column 3
PLAN (TBL NATURAL)
Parameters: 0
Executing statement...
Statement executed (elapsed time: 6.450s).
2079896 fetches, 614241 marks, 713 reads, 112 writes.
100002 inserts, 1 updates, 100000 deletes, 15 index, 100001 seq.
Delta memory: 1273616 bytes.
RDB$INDEX_SEGMENTS: 1 inserts.
RDB$INDICES: 1 inserts. 1 updates.
TBL: 100000 inserts. 100000 deletes.
0 rows affected directly.
Total execution time: 6.481s
Script execution finished.
Committing transaction...
*** IBPP::SQLException ***
Context: Transaction::Commit
SQL Message : -902
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements
Engine Code : 335544726
Engine Message :
Error reading data from the connection.
Sometimes the test case causes the server to get stuck in an endless loop instead.
The error does not always show up, so until now I cannot provide a better test case which always produces the error. It does not matter if the test is done within the EB, this is just for convenience, The same error can be observed if the statements (delete, fill, index creation, index drop) are run separately and manually.
The error does not show up if the table is empty.
Testing WI-T5.0.0.973 Firebid 5.0 Beta 1. Creation of partial index causes server to hang up or end in an endless loop. This happens intermittently, therefore the test case needs to be repeated a few times:
preparation:
CREATE TABLE TBL ( NUM integer );now run the follwing two statements a few times if the error does not show immediately, 2, 3 times is usually enough
`set term ^;
execute block
as
declare i int;
begin
delete from tbl;
i = 0;
while (:i < 100000) do
begin
insert into tbl values (0);
i = i + 1;
end
execute statement 'CREATE INDEX TBL_P1 ON TBL (num) WHERE num > 0';
end^
set term ;^
DROP INDEX TBL_P1;`
This results in
Starting transaction...
Preparing statement:
execute block
as
declare i int;
declare cnt int;
begin
delete from tbl;
i = 0;
while (:i < 100000) do
begin
insert into tbl values (0);
i = i + 1;
end
execute statement 'CREATE INDEX TBL_P1 ON TBL (num) WHERE num > 0';
end
Statement prepared (elapsed time: 0.001s).
-- line 7, column 3
PLAN (TBL NATURAL)
Parameters: 0
Executing statement...
Statement executed (elapsed time: 6.450s).
2079896 fetches, 614241 marks, 713 reads, 112 writes.
100002 inserts, 1 updates, 100000 deletes, 15 index, 100001 seq.
Delta memory: 1273616 bytes.
RDB$INDEX_SEGMENTS: 1 inserts.
RDB$INDICES: 1 inserts. 1 updates.
TBL: 100000 inserts. 100000 deletes.
0 rows affected directly.
Total execution time: 6.481s
Script execution finished.
Committing transaction...
*** IBPP::SQLException ***
Context: Transaction::Commit
SQL Message : -902
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements
Engine Code : 335544726
Engine Message :
Error reading data from the connection.
Sometimes the test case causes the server to get stuck in an endless loop instead.
The error does not always show up, so until now I cannot provide a better test case which always produces the error. It does not matter if the test is done within the EB, this is just for convenience, The same error can be observed if the statements (delete, fill, index creation, index drop) are run separately and manually.
The error does not show up if the table is empty.