You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by gtenev <gi...@git.apache.org> on 2016/10/27 02:26:41 UTC

[GitHub] trafficserver pull request #1157: TS-4916 Add safety net to avoid H2-infinit...

GitHub user gtenev opened a pull request:

    https://github.com/apache/trafficserver/pull/1157

    TS-4916 Add safety net to avoid H2-infinite-loop deadlock.

    Current Http2ConnectionState implementation uses a memory pool for
    instantiating streams and DLL<> stream_list for storing active streams.
    Destroying a stream before deleting it from stream_list and then creating
    a new one + reusing the same chunk from the memory pool right away always
    leads to destroying the DLL structure (deadlocks, inconsistencies).
    Added a safety net since the consequences are disastrous.
    Until the design/implementation changes it seems less error prone
    to (double) delete before destroying (noop if already deleted).
    
    (cherry picked from commit a6f9337f61c980739e08bbefeb5f6409b7dcdac1)
    
    Conflicts:
    	proxy/http2/Http2ConnectionState.cc

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/gtenev/trafficserver h2_loop

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/trafficserver/pull/1157.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1157
    
----
commit 8b3d67d8f3bdb7e837c766e57ae75286f1eb01a3
Author: Gancho Tenev <gt...@gmail.com>
Date:   2016-10-17T22:10:12Z

    TS-4916 Add safety net to avoid H2-infinite-loop deadlock.
    
    Current Http2ConnectionState implementation uses a memory pool for
    instantiating streams and DLL<> stream_list for storing active streams.
    Destroying a stream before deleting it from stream_list and then creating
    a new one + reusing the same chunk from the memory pool right away always
    leads to destroying the DLL structure (deadlocks, inconsistencies).
    Added a safety net since the consequences are disastrous.
    Until the design/implementation changes it seems less error prone
    to (double) delete before destroying (noop if already deleted).
    
    (cherry picked from commit a6f9337f61c980739e08bbefeb5f6409b7dcdac1)
    
    Conflicts:
    	proxy/http2/Http2ConnectionState.cc

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] trafficserver pull request #1157: TS-4916 Add safety net to avoid H2-infinit...

Posted by PSUdaemon <gi...@git.apache.org>.
Github user PSUdaemon closed the pull request at:

    https://github.com/apache/trafficserver/pull/1157


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] trafficserver issue #1157: TS-4916 Add safety net to avoid H2-infinite-loop ...

Posted by atsci <gi...@git.apache.org>.
Github user atsci commented on the issue:

    https://github.com/apache/trafficserver/pull/1157
  
    Linux build *successful*! See https://ci.trafficserver.apache.org/job/Github-Linux/1002/ for details.
     



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] trafficserver issue #1157: TS-4916 Add safety net to avoid H2-infinite-loop ...

Posted by atsci <gi...@git.apache.org>.
Github user atsci commented on the issue:

    https://github.com/apache/trafficserver/pull/1157
  
    FreeBSD build *successful*! See https://ci.trafficserver.apache.org/job/Github-FreeBSD/1109/ for details.
     



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---