On 21/06/2021 15:17, Jiří Činčura wrote: > Hi *, > > I think I have an example of memory leaking when using external engine plugin > (3.0.7, 4.0.0). > > Here's as simple implementation as I can make it (sorry for probably > non-idiomatic C++ code): > https://gist.github.com/cincuranet/aa207081dc0d44e5d06c1a4890019307 . Then I > create a dummy function in a database `CREATE FUNCTION TEST RETURNS INTEGER > ENGINE MEMORYDEMO`. Finally I run `select test() from rdb$database where 0=1` > in a loop using isql (open-execute-close) using simple script (in this case > PowerShell flavor) below. Given the `0=1` the function is actually never > called (and for good measure I have `exit(EXIT_FAILURE)` there), but at least > the plugin is used. > > while ($true) { > 'select test() from rdb$database where 0=1;' | & $isql -u sysdba -p > masterkey 'localhost:memory.fdb'; > } > > This results in this memory usage (and as far as I can tell from couple of > long runs, it keeps growing): > https://snipboard.io/g5Lzya.jpg > > Am I doing something wrong? Or is this a bug? >
I'm testing with the example function: create function sum_args ( n1 integer, n2 integer, n3 integer ) returns integer external name 'udrcpp_example!sum_args' engine udr; select sum_args(1, 2, 3) from rdb$database where 1 = 0; I put breakpoint in UdrEngine.cpp here: ~SharedFunction() { engine->deleteChildren(children); } And engine calls it. Can you do the same test using sum_args? Adriano Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel