[
https://issues.apache.org/jira/browse/QPID-7127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15183539#comment-15183539
]
Pavel Moravec commented on QPID-7127:
-------------------------------------
Reproducer: set idle timeout to ffffffff. Then:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Connection.cpp?annotate=1713529#l334
:
uint32_t timeout = pn_transport_get_remote_idle_timeout(transport);
if (timeout) {
// if idle generate empty frames at 1/2 the timeout interval as keepalives:
ticker = boost::intrusive_ptr<qpid::sys::TimerTask>(new
ConnectionTickerTask((timeout+1)/2,
getBroker().getTimer(),
*this));
I.e. then ConnectionTickerTask is scheduled with zero timeout. So the task is
always behind its schedule and spamming logs.
> [C++ broker] Setting large idle timeout cause confuses timers in the C++
> broker
> -------------------------------------------------------------------------------
>
> Key: QPID-7127
> URL: https://issues.apache.org/jira/browse/QPID-7127
> Project: Qpid
> Issue Type: Bug
> Components: C++ Broker
> Affects Versions: qpid-cpp-0.34
> Reporter: Jakub Scholz
>
> I run into following problem. When I try to connect with SwiftMQ AMQP client
> (http://www.swiftmq.com/) to the Qpid C++ broker and don't specify idle
> timeout, it will use in64_max. The Qpid broker seems to be fine with it and
> opens the connection:
> ConnectionDispatcher, , visit, po=[POOpen,
> containerId=356a476d-4678-4cfa-9680-8bf648b808d2@schojak,
> maxFrameSize=2147483647, maxChannel=255, idleTimeout=9223372036854775807]
> ConnectionDispatcher, , visit, po=[POConnectionFrameReceived, frame=[Open
> containerId=91655fa5-80d3-4cd1-9a72-51b82e36de00, maxFrameSize=4294967295,
> channelMax=255, idleTimeOut=2147483647,
> offeredCapabilities=[ANONYMOUS-RELAY], properties=[product=qpid-cpp,
> platform=Linux, host=6a2d20e32f38, version=0.35]], sassl=false]
> However, the timers in the broker get crazy from it and start raising milions
> of errors like this:
> 2016-03-04 15:55:40 [System] error ConnectionTicker couldn't setup next timer
> firing: 33.8867ms[0ns]
> 2016-03-04 15:55:40 [System] error ConnectionTicker couldn't setup next timer
> firing: 33.8937ms[0ns]
> 2016-03-04 15:55:40 [System] error ConnectionTicker couldn't setup next timer
> firing: 33.9006ms[0ns]
> 2016-03-04 15:55:40 [System] error ConnectionTicker couldn't setup next timer
> firing: 33.9076ms[0ns]
> This seems to go on until the client disconnects or until the disk goes full.
> IT also seems to cause some secondary problems (perfomance, the affected
> client cannot close producer etc.)
> The int64 idle timeout seems to be bug in the SwiftMQ client. But Qpid should
> definitely handle this better:
> - Not open the connection when the indle timeout is invalid
> - Make sure that the timer errors don't appear
> The problem seems to be present in both 0.34 as well as in trunk.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]