Subject Re: [firebird-support] How to trigger automatic sweep?
Author Gabor Boros
2019. 05. 01. 11:47 keltezéssel, Dimitry Sibiryakov sd@...
[firebird-support] írta:
> In isql: "Set transaction no auto undo" + any DML + rollback.

Thank you very much! Now I can manage the gap! :-)

So I made a gap-setter application then try...

Windows 10 64bit, 2.5.8 Classic 32bit, and the EMPLOYEE database.

Numbers of EMPLOYEE at factory state:

Oldest transaction 154
Oldest active 155
Oldest snapshot 155
Next transaction 155

If I execute 20000 from a "Start snapshot no auto undo transaction,
UPDATE, rollback" cycle on the factory state of EMPLOYEE the numbers are:

Oldest transaction 156
Oldest active 20156
Oldest snapshot 20156
Next transaction 20156

No problem, no firebird.log created.

If I execute 20001 from a "Start snapshot no auto undo transaction,
UPDATE, rollback" cycle on the factory state of EMPLOYEE the numbers are:

Oldest transaction 156
Oldest active 20158
Oldest snapshot 20158
Next transaction 20158

After this step firebird.log contains:

SRV Wed May 01 14:54:40 2019
Sweep is started by SWEEPER
Database "EMPLOYEE"
OIT 156, OAT 20157, OST 20157, Next 20157

SRV Wed May 01 14:54:41 2019
Shutting down the server with 1 active connection(s) to 1 database(s),
0 active service(s)

SRV Wed May 01 14:54:41 2019
Error during sweep:
connection shutdown

and result of "gfix -validate -full -no_update EMPLOYEE":

Summary of validation errors
Number of index page errors : 1

So, I wanted to see this! Automatic sweep destroy the database. And easy
to reproduce. Too easy! :-(

Gabor