[ 
https://issues.apache.org/jira/browse/QPID-6079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14124931#comment-14124931
 ] 

Rob Godfrey commented on QPID-6079:
-----------------------------------

So the issue here is the queue is deleted, but there are outstanding acquired 
messages which may be later released.  The queue had an alt exchange, but as 
per the earlier failure, the alt. exchange should be "deletable" once the queue 
is deleted.  The ultimate answer is probably to better model the zombie state 
of a queue which has had deletion requested, but for which there are still 
messages whose state is not settled.  Once all unsettled messages have been 
settled then the queue could be properly deleted, until that time it should 
probably retain the reference to the alt exchange (although bindings to the 
queue should disappear, it should no longer be seen as a child of the vhost... 
etc).

> Some python AlternateExchangeTests fail against Java broker (and leave behind 
> an exchange that cannot be deleted)
> -----------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-6079
>                 URL: https://issues.apache.org/jira/browse/QPID-6079
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.31
>            Reporter: Keith Wall
>         Attachments: QPID-6079-2.patch
>
>
> Running the Python 0-10 AlternateExchangeTests test suite against the Java 
> Broker (trunk with "secureOnlyMechanisms" : [ ] applied to the auth 
> provider), I see the following tests fail.  
> What's more, after the tests have completed, I notice an exchange (alt1) has 
> been left behind by the tests but attempts to delete it manually from 
> Management fail without error.
> The REST output shows that alt1 is not referenced as alternate exchange from 
> another exchange or queue.
> There are no errors logged server side during tests or subsequent attempts to 
> remove the exchange.
> I cannot reproduce the issue with 0.28.
> ./qpid-python-test  -b amqp://guest/guest@localhost:5672 
> -I../java/test-profiles/python_tests/Java010PythonExcludes 
> -I../java/test-profiles/python_tests/JavaPre010PythonExcludes -m 
> qpid_tests.broker_0_10 -m qpid_tests.broker_0_9 -m qpid_tests.broker_0_8 -m 
> qmf.console 
> "qpid_tests.broker_0_10.alternate_exchange.AlternateExchangeTests.*"
> {noformat}
> qpid_tests.broker_0_10.alternate_exchange.AlternateExchangeTests.test_add_alternate_to_exchange
>  ....................................................... fail
> Error during test:  Traceback (most recent call last):
>     File "./qpid-python-test", line 340, in run
>       phase()
>     File 
> "/Users/keith/src/qpid/qpid/tests/src/py/qpid_tests/broker_0_10/alternate_exchange.py",
>  line 176, in test_add_alternate_to_exchange
>       session.exchange_delete(exchange="alt1")
>     File "/Users/keith/src/qpid/qpid/python/qpid/generator.py", line 25, in 
> <lambda>
>       method = lambda self, *args, **kwargs: self.invoke(op, args, kwargs)
>     File "/Users/keith/src/qpid/qpid/python/qpid/session.py", line 138, in 
> invoke
>       return self.do_invoke(op, args, kwargs)
>     File "/Users/keith/src/qpid/qpid/python/qpid/session.py", line 183, in 
> do_invoke
>       self.sync(self.timeout)
>     File "/Users/keith/src/qpid/qpid/python/qpid/session.py", line 103, in 
> sync
>       raise SessionException(self.error())
>   SessionException: ExecutionException(error_code=530, command_id=serial(1), 
> description=u'Exchange in use as an alternate exchange', channel=1, 
> id=serial(0))
> qpid_tests.broker_0_10.alternate_exchange.AlternateExchangeTests.test_del_alternate_to_exchange
>  ....................................................... fail
> Error during test:  Traceback (most recent call last):
>     File "./qpid-python-test", line 340, in run
>       phase()
>     File 
> "/Users/keith/src/qpid/qpid/tests/src/py/qpid_tests/broker_0_10/alternate_exchange.py",
>  line 190, in test_del_alternate_to_exchange
>       session.exchange_delete(exchange="alt1")
>     File "/Users/keith/src/qpid/qpid/python/qpid/generator.py", line 25, in 
> <lambda>
>       method = lambda self, *args, **kwargs: self.invoke(op, args, kwargs)
>     File "/Users/keith/src/qpid/qpid/python/qpid/session.py", line 138, in 
> invoke
>       return self.do_invoke(op, args, kwargs)
>     File "/Users/keith/src/qpid/qpid/python/qpid/session.py", line 183, in 
> do_invoke
>       self.sync(self.timeout)
>     File "/Users/keith/src/qpid/qpid/python/qpid/session.py", line 103, in 
> sync
>       raise SessionException(self.error())
>   SessionException: ExecutionException(error_code=530, command_id=serial(4), 
> description=u'Exchange in use as an alternate exchange', channel=1, 
> id=serial(0))
> qpid_tests.broker_0_10.alternate_exchange.AlternateExchangeTests.test_delete_while_used_by_exchange
>  ................................................... pass
> qpid_tests.broker_0_10.alternate_exchange.AlternateExchangeTests.test_delete_while_used_by_queue
>  ...................................................... pass
> qpid_tests.broker_0_10.alternate_exchange.AlternateExchangeTests.test_modify_existing_exchange_alternate
>  .............................................. fail
> Error during test:  Traceback (most recent call last):
>     File "./qpid-python-test", line 340, in run
>       phase()
>     File 
> "/Users/keith/src/qpid/qpid/tests/src/py/qpid_tests/broker_0_10/alternate_exchange.py",
>  line 156, in test_modify_existing_exchange_alternate
>       session.exchange_delete(exchange="alt2")
>     File "/Users/keith/src/qpid/qpid/python/qpid/generator.py", line 25, in 
> <lambda>
>       method = lambda self, *args, **kwargs: self.invoke(op, args, kwargs)
>     File "/Users/keith/src/qpid/qpid/python/qpid/session.py", line 138, in 
> invoke
>       return self.do_invoke(op, args, kwargs)
>     File "/Users/keith/src/qpid/qpid/python/qpid/session.py", line 183, in 
> do_invoke
>       self.sync(self.timeout)
>     File "/Users/keith/src/qpid/qpid/python/qpid/session.py", line 103, in 
> sync
>       raise SessionException(self.error())
>   SessionException: ExecutionException(error_code=530, command_id=serial(1), 
> description=u'Exchange in use as an alternate exchange', channel=1, 
> id=serial(0))
> qpid_tests.broker_0_10.alternate_exchange.AlternateExchangeTests.test_queue_autodelete
>  ................................................................ pass
> qpid_tests.broker_0_10.alternate_exchange.AlternateExchangeTests.test_queue_delete
>  .................................................................... pass
> qpid_tests.broker_0_10.alternate_exchange.AlternateExchangeTests.test_queue_delete_loop
>  ............................................................... pass
> qpid_tests.broker_0_10.alternate_exchange.AlternateExchangeTests.test_queue_delete_no_match
>  ........................................................... pass
> qpid_tests.broker_0_10.alternate_exchange.AlternateExchangeTests.test_reject_no_match
>  ................................................................. pass
> qpid_tests.broker_0_10.alternate_exchange.AlternateExchangeTests.test_unroutable
>  ...................................................................... pass
> Totals: 121 tests, 8 passed, 0 skipped, 110 ignored, 3 failed
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to