You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@artemis.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2026/07/31 11:20:00 UTC
[jira] [Commented] (ARTEMIS-6172) HTTP tunneling server async packets starve request replies
[ https://issues.apache.org/jira/browse/ARTEMIS-6172?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18100728#comment-18100728 ]
ASF subversion and git services commented on ARTEMIS-6172:
----------------------------------------------------------
Commit 29ba2a4c08786e876b27c966ff0fc62019d6bd53 in artemis's branch refs/heads/main from Domenico Francesco Bruscino
[ https://gitbox.apache.org/repos/asf?p=artemis.git;h=29ba2a4c08 ]
ARTEMIS-6172 Fix HTTP tunneling server async packets starve request replies
With httpEnabled=true, Core packets are tunneled over HTTP. HttpAcceptorHandler
pairs each client POST with one queued HTTP response slot; every server
outbound ByteBuf must take a slot before it can be flushed.
Server-initiated / async packets (e.g. ClusterTopologyChangeMessage) also
consume those slots. When they drain the queue, replies to the client’s own
requests block on responses.take() until another HTTP request arrives.
The client is often waiting for that reply, so the connection stalls.
> HTTP tunneling server async packets starve request replies
> ----------------------------------------------------------
>
> Key: ARTEMIS-6172
> URL: https://issues.apache.org/jira/browse/ARTEMIS-6172
> Project: Artemis
> Issue Type: Bug
> Reporter: Domenico Francesco Bruscino
> Assignee: Domenico Francesco Bruscino
> Priority: Major
> Labels: pull-request-available
> Time Spent: 20m
> Remaining Estimate: 0h
>
> With httpEnabled=true, Core packets are tunneled over HTTP. HttpAcceptorHandler pairs each client POST with one queued HTTP response slot; every server outbound ByteBuf must take a slot before it can be flushed.
> Server-initiated / async packets (e.g. ClusterTopologyChangeMessage) also consume those slots. When they drain the queue, replies to the client’s own requests block on responses.take() until another HTTP request arrives. The client is often waiting for that reply, so the connection stalls.
> After ARTEMIS-5819
> * NoHttpKeepAliveRunnable→ response slots tend to accumulate and are not flushed when the broker has nothing to say.
> * No idle GET → no way to create a new response slot when the queue is empty and async traffic already consumed capacity.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@artemis.apache.org
For additional commands, e-mail: issues-help@artemis.apache.org