qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chuck Rolke (JIRA)" <j...@apache.org>
Subject [jira] [Created] (DISPATCH-825) Corrupted data on larger (>100Kb) messages
Date Tue, 12 Sep 2017 20:48:00 GMT
Chuck Rolke created DISPATCH-825:
------------------------------------

             Summary: Corrupted data on larger (>100Kb) messages
                 Key: DISPATCH-825
                 URL: https://issues.apache.org/jira/browse/DISPATCH-825
             Project: Qpid Dispatch
          Issue Type: Bug
         Environment: Fedora 25. Master branch qpid-dispatch and qpid-cpp tools: qpid-send,
qpid-receive
            Reporter: Chuck Rolke


h1. Setup

h3. Start a dispatch router with this conf file:
{noformat}
# Router to run qpid-interop-test
router {
    mode: interior
    id: Router.A
    workerThreads: 4
    allowUnsettledMulticast: yes
}

listener {
    host: 0.0.0.0
    port: 5672
    authenticatePeer: no
    saslMechanisms: ANONYMOUS
}

listener {
    host: localhost
    port: 5672
    authenticatePeer: no
    saslMechanisms: ANONYMOUS
}

address {
    prefix: jms.queue.qpid-interop.#
    distribution: balanced
}

log {
    module: DEFAULT
    enable: debug+
}
({noformat}

h3. Start a receiver to receive 1000 messages:
{noformat}
qpid-receive -a jms.queue.qpid-interop.test --connection-options "{protocol:amqp1.0}" -m 1000
-f --print-content no --print-headers yes --ack-frequency 1
{noformat}

h3. Start 1000 senders each with a different length message
{noformat}
#!/bin/bash
for i in `seq 100512 101511`;
        do
            qpid-send -a jms.queue.qpid-interop.test --connection-options "{protocol:amqp1.0}"
-m 1 --content-size $i
        done    
{noformat}

h1. Result

Eventually the receive program will exit with an error:

{noformat}
qpid-receive: Out of Bounds: 
  requested advance of 100552 at 42 but only 100444 available 
  (/home/chug/git/qpid-cpp/src/qpid/amqp/Decoder.cpp:307)
{noformat}

h2. Observations

* Putting qd_log statements in the qd_message_send path, one at each pn_link_send() invocation,
allows the setup to run the 1000 messages repeatedly. Probably it would fail eventually but
in this condition it is harder to debug.
* I suspect a interlock issue between sending and receiving a single message but adding a
dozen or so assert has not revealed anything yet.






--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


Mime
View raw message