Possible races while Service destruction
----------------------------------------

                 Key: CORE-4303
                 URL: http://tracker.firebirdsql.org/browse/CORE-4303
             Project: Firebird Core
          Issue Type: Bug
          Components: Engine
    Affects Versions: 3.0 Alpha 1, 2.5.2 Update 1, 2.5.3, 3.0 Alpha 2
            Reporter: Roman Simakov


This destructor sometimes is called concurrently with existing 
Service::ExistenceGuard object in another thread
Service::~Service()
{
        removeFromAllServices();

        delete svc_trace_manager;
        svc_trace_manager = NULL;

        if (svc_current_guard)
        {
                svc_current_guard->release();
        }
}
Variable svc_current_guard is not null exactly in such moment. But after check 
another thread with ExistenceGuard can continue its work and ExistenceGuard 
object will be destroyed and svc_current_guard will be released. In this case 
~Service will try to leave svc->svc_existence_lock the second time which leads 
to abort.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to