You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Peter Eisenlohr (JIRA)" <ji...@apache.org> on 2013/12/15 17:01:07 UTC

[jira] [Created] (AMQ-4938) Queue Messages lost after read timeout on REST API.

Peter Eisenlohr created AMQ-4938:
------------------------------------

             Summary: Queue Messages lost after read timeout on REST API.
                 Key: AMQ-4938
                 URL: https://issues.apache.org/jira/browse/AMQ-4938
             Project: ActiveMQ
          Issue Type: Bug
    Affects Versions: 5.9.0, 5.8.0, 5.10.0
         Environment: Win32, Linux
            Reporter: Peter Eisenlohr
            Priority: Critical


I have been trying to send/receive messages via a Queue using the [REST API|http://activemq.apache.org/rest.html]. While testing I found that some messages got lost after a consuming request times out when no message is available.

Here is a transcript of the test case I used:

{code}
#
# OK: send first, consume later
#
$ curl -d "body=message" "http://localhost:8161/api/message/TEST?type=queue"
Message sent

$ wget --no-http-keep-alive -q -O - "http://localhost:8161/api/message/TEST?type=queue&clientId=GETID&readTimeout=1000"
message

#
# OK: start consuming, then send (within timeout)
#
$ wget --no-http-keep-alive -q -O - "http://localhost:8161/api/message/TEST?type=queue&clientId=GETID&readTimeout=5000"&
[1] 5172

$ curl -d "body=message" "http://localhost:8161/api/message/TEST?type=queue"
messageMessage sent[1]+  Fertig                  wget --no-http-keep-alive -q -O - "http://localhost:8161/api/message/TEST?type=queue&clientId=GETID&readTimeout=5000"

#
# NOK: start consuming, wait for timeout, then send and consume again
#
$ wget --no-http-keep-alive -q -O - "http://localhost:8161/api/message/TEST?type=queue&clientId=GETID&readTimeout=5000"

$ curl -d "body=message" "http://localhost:8161/api/message/TEST?type=queue"
Message sent

$ wget --no-http-keep-alive -q -O - "http://localhost:8161/api/message/TEST?type=queue&clientId=GETID&readTimeout=5000"
{code}

The last *wget* returns after the given read timeout without any message. When looking at the managament console, the message has been consumed.

I tested this with 5.8.0 on linux as well as with 5.8.0, 5.9.0 and a freshly built 5.10.0 on windows.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)