[
https://issues.apache.org/jira/browse/QPID-8430?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kim van der Riet reopened QPID-8430:
------------------------------------
If a message contains a non-empty-string trace (key "x-qpid.trace"), this fix
does not prevent each reroute from re-copying the message as a part of
rerouting, and thus for the memory to grow as before the patch. Each reroute is
supposed to set the value of this key to the empty string, and subsequent
reroutes should not need to recopy the message. However, testing has shown that
the test for the presence of the key and its value (using
*Message.getPropertyAsString()*) always returns the value of the original
message trace annotation, and is thus allowing the trace annotation to be unset
over and over, each time with a message deep copy for each reroute.
> [qpid-cpp] Excessive memory use when rerouting messages
> -------------------------------------------------------
>
> Key: QPID-8430
> URL: https://issues.apache.org/jira/browse/QPID-8430
> Project: Qpid
> Issue Type: Bug
> Components: C++ Broker
> Reporter: Kim van der Riet
> Assignee: Kim van der Riet
> Priority: Major
>
> When a message is rerouted several times, the broker's used memory increases
> rapidly. This is counter-intuitive, considering that the messages themselves
> are only passing from one queue to another. There is no evidence of a leak,
> however, only a large growth in consumed memory.
> An investigation has shown that the process of clearing traces from the
> message when rerouting (whether they exist or not) causes the message and its
> frames to be copied (for reasons of avoiding locks on the message, which can
> affect performance).
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]