Traffic Server
  1. Traffic Server
  2. TS-1559

Server side termination not handled properly when a PluginVC/Protocol Plugin is used

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.3.1
    • Fix Version/s: 3.3.1
    • Component/s: HTTP, Plugins
    • Labels:
      None

      Description

      Using a Protocol Plugin along with a PluginVC (HttpConnect) and HTTP CONNECT command to create tunnel. When the server drops the connection, the protocol plugin will not be notified until the connection times out.

      HttpSM ends up calling PluginVC::do_io_shutdown() which sets the appropriate flags but takes no action. I suspect this would affect real socket VCs as well, but in that case the shutdown() on the socket write side would cause the client to react and close its own side as well.

      The proposed fix solves my specific problem but may not address all related issues (with PluginVCs or other types of VCs as well).

      1. pluginvc_tunnel.diff
        0.5 kB
        Yossi Gottlieb

        Activity

        Hide
        Uri Shachar added a comment -

        When this patch is integrated we should give a heads-up to protocol plugin developers/users – it causes a slight behavior change – In some cases we can now get a TS_EVENT_VCONN_WRITE_READY on the client write VIO after the server read vio has been freed (so if you'll segfault if you try to reenable). Since the plugin will always get an EOS event beforehand it's pretty easy to adjust for this.

        Show
        Uri Shachar added a comment - When this patch is integrated we should give a heads-up to protocol plugin developers/users – it causes a slight behavior change – In some cases we can now get a TS_EVENT_VCONN_WRITE_READY on the client write VIO after the server read vio has been freed (so if you'll segfault if you try to reenable). Since the plugin will always get an EOS event beforehand it's pretty easy to adjust for this.
        Hide
        ASF subversion and git services added a comment -

        Commit 4e3035eee617a8cd39d47d6c103cc8df48a02248 in branch refs/heads/master from Yossi Gottlieb
        [ https://git-wip-us.apache.org/repos/asf?p=trafficserver.git;h=4e3035e ]

        TS-1559 Server side termination not handled properly when a PluginVC/Protocol Plugin is used.

        Show
        ASF subversion and git services added a comment - Commit 4e3035eee617a8cd39d47d6c103cc8df48a02248 in branch refs/heads/master from Yossi Gottlieb [ https://git-wip-us.apache.org/repos/asf?p=trafficserver.git;h=4e3035e ] TS-1559 Server side termination not handled properly when a PluginVC/Protocol Plugin is used.

          People

          • Assignee:
            Unassigned
            Reporter:
            Yossi Gottlieb
          • Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development