Hi!
I've created a test showing a problem with Lock deletion when it's used
with an AST routine.
We have this pattern in code, for example in Routine::remove:
// deallocate all structure which were allocated. The routine
// blr is originally read into a new pool from which all request
// are allocated. That will not be freed up.
if (existenceLock)
{
delete existenceLock;
existenceLock = NULL;
}
Here is test case:
https://github.com/asfernandes/firebird/commit/8228caa27f1b4271a2da57345c439964f807f50a
This test always pass, but if we comment line "1!" and uncomment line
"2!" it crashes many times calling LCK_release inside blockingAst, as
the object is already deleted.
Do we have any safe approach to do it or the only way would be to let
objects die in the attachment/database pools after LCK_fini?
Adriano