You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/02/07 09:12:41 UTC

[jira] [Commented] (ARTEMIS-931) Improve HTTP upgrade connection

    [ https://issues.apache.org/jira/browse/ARTEMIS-931?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15855612#comment-15855612 ] 

ASF GitHub Bot commented on ARTEMIS-931:
----------------------------------------

GitHub user jmesnil opened a pull request:

    https://github.com/apache/activemq-artemis/pull/991

    [ARTEMIS-931] Fix HTTP Upgrade Connection

    * Fix isEquivalent() method to take into account the activemqServerName
      property when httpUpgradeEnabled is true. Two ActiveMQ server hosted on
      the same app server may have the same host and port (corresponding to
      the Web server HTTP port). The activemqServerName property is used to
      distinguish them.
    * Iron out HTTP upgrade handler so that the latch is always count down
      and the channel context is closed unless the handshake was completed
      successfully
    
    JIRA: https://issues.apache.org/jira/browse/ARTEMIS-931

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

    $ git pull https://github.com/jmesnil/activemq-artemis ARTEMIS-931_improve_http-upgrade_connection

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

    https://github.com/apache/activemq-artemis/pull/991.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 #991
    
----
commit dd052026e6c5616f1f51795ea21d26f12deaf9e7
Author: Jeff Mesnil <jm...@gmail.com>
Date:   2017-02-06T15:26:02Z

    [ARTEMIS-931] Fix HTTP Upgrade Connection
    
    * Fix isEquivalent() method to take into account the activemqServerName
      property when httpUpgradeEnabled is true. Two ActiveMQ server hosted on
      the same app server may have the same host and port (corresponding to
      the Web server HTTP port). The activemqServerName property is used to
      distinguish them.
    * Iron out HTTP upgrade handler so that the latch is always count down
      and the channel context is closed unless the handshake was completed
      successfully
    
    JIRA: https://issues.apache.org/jira/browse/ARTEMIS-931

----


> Improve HTTP upgrade connection
> -------------------------------
>
>                 Key: ARTEMIS-931
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-931
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 1.5.2
>            Reporter: Jeff Mesnil
>             Fix For: 2.0.0, 1.5.x
>
>
> When Artemis connector is configured to use http-upgrade, it will send an HTTP request to the server to perform the upgrade handshake and wait for response for 30 seconds maximum.
> The code in HttpUpgradeHandler#channelRead0 checks if the received object from the server is a HttpResponse and check its header.
> However if the received object is not an HttpResponse (e.g. a LastHttpContent if the web server is suspended and returns a 404 with a text content), the code does not close the context and does not countdown the latch.
> This results in a 30s block for the client when we already know that the connection will not be possible.
> Improving code in  HttpUpgradeHandler#channelRead0 will remove this 30s wait time and ensure a fast dectection from the client so that it can try to connect to another server for example.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)