I found a serious bug leading Firebird in allocating a very large amount of RAM - in my example (with 80.000 records) it crashes after allocating 1.7 GB of RAM.
You can reproduce this bug by using the attached database "MemoryBug.fdb" by execute the following two queries WITHOUT commiting after the first query.
set CIS = 0;
==> Firebird uses (with my DefaultDBCachePages) approx. 90 MB of RAM.
set CIS = 1;
==> use of RAM for the Firebird servers grows in a few seconds up to 1.7 GB + and crashes.
Note 1: It seems that updating records several times in the SAME transaction leads in this bug. If one commits after the first query, every works fine.
Note 2: Using a stored procedure including the two above statements DOESN'T lead in growing memory that much (just up to about 180 MB in my case).
Note 3: Using tables with less fields as in my example seems to work correctly. Therefore: Use my example database to reproduce the bug!
Note 4: I guess the bug reported by Eugene Kuznetsov in
is the same.
It is essential for the further development of my project to have a solution for this. So please, let me know, when this bug will be fixed.
Thanks in advance.