Bug 1051555
| Summary: | [AMQP 1.0] No way to delete subscription queue created from topic on reliable link | ||
|---|---|---|---|
| Product: | Red Hat Enterprise MRG | Reporter: | Pavel Moravec <pmoravec> |
| Component: | qpid-cpp | Assignee: | Gordon Sim <gsim> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Eric Sammons <esammons> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 3.0 | CC: | esammons, gsim, iboverma, jross, mtoth |
| Target Milestone: | 3.0 | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | qpid-cpp-0.22-47 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2015-01-21 12:56:45 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1010399 | ||
Actually it appears a shared subscription *is* reliable by default, and if you don't explicitly set the reliability it will also be autodelete by default. That said, I think the link should not be able to override a topic policy that specifies autodeletion (via a lifetime-policy value). That is now fixed upstream: https://svn.apache.org/r1557280 The link timeout option is already tracked by https://bugzilla.redhat.com/show_bug.cgi?id=985870. verified on qpid-cpp-0.22-47 |
Description of problem: When using topic for creating a queue for a reliable subscription, AMQP 1.0 client has no capability to delete the queue once it does not require it. The only (default) option - queue being autodelete - is overwritten by link reliability:at-least-once and there is no way to change it. Further, AMQP 1.0 client can't ad hoc delete a node/queue on the broker (such that a workaround in "delete:always" wont work). Version-Release number of selected component (if applicable): qpid-cpp 0.22-31 How reproducible: 100% Steps to Reproduce: qpid-config add topic response --argument exchange=amq.direct --argument qpid.max_count=100 --argument qpid.policy_type=ring --argument qpid.auto_delete_timeout=10 --argument auto-delete=true qpid-receive -a "response/RELIABLE_LIFETIME; { create: never, link: { timeout:10, reliability:'at-least-once', name: 'RELIABLE_LIFETIME', durable: false }, node: { properties: {'lifetime-policy':'delete-on-no-links' }, capabilities: ['shared'] } }" -f -m 1000 --connection-options="{protocol:amqp1.0}" Actual results: despite topic has auto-delete (and timeout) and despite subscriber has lifetime-policy set, the queue persists after consumer is gone. And there is no configuration / address string to change it. Expected results: Some config / address string to allow delete such queue on close / no link. Additional info: Per gsim, few options are possible: - backport link option "timeout" to 0.22-mrg - make shared subscriptions reliable by default (shared subscriptions seems to be the only one where both link reliability and auto-delete make sense to be set)