[ 
https://issues.apache.org/jira/browse/QPID-8536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tomas Vavricka closed QPID-8536.
--------------------------------

> [Broker-J] Incorrect check of maximum open connections
> ------------------------------------------------------
>
>                 Key: QPID-8536
>                 URL: https://issues.apache.org/jira/browse/QPID-8536
>             Project: Qpid
>          Issue Type: Bug
>          Components: Broker-J
>            Reporter: Marek Laca
>            Priority: Minor
>              Labels: Broker, Connections, Java, limit, port
>             Fix For: qpid-java-broker-9.0.0
>
>
> The AMQP port has the limit of maximum open connections. But this limit is 
> not checked correctly. The AMQP port has two methods 
> AmqpPort::canAcceptNewConnection and AmqpPort::incrementConnectionCount.
> Suppose that the port has the limit 5 connection and clients open 7 
> connections at the same time:
>  # 7 parallel connections is open by IO-threads.
>  # All threads call the AmqpPort::canAcceptNewConnection method and every 
> thread receive the positive answer because any connection has not been 
> registered yet.
>  # All threads call the AmqpPort::incrementConnectionCount methods. Hence the 
> connection count is increased to 7 what breaks the limits.
>  # All 7 connections are accepted in spite of breaking limit.
> The every thread can see the intermediate state of the counter when the limit 
> is checked by another thread but the counter has not been incremented yet.
>  The solution is the combination of the steps 'check' and 'increment' into 
> single atomic operation when every thread has the exclusive access to the 
> counter. The counter can be observed only in two states: 'before check' or 
> 'after incrementation'.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to