You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Kim van der Riet (JIRA)" <ji...@apache.org> on 2012/12/05 15:20:58 UTC
[jira] [Created] (QPID-4490) Durable messages with TTL do not
expire after broker recovery (c++ store)
Kim van der Riet created QPID-4490:
--------------------------------------
Summary: Durable messages with TTL do not expire after broker recovery (c++ store)
Key: QPID-4490
URL: https://issues.apache.org/jira/browse/QPID-4490
Project: Qpid
Issue Type: Bug
Components: C++ Broker
Reporter: Kim van der Riet
Assignee: Kim van der Riet
Durable messages with TTL which are later recovered from the c++ store do not expire. The following demonstrates:
1. Start broker:
./qpidd --load-module msgstore.so --auth no --log-enable info+
2. Run client to send two messages:
./qpid-send -m 2 --ttl 100000 --durable yes -a "test; {create: always, node: {durable: True}}"
3. Stop and restart broker, recovering the messages.
4. Run client to receive messages one at a time:
./qpid-receive -m 1 --print-header yes -a test
TTL: 100000
Durable: true
Redelivered: true
Properties: {sn:1, ts:1354716748759170497, x-amqp-0-10.routing-key:test}
./qpid-receive -m 1 --print-header yes -a test
TTL: 100000
Durable: true
Redelivered: true
Properties: {sn:2, ts:1354716748759340826, x-amqp-0-10.routing-key:test}
For both messages the TTL of the recovered messages is set to 100000 (the initial setting), but the timer is not running, and the TTL never decreases.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org
[jira] [Commented] (QPID-4490) Durable messages with TTL do not
expire after broker recovery (c++ store)
Posted by "Kim van der Riet (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/QPID-4490?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13510584#comment-13510584 ]
Kim van der Riet commented on QPID-4490:
----------------------------------------
New test:
1. Start broker:
./qpidd --load-module msgstore.so --auth no --log-enable info+
2. Run client to send two messages:
./qpid-send -m 2 --ttl 100000 --durable yes -a "test; {create: always, node: {durable: True}}"
3. Stop and restart broker, recovering the messages.
4. Run client to receive messages one at a time:
./qpid-receive -m 1 --print-header yes -a test
TTL: 90266
Durable: true
Redelivered: true
Properties: {sn:1, ts:1354725675276381716, x-amqp-0-10.routing-key:test}
./qpid-receive -m 1 --print-header yes -a test
TTL: 85298
Durable: true
Redelivered: true
Properties: {sn:2, ts:1354725675276567784, x-amqp-0-10.routing-key:test}
> Durable messages with TTL do not expire after broker recovery (c++ store)
> -------------------------------------------------------------------------
>
> Key: QPID-4490
> URL: https://issues.apache.org/jira/browse/QPID-4490
> Project: Qpid
> Issue Type: Bug
> Components: C++ Broker
> Reporter: Kim van der Riet
> Assignee: Kim van der Riet
>
> Durable messages with TTL which are later recovered from the c++ store do not expire. The following demonstrates:
> 1. Start broker:
> ./qpidd --load-module msgstore.so --auth no --log-enable info+
> 2. Run client to send two messages:
> ./qpid-send -m 2 --ttl 100000 --durable yes -a "test; {create: always, node: {durable: True}}"
> 3. Stop and restart broker, recovering the messages.
> 4. Run client to receive messages one at a time:
> ./qpid-receive -m 1 --print-header yes -a test
> TTL: 100000
> Durable: true
> Redelivered: true
> Properties: {sn:1, ts:1354716748759170497, x-amqp-0-10.routing-key:test}
> ./qpid-receive -m 1 --print-header yes -a test
> TTL: 100000
> Durable: true
> Redelivered: true
> Properties: {sn:2, ts:1354716748759340826, x-amqp-0-10.routing-key:test}
> For both messages the TTL of the recovered messages is set to 100000 (the initial setting), but the timer is not running, and the TTL never decreases.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org
[jira] [Commented] (QPID-4490) Durable messages with TTL do not
expire after broker recovery (c++ store)
Posted by "Kim van der Riet (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/QPID-4490?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13510503#comment-13510503 ]
Kim van der Riet commented on QPID-4490:
----------------------------------------
The fix for this bug requires changes to the broker _and_ the store. This will require that both fixes must be applied at the same time or else the store will not compile.
The broker requires changes to the RecoveryManagerImpl and RecoverableMessage classes, both of which acquire a new method to compute the expiration of a message which can be invoked from the store during recovery.
> Durable messages with TTL do not expire after broker recovery (c++ store)
> -------------------------------------------------------------------------
>
> Key: QPID-4490
> URL: https://issues.apache.org/jira/browse/QPID-4490
> Project: Qpid
> Issue Type: Bug
> Components: C++ Broker
> Reporter: Kim van der Riet
> Assignee: Kim van der Riet
>
> Durable messages with TTL which are later recovered from the c++ store do not expire. The following demonstrates:
> 1. Start broker:
> ./qpidd --load-module msgstore.so --auth no --log-enable info+
> 2. Run client to send two messages:
> ./qpid-send -m 2 --ttl 100000 --durable yes -a "test; {create: always, node: {durable: True}}"
> 3. Stop and restart broker, recovering the messages.
> 4. Run client to receive messages one at a time:
> ./qpid-receive -m 1 --print-header yes -a test
> TTL: 100000
> Durable: true
> Redelivered: true
> Properties: {sn:1, ts:1354716748759170497, x-amqp-0-10.routing-key:test}
> ./qpid-receive -m 1 --print-header yes -a test
> TTL: 100000
> Durable: true
> Redelivered: true
> Properties: {sn:2, ts:1354716748759340826, x-amqp-0-10.routing-key:test}
> For both messages the TTL of the recovered messages is set to 100000 (the initial setting), but the timer is not running, and the TTL never decreases.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org
[jira] [Resolved] (QPID-4490) Durable messages with TTL do not
expire after broker recovery (c++ store)
Posted by "Kim van der Riet (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/QPID-4490?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kim van der Riet resolved QPID-4490.
------------------------------------
Resolution: Fixed
Fixed in r.1417511 (qpid) and r.4522 (store)
> Durable messages with TTL do not expire after broker recovery (c++ store)
> -------------------------------------------------------------------------
>
> Key: QPID-4490
> URL: https://issues.apache.org/jira/browse/QPID-4490
> Project: Qpid
> Issue Type: Bug
> Components: C++ Broker
> Reporter: Kim van der Riet
> Assignee: Kim van der Riet
>
> Durable messages with TTL which are later recovered from the c++ store do not expire. The following demonstrates:
> 1. Start broker:
> ./qpidd --load-module msgstore.so --auth no --log-enable info+
> 2. Run client to send two messages:
> ./qpid-send -m 2 --ttl 100000 --durable yes -a "test; {create: always, node: {durable: True}}"
> 3. Stop and restart broker, recovering the messages.
> 4. Run client to receive messages one at a time:
> ./qpid-receive -m 1 --print-header yes -a test
> TTL: 100000
> Durable: true
> Redelivered: true
> Properties: {sn:1, ts:1354716748759170497, x-amqp-0-10.routing-key:test}
> ./qpid-receive -m 1 --print-header yes -a test
> TTL: 100000
> Durable: true
> Redelivered: true
> Properties: {sn:2, ts:1354716748759340826, x-amqp-0-10.routing-key:test}
> For both messages the TTL of the recovered messages is set to 100000 (the initial setting), but the timer is not running, and the TTL never decreases.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org