You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Manjesh Nilange (JIRA)" <ji...@apache.org> on 2014/03/19 19:09:42 UTC

[jira] [Created] (TS-2651) atscppapi: race conditions in destruction of async providers

Manjesh Nilange created TS-2651:
-----------------------------------

             Summary: atscppapi: race conditions in destruction of async providers
                 Key: TS-2651
                 URL: https://issues.apache.org/jira/browse/TS-2651
             Project: Traffic Server
          Issue Type: Bug
            Reporter: Manjesh Nilange


There are two corner cases that I can think of -

1) Developer delete()ing AsyncHttpFetch before fetch is complete. 

In the .h documentation, we say that the fetch object will delete itself, so the implication is that developer need not delete it. However, we don't make sure that developer can't. Because if they do it (by mistake) before the fetch is complete, the fetch object's state is deleted, and then when the fetch actually completes, there will be chaos. 

2) Developer delete()ing AsyncTimer exactly at the time a timing event happens. 

AsyncTimer requires the developer to delete the timer explicitly (with a periodic timer, we can't do self-destruction). If developer's delete happens at the same time as a event on the continuation, then we will have problems as the destructor tries to destroy the continuation that is being invoked in another thread. 




--
This message was sent by Atlassian JIRA
(v6.2#6252)