Issue Details (XML | Word | Printable)

Key: CORE-2879
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Vlad Khorsun
Reporter: Vlad Khorsun
Votes: 0
Watchers: 0
Operations

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

Sweep could raise error : page 0 is of wrong type (expected 6, found 1)

Created: 22/Feb/10 10:02 AM   Updated: 04/Feb/11 11:52 AM
Component/s: Engine
Affects Version/s: 2.5 Alpha 1, 2.5 Beta 1, 2.5 Beta 2, 2.5 RC1, 2.5 RC2
Fix Version/s: 2.5 RC3, 2.1.4, 3.0 Alpha 1

Time Tracking:
Not Specified

Environment: SuperServer only

Planning Status: Unspecified


 Description  « Hide
When GLOBAL TEMPORARY TABLE's is re-created and sweep run at the same time wrong page type error may occurs.
To reproduce run following statement

execute block returns (sql varchar(255))
as
declare n int;
declare i int;
declare s varchar(256);
begin
  n = 0;
  while (n < 20) do
  begin
    i = 1;
    while (i < 10) do
    begin
      s = 'tmp' || :i;
      sql = 'create global temporary table ' || :s || ' (id int);';
      execute statement sql with autonomous transaction;
      suspend;

      sql = 'drop table ' || :s || ';';
      execute statement sql with autonomous transaction;
      suspend;

      i = i + 1;
    end
    n = n + 1;
  end
end

and run gfix -sweep while statement above is executed.

 All   Comments   Work Log   Change History   Version Control   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Vlad Khorsun added a comment - 22/Feb/10 11:11 AM
I unable to reproduce it at 2.1.4 but backported it anyway