26.05.2016 15:19, Dimitry Sibiryakov wrote:

>     I tried to fix that by reusing savepoints started by looper. For that I 
> added
> req_savepoints to request and in looper I store savepoint there after merging 
> it the same
> way as SP savepoints are stored in req_proc_sav_point.
>     So far so good, savepoints stack in test case become right.
>     But build started to crash because some requests live longer than 
> transaction (which is
> well-known) and the pointer to stored savepoints, allocated from transaction 
> pool become
> invalid. It was expected and I put call to Savepoint::destroy() to 
> EXE_unwind() along with
> releasing of req_proc_sav_point. But it still crash.
>     Where is a right place to release stored savepoints?

Where req_active is cleared. IIRC, one place is in the looper, second 
one is inside EXE_unwind.

Or, a better place could be TRA_detach_request. It's called from either 
EXE_unwind (when request is released) or TRA_release_transaction (upon 
commit/rollback).


Dmitry


------------------------------------------------------------------------------
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to