[
https://issues.apache.org/jira/browse/PROTON-1408?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15943672#comment-15943672
]
ASF GitHub Bot commented on PROTON-1408:
----------------------------------------
Github user astitcher commented on the issue:
https://github.com/apache/qpid-proton/pull/99
Having looked a bit more it seems less clear that the bug is in pn_hash!
Essentially the lower 32 bit masking is used as a more determinate way to
cast the int32_t of the pn_sequence_t to the uintptr_t (uint64_t) of the hash
code I don't understand (yet) why this casting sometimes gives different
results, but I *strongly suggest* creating a better named inline function to
express the intent rather than doing the masking with no real explanation.
Viz:
static inline uintptr_t pni_sequence_make_hash(pn_sequence_t i) {
return i & 0xFFFFFFFFUL;
}
> long-lived connections suffer large performance hit after many messages
> -----------------------------------------------------------------------
>
> Key: PROTON-1408
> URL: https://issues.apache.org/jira/browse/PROTON-1408
> Project: Qpid Proton
> Issue Type: Bug
> Components: proton-c
> Reporter: michael goulish
> Assignee: Alan Conway
> Attachments: jira_proton_1408_reproducer.tar.gz
>
>
> In long-running soak tests, in which connections are never taken down, I am
> seeing a sudden & severe performance degradation when the number of messages
> over the connection reaches about 6.4 billion.
> This is happening in tests with two senders, two receivers & one router
> intermediating.
> I have tried C libUV clients as well as CPP clients. Behavior is not
> identical, but I see sudden performance drop, ie. 8x throughput decrease or
> worse, in both cases.
> Alan / Ted / Ken see an issue in use of improper comparison logic in
> pn_do_disposition(), in transport.c . I am trying to prove this now.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]