qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aidan Skinner (JIRA)" <qpid-...@incubator.apache.org>
Subject [jira] Updated: (QPID-855) Client Failover handling incomplete RetryOperations cannot be nested and No-opOperations should be removed
Date Mon, 07 Jul 2008 09:31:31 GMT

     [ https://issues.apache.org/jira/browse/QPID-855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Aidan Skinner updated QPID-855:
-------------------------------

    Fix Version/s: M3

> Client Failover handling incomplete RetryOperations cannot be nested and No-opOperations
should be removed
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-855
>                 URL: https://issues.apache.org/jira/browse/QPID-855
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: M2.1
>            Reporter: Martin Ritchie
>             Fix For: M3
>
>          Time Spent: 0.33h
>  Remaining Estimate: 0h
>
> Summary:
> It failover occurs just as a consumer is being created be it a consumer or browser then
due to the way we do Failover the following exception can occur. The error log: "No-op support
should only be used where the caller is certain fail-over cannot occur." worries me as to
be certain you cannot be doing ANY sync writes as failover could occur during the return msg.
Now the NoopSupport is used in:
> bindQueue
> commit
> declareExchange
> declareQueue
> getQueuDepth
> In all of these cases a syncWrite is performed so if timed correctly a failover exception
could occur. 
> java.lang.IllegalStateException: Fail-over interupted no-op failover support. No-op support
should only be used where the caller is certain fail-over cannot occur.
> 	at org.apache.qpid.client.failover.FailoverNoopSupport.execute(FailoverNoopSupport.java:71)
> 	at org.apache.qpid.client.AMQSession.declareExchange(AMQSession.java:2370)
> 	at org.apache.qpid.client.AMQSession.declareExchange(AMQSession.java:2284)
> 	at org.apache.qpid.client.AMQSession.registerConsumer(AMQSession.java:2556)
> 	at org.apache.qpid.client.AMQSession.access$1600(AMQSession.java:105)
> 	at org.apache.qpid.client.AMQSession$5.execute(AMQSession.java:1762)
> 	at org.apache.qpid.client.AMQSession$5.execute(AMQSession.java:1732)
> 	at org.apache.qpid.client.failover.FailoverRetrySupport.execute(FailoverRetrySupport.java:119)
> 	at org.apache.qpid.client.AMQSession.createConsumerImpl(AMQSession.java:1730)
> 	at org.apache.qpid.client.AMQSession.createConsumer(AMQSession.java:861)
> 	at org.apache.qpid.test.client.QueueBrowserAutoAckTest.validate(QueueBrowserAutoAckTest.java:271)
> 	at org.apache.qpid.test.client.QueueBrowserAutoAckTest.testFailoverAsQueueBrowserCreated(QueueBrowserAutoAckTest.java:459)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
> Caused by: org.apache.qpid.client.failover.FailoverException: Failing over about to start
> 	at org.apache.qpid.client.failover.FailoverHandler.run(FailoverHandler.java:123)
> 	at java.lang.Thread.run(Thread.java:619)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message