On 2020-03-24 19:50, Vlad Khorsun wrote:

Added first in Provider::generateDPB(), next in (any-)Connection::attach().
Vlad, I'm unsure - what place is correct one?

  Second was added with connections pool implementation in master. This part requires some completion. isc_dpb_ext_call_depth was introduced by me at initial implementation of EDS to detect and prevent too deep recursion within EDS. isc_dpb_ext_call_depth passed at attach() with incremented call depth counter of local attachment. Now, with connections pooling, I need a way to set call depth counter of re-used attachment. So far we have no such way and I open for suggestions. When this will be implemented, isc_dpb_ext_call_depth could be removed from Provider::generateDPB(). Currently it works as a some protection from bad scenarios with recursive calls of EDS.


It should help from infinite recursion - pools on involved servers should overflow at some step, and tag will work as before. Though certainly it's not precise result.

  Not sure I got you here - why it is not precise ?


Because (as far as I understood current code) it can fire when callbacks' depth is not precisely MAX_CALLBACKS but less or bigger than it.

May be better solution is related with attachment's reset?

  Pooled connection is reset when released, not when reused.

Sorry - what reasons for it?




Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to